From 8d715cb71380f506bf7e06ee6035a4edcb82df4a Mon Sep 17 00:00:00 2001 From: burgerni10 Date: Fri, 7 Apr 2023 09:26:41 +0200 Subject: [PATCH] fix(points): fix points change update --- src/frontend/components/points-component.jsx | 39 +++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/src/frontend/components/points-component.jsx b/src/frontend/components/points-component.jsx index 11b4714aaf..ea356fedc4 100644 --- a/src/frontend/components/points-component.jsx +++ b/src/frontend/components/points-component.jsx @@ -24,7 +24,6 @@ const PointsComponent = ({ const [selectedPage, setSelectedPage] = React.useState(1) const [allPoints, setAllPoints] = React.useState(points) const [filteredPoints, setFilteredPoints] = React.useState(points) - const [tableRows, setTableRows] = React.useState([]) // configure help if exists const pointsWithHelp = Object.entries(schema.points).filter(([name, value]) => name && value.help) @@ -123,28 +122,12 @@ const PointsComponent = ({ } useEffect(() => { - const pageOffset = selectedPage * MAX_ON_PAGE - MAX_ON_PAGE const newFilteredPoints = filterText !== '' ? allPoints.filter((point) => Object.values(point).findIndex((element) => element .toString() .toLowerCase() .includes(filterText.toLowerCase())) >= 0) : allPoints - const newTableRows = newFilteredPoints.filter((_, index) => index >= pageOffset && index < selectedPage * MAX_ON_PAGE) - .map((point) => Object.entries(schema.points).map(([key, value]) => { - const { type, ...rest } = value - const Control = Controls[type] - rest.value = point[key] - rest.label = null // remove field title in table rows - rest.help = null // remove help in table rows - return ( - // id is used to remove the point from its id with handle delete - /* eslint-disable-next-line react/jsx-props-no-spreading */ - { id: point.id, name: `${point.id}.${key}`, value: } - ) - })) - setFilteredPoints(newFilteredPoints) - setTableRows(newTableRows) }, [filterText, selectedPage, allPoints]) return ( @@ -157,7 +140,27 @@ const PointsComponent = ({ help={
Type any points related data
} onChange={(_name, val) => updateFilterText(val)} /> - +
index >= (selectedPage * MAX_ON_PAGE - MAX_ON_PAGE) && index < selectedPage * MAX_ON_PAGE) + .map((point) => Object.entries(schema.points).map(([key, value]) => { + const { type, ...rest } = value + const Control = Controls[type] + rest.value = point[key] + rest.label = null // remove field title in table rows + rest.help = null // remove help in table rows + return ( + // id is used to remove the point from its id with handle delete + /* eslint-disable-next-line react/jsx-props-no-spreading */ + { id: point.id, name: `${point.id}.${key}`, value: } + ) + })) + } + handleAdd={handleAddPoint} + handleDelete={handleDeletePoint} + /> {filteredPoints.length > 0 && (