From 3ca2c9eda7a7a1be9340e84cd1a7247488ffd253 Mon Sep 17 00:00:00 2001 From: cjenkscybercom <christina.jenks@knowit.se> Date: Mon, 30 Oct 2023 14:48:16 +0100 Subject: [PATCH] CE-1966: use updated usePagination hook --- package-lock.json | 14 ++--- package.json | 2 +- src/components/common/User/UserIOCList.js | 3 +- .../common/User/UserOperationList.js | 3 +- src/components/records/RecordSearch.js | 3 +- src/hooks/pagination.js | 58 ------------------- src/views/IOC/IOCDetailsView.js | 4 +- src/views/IOC/IOCListView.js | 4 +- src/views/host/HostDetailsView.js | 4 +- src/views/host/HostListView.js | 4 +- src/views/jobs/JobListView.js | 3 +- src/views/records/RecordListView.js | 4 +- 12 files changed, 22 insertions(+), 84 deletions(-) delete mode 100644 src/hooks/pagination.js diff --git a/package-lock.json b/package-lock.json index 4ea38f81..34c753b9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "@ahooksjs/use-url-state": "^3.5.0", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", - "@ess-ics/ce-ui-common": "^0.6.0", + "@ess-ics/ce-ui-common": "^1.0.0-ff816023", "@fontsource/roboto": "^4.1.0", "@mui/icons-material": "^5.14.1", "@mui/material": "^5.14.1", @@ -2655,9 +2655,9 @@ } }, "node_modules/@ess-ics/ce-ui-common": { - "version": "0.6.0", - "resolved": "https://artifactory.esss.lu.se/artifactory/api/npm/ics-npm/@ess-ics/ce-ui-common/-/ce-ui-common-0.6.0.tgz", - "integrity": "sha1-5yOVZhamHg44YJwx05TWPQ5Pz5I=", + "version": "1.0.0-ff816023", + "resolved": "https://artifactory.esss.lu.se/artifactory/api/npm/ics-npm/@ess-ics/ce-ui-common/-/ce-ui-common-1.0.0-ff816023.tgz", + "integrity": "sha1-TXSd1nSSsHTgzNO5TXRs9f2emeY=", "dependencies": { "@fontsource/titillium-web": "^4.5.9", "@mui/x-data-grid-pro": "^6.5.0", @@ -41722,9 +41722,9 @@ "dev": true }, "@ess-ics/ce-ui-common": { - "version": "0.6.0", - "resolved": "https://artifactory.esss.lu.se/artifactory/api/npm/ics-npm/@ess-ics/ce-ui-common/-/ce-ui-common-0.6.0.tgz", - "integrity": "sha1-5yOVZhamHg44YJwx05TWPQ5Pz5I=", + "version": "1.0.0-ff816023", + "resolved": "https://artifactory.esss.lu.se/artifactory/api/npm/ics-npm/@ess-ics/ce-ui-common/-/ce-ui-common-1.0.0-ff816023.tgz", + "integrity": "sha1-TXSd1nSSsHTgzNO5TXRs9f2emeY=", "requires": { "@fontsource/titillium-web": "^4.5.9", "@mui/x-data-grid-pro": "^6.5.0", diff --git a/package.json b/package.json index c3551deb..03eff895 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "@ahooksjs/use-url-state": "^3.5.0", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", - "@ess-ics/ce-ui-common": "^0.6.0", + "@ess-ics/ce-ui-common": "^1.0.0-ff816023", "@fontsource/roboto": "^4.1.0", "@mui/icons-material": "^5.14.1", "@mui/material": "^5.14.1", diff --git a/src/components/common/User/UserIOCList.js b/src/components/common/User/UserIOCList.js index 4f5aa493..c7b77d4c 100644 --- a/src/components/common/User/UserIOCList.js +++ b/src/components/common/User/UserIOCList.js @@ -2,10 +2,9 @@ import React, { useContext } from "react"; import { Card, CardHeader } from "@mui/material"; import { useEffect } from "react"; import { initRequestParams } from "../Helper"; -import { usePagination } from "../../../hooks/pagination"; import IOCTable from "../../IOC/IOCTable"; import { apiContext } from "../../../api/DeployApi"; -import { useAPIMethod } from "@ess-ics/ce-ui-common"; +import { useAPIMethod, usePagination } from "@ess-ics/ce-ui-common"; export function UserIocList({ userName }) { const client = useContext(apiContext); diff --git a/src/components/common/User/UserOperationList.js b/src/components/common/User/UserOperationList.js index 016621e9..202af3ee 100644 --- a/src/components/common/User/UserOperationList.js +++ b/src/components/common/User/UserOperationList.js @@ -2,10 +2,9 @@ import React, { useContext } from "react"; import { Card, CardHeader } from "@mui/material"; import { initRequestParams } from "../Helper"; import { useEffect } from "react"; -import { usePagination } from "../../../hooks/pagination"; import { JobTable } from "../../Job"; import { apiContext } from "../../../api/DeployApi"; -import { useAPIMethod } from "@ess-ics/ce-ui-common"; +import { useAPIMethod, usePagination } from "@ess-ics/ce-ui-common"; export function UserOperationList({ userName }) { const client = useContext(apiContext); diff --git a/src/components/records/RecordSearch.js b/src/components/records/RecordSearch.js index 4a3a859a..f7ead2ed 100644 --- a/src/components/records/RecordSearch.js +++ b/src/components/records/RecordSearch.js @@ -11,8 +11,7 @@ import { SearchBar } from "../common/SearchBar/SearchBar"; import useUrlState from "@ahooksjs/use-url-state"; import { serialize, deserialize } from "../common/URLState/URLState"; import { Grid, Tabs, Tab } from "@mui/material"; -import { useAPIMethod } from "@ess-ics/ce-ui-common"; -import { usePagination } from "../../hooks/pagination"; +import { useAPIMethod, usePagination } from "@ess-ics/ce-ui-common"; import { apiContext } from "../../api/DeployApi"; export function RecordSearch({ iocName, rowType }) { diff --git a/src/hooks/pagination.js b/src/hooks/pagination.js deleted file mode 100644 index e976fec5..00000000 --- a/src/hooks/pagination.js +++ /dev/null @@ -1,58 +0,0 @@ -import { useCallback, useMemo, useState } from "react"; - -const isZeroOrPositiveInt = (val) => { - return Number.isInteger(val) && val >= 0; -}; - -/** - * Manages pagination state e.g. outside a table or url. - * - * Provides getting/setting for a single pagination object, but internally - * manages changes for each attribute independently so that e.g. if there are - * no changes then the object is unchanged. - */ -export const usePagination = ({ - initPage, - initLimit, - initTotalCount, - rowsPerPageOptions -}) => { - const [page, setPage] = useState(initPage ?? 0); - const [_rowsPerPageOptions] = useState(rowsPerPageOptions ?? [20, 50]); - const [limit, setLimit] = useState(initLimit ?? _rowsPerPageOptions[0]); - const [totalCount, setTotalCount] = useState(initTotalCount ?? 0); - - /** - * Returns current set of pagination values - */ - const pagination = useMemo(() => { - const val = { - page, - limit, - rows: limit, - totalCount, - totalRecords: totalCount, - rowsPerPageOptions: _rowsPerPageOptions - }; - return val; - }, [page, limit, totalCount, _rowsPerPageOptions]); - - /** - * Sets pagination. Ignores negative or nonzero values. - */ - const setPagination = useCallback( - ({ page, limit, totalCount, rows, totalRecords }) => { - isZeroOrPositiveInt(page) && setPage(page); - isZeroOrPositiveInt(limit || rows) && setLimit(limit || rows); - isZeroOrPositiveInt(totalCount || totalRecords) && - setTotalCount(totalCount || totalRecords); - }, - [] - ); - - return { - pagination, - setPagination, - setTotalCount - }; -}; diff --git a/src/views/IOC/IOCDetailsView.js b/src/views/IOC/IOCDetailsView.js index 32839522..eaa7c67d 100644 --- a/src/views/IOC/IOCDetailsView.js +++ b/src/views/IOC/IOCDetailsView.js @@ -19,7 +19,8 @@ import { GlobalAppBarContext, useAPIMethod, useIsCurrentUserPermitted, - TabPanel + TabPanel, + usePagination } from "@ess-ics/ce-ui-common"; import { useSafePolling } from "../../hooks/Polling"; import useUrlState from "@ahooksjs/use-url-state"; @@ -27,7 +28,6 @@ import { serialize, deserialize } from "../../components/common/URLState/URLState"; -import { usePagination } from "../../hooks/pagination"; import { apiContext } from "../../api/DeployApi"; const IOC_POLL_INTERVAL = 10000; diff --git a/src/views/IOC/IOCListView.js b/src/views/IOC/IOCListView.js index 669aaae8..ddec0a57 100644 --- a/src/views/IOC/IOCListView.js +++ b/src/views/IOC/IOCListView.js @@ -3,7 +3,8 @@ import { Container, Grid, Tabs, Tab } from "@mui/material"; import { GlobalAppBarContext, RootPaper, - useAPIMethod + useAPIMethod, + usePagination } from "@ess-ics/ce-ui-common"; import { applicationTitle, @@ -15,7 +16,6 @@ import { serialize, deserialize } from "../../components/common/URLState/URLState"; -import { usePagination } from "../../hooks/pagination"; import { useMemo } from "react"; import { apiContext } from "../../api/DeployApi"; import IOCTable from "../../components/IOC/IOCTable"; diff --git a/src/views/host/HostDetailsView.js b/src/views/host/HostDetailsView.js index 790fd406..81df787c 100644 --- a/src/views/host/HostDetailsView.js +++ b/src/views/host/HostDetailsView.js @@ -17,7 +17,8 @@ import { SimpleAccordion, GlobalAppBarContext, useAPIMethod, - AlertBannerList + AlertBannerList, + usePagination } from "@ess-ics/ce-ui-common"; import { LokiPanel } from "../../components/common/Loki/LokiPanel"; import { useNavigate, Link as ReactRouterLink } from "react-router-dom"; @@ -32,7 +33,6 @@ import { deserialize } from "../../components/common/URLState/URLState"; import { apiContext } from "../../api/DeployApi"; -import { usePagination } from "../../hooks/pagination"; import IOCTable from "../../components/IOC/IOCTable"; export function HostDetailsView({ id, host }) { diff --git a/src/views/host/HostListView.js b/src/views/host/HostListView.js index 06a365e3..63afabec 100644 --- a/src/views/host/HostListView.js +++ b/src/views/host/HostListView.js @@ -10,7 +10,8 @@ import { HostTable } from "../../components/host/HostTable"; import { GlobalAppBarContext, RootPaper, - useAPIMethod + useAPIMethod, + usePagination } from "@ess-ics/ce-ui-common"; import { applicationTitle, @@ -23,7 +24,6 @@ import { serialize, deserialize } from "../../components/common/URLState/URLState"; -import { usePagination } from "../../hooks/pagination"; import { apiContext } from "../../api/DeployApi"; export function HostListView() { diff --git a/src/views/jobs/JobListView.js b/src/views/jobs/JobListView.js index 0d6ade23..2a334d57 100644 --- a/src/views/jobs/JobListView.js +++ b/src/views/jobs/JobListView.js @@ -2,7 +2,7 @@ import React, { useContext, useState, useCallback, useMemo } from "react"; import { Grid, Container, TextField, Autocomplete } from "@mui/material"; import Tabs from "@mui/material/Tabs"; import Tab from "@mui/material/Tab"; -import { RootPaper, useAPIMethod } from "@ess-ics/ce-ui-common"; +import { RootPaper, useAPIMethod, usePagination } from "@ess-ics/ce-ui-common"; import { initRequestParams } from "../../components/common/Helper"; import { useEffect } from "react"; import { SearchBar } from "../../components/common/SearchBar/SearchBar"; @@ -11,7 +11,6 @@ import { serialize, deserialize } from "../../components/common/URLState/URLState"; -import { usePagination } from "../../hooks/pagination"; import { JobTable } from "../../components/Job"; import { apiContext } from "../../api/DeployApi"; diff --git a/src/views/records/RecordListView.js b/src/views/records/RecordListView.js index b91b07aa..28063f15 100644 --- a/src/views/records/RecordListView.js +++ b/src/views/records/RecordListView.js @@ -9,7 +9,8 @@ import { Container, Grid, Tabs, Tab } from "@mui/material"; import { GlobalAppBarContext, RootPaper, - useAPIMethod + useAPIMethod, + usePagination } from "@ess-ics/ce-ui-common"; import { applicationTitle, @@ -22,7 +23,6 @@ import { deserialize } from "../../components/common/URLState/URLState"; import { RecordTable } from "../../components/records/RecordTable"; -import { usePagination } from "../../hooks/pagination"; import { apiContext } from "../../api/DeployApi"; export function RecordListView() { -- GitLab