From f4f63bb388b0d1bbdbfcc5b0a3517c33516ac736 Mon Sep 17 00:00:00 2001 From: Max Frederiksen <maxfrederiksen@Maxs-MacBook-Air.local> Date: Fri, 20 Dec 2024 10:16:45 +0100 Subject: [PATCH] MR comments --- src/api/UserProvider.jsx | 32 ++++++++----------- src/components/IOC/CreateIOC/CreateIOC.jsx | 8 ++--- src/components/common/Helper.jsx | 4 +-- .../common/User/UserOperationList.jsx | 9 +++--- src/constants/index.ts | 1 + src/views/host/HostListView.jsx | 6 ++-- .../host/details/HostDetailsContainer.jsx | 9 ++---- src/views/host/details/HostJobsSection.jsx | 6 ++-- src/views/jobs/JobDetailsContainer.jsx | 8 +++-- src/views/records/RecordDetailsView.jsx | 6 +++- src/views/records/RecordListView.jsx | 8 ++--- 11 files changed, 47 insertions(+), 50 deletions(-) diff --git a/src/api/UserProvider.jsx b/src/api/UserProvider.jsx index af6bb1a0..48d27b10 100644 --- a/src/api/UserProvider.jsx +++ b/src/api/UserProvider.jsx @@ -3,8 +3,8 @@ import { userContext } from "@ess-ics/ce-ui-common"; import { useLoginMutation, useLogoutMutation, - useLazyInfoFromUserNameQuery, - useLazyGetUserRolesQuery + useInfoFromUserNameQuery, + useGetUserRolesQuery } from "../store/deployApi"; export function UserProvider({ children }) { @@ -21,12 +21,12 @@ export function UserProvider({ children }) { } ] = useLoginMutation(); const [callLogout, { isLoading: logoutLoading }] = useLogoutMutation(); - const [getUserInfo, { data: userResponse, isLoading: userLoading }] = - useLazyInfoFromUserNameQuery(); - const [ - getUserRoles, - { data: userRolesResponse, isLoading: userRolesLoading } - ] = useLazyGetUserRolesQuery(); + const { data: userResponse, isLoading: userLoading } = + useInfoFromUserNameQuery({ + skip: !loginResponse + }); + const { data: userRolesResponse, isLoading: userRolesLoading } = + useGetUserRolesQuery({ skip: !loginResponse }); const initialized = Boolean( !loginLoading || !logoutLoading || !userLoading || !userRolesLoading @@ -39,13 +39,6 @@ export function UserProvider({ children }) { [callLogin] ); - useEffect(() => { - if (loginResponse) { - getUserInfo({}); - getUserRoles(); - } - }, [loginResponse, getUserInfo, getUserRoles]); - useEffect(() => { setUser(userResponse); //TEST new changes from BE @@ -55,16 +48,17 @@ export function UserProvider({ children }) { const logout = useCallback(() => { callLogout(); setUser(null); - }, [callLogout]); + setUserRoles([]); + }, [callLogout, setUser, setUserRoles]); return ( initialized && ( <userContext.Provider value={{ - user: user, - userRoles: userRoles, + user, + userRoles, login, - loginError: loginError?.response?.body?.description, + loginError: loginError?.data?.description, logout, resetLoginError: resetLogin }} diff --git a/src/components/IOC/CreateIOC/CreateIOC.jsx b/src/components/IOC/CreateIOC/CreateIOC.jsx index a51f5740..16514a70 100644 --- a/src/components/IOC/CreateIOC/CreateIOC.jsx +++ b/src/components/IOC/CreateIOC/CreateIOC.jsx @@ -2,7 +2,6 @@ import { useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; import { RootPaper } from "@ess-ics/ce-ui-common"; import { - Alert, Autocomplete, Button, CircularProgress, @@ -16,13 +15,12 @@ import { WITHOUT_REPO } from "./RepositoryType"; import { RepositoryName } from "./RepositoryName"; import { useTypingTimer } from "../../common/SearchBoxFilter/TypingTimer"; import { useCustomSnackbar } from "../../common/snackbar"; - -import { getErrorMessage } from "../../common/Helper"; import { useCreateIocMutation, useLazyFetchIocByNameQuery, useLazyListProjectsQuery } from "../../../store/deployApi"; +import { ApiAlertError } from "../../common/Alerts/ApiAlertError"; export function CreateIOC() { const navigate = useNavigate(); @@ -186,9 +184,7 @@ export function CreateIOC() { /> )} - {error ? ( - <Alert severity="error">{getErrorMessage(error)}</Alert> - ) : null} + {error && <ApiAlertError error={error} />} {isLoading ? ( <LinearProgress aria-busy="true" diff --git a/src/components/common/Helper.jsx b/src/components/common/Helper.jsx index 97cbb187..24f04313 100644 --- a/src/components/common/Helper.jsx +++ b/src/components/common/Helper.jsx @@ -84,9 +84,9 @@ export function initRequestParams(lazyParams, filter, columnSort) { if (columnSort) { if (columnSort.sortOrder === 1) { - requestParams.order_asc = true; + requestParams.orderAsc = true; } else { - requestParams.order_asc = false; + requestParams.orderAsc = false; } } diff --git a/src/components/common/User/UserOperationList.jsx b/src/components/common/User/UserOperationList.jsx index d4a82c4d..2302c549 100644 --- a/src/components/common/User/UserOperationList.jsx +++ b/src/components/common/User/UserOperationList.jsx @@ -3,14 +3,15 @@ import { Card, CardHeader } from "@mui/material"; import { usePagination } from "@ess-ics/ce-ui-common"; import { initRequestParams } from "../Helper"; import { JobTable } from "../../Job"; -import { ROWS_PER_PAGE } from "../../../constants"; +import { + DEFAULT_POLLING_INTERVAL_MILLIS, + ROWS_PER_PAGE +} from "../../../constants"; import { useLazyListJobsQuery } from "../../../store/deployApi"; -const POLLING_INTERVAL = 30000; - export function UserOperationList({ userName }) { const [getJobs, { data: jobs, isFetching }] = useLazyListJobsQuery({ - pollingInterval: POLLING_INTERVAL + pollingInterval: DEFAULT_POLLING_INTERVAL_MILLIS }); const { pagination, setPagination } = usePagination({ diff --git a/src/constants/index.ts b/src/constants/index.ts index 8de6913d..ea5769a0 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -1 +1,2 @@ export const ROWS_PER_PAGE = [20, 50]; +export const DEFAULT_POLLING_INTERVAL_MILLIS = 30000; diff --git a/src/views/host/HostListView.jsx b/src/views/host/HostListView.jsx index 238fc8f9..f3a3af76 100644 --- a/src/views/host/HostListView.jsx +++ b/src/views/host/HostListView.jsx @@ -19,7 +19,7 @@ export function HostListView() { const { setTitle } = useContext(GlobalAppBarContext); useEffect(() => setTitle(applicationTitle("IOC hosts")), [setTitle]); - const [callListHostsQuery, { data: hosts, isLoading }] = + const [callListHostsQuery, { data: hosts, isFetching }] = useLazyListHostsQuery(); const [searchParams, setSearchParams] = useSearchParams({ query: "" }); @@ -73,11 +73,11 @@ export function HostListView() { <SearchBar search={setSearch} query={searchParams.get("query")} - loading={isLoading} + loading={isFetching} > <HostTable hosts={hosts?.netBoxHosts ?? []} - loading={isLoading || !hosts} + loading={isFetching || !hosts} pagination={pagination} onPage={onPage} /> diff --git a/src/views/host/details/HostDetailsContainer.jsx b/src/views/host/details/HostDetailsContainer.jsx index eeb0430d..98b45b61 100644 --- a/src/views/host/details/HostDetailsContainer.jsx +++ b/src/views/host/details/HostDetailsContainer.jsx @@ -18,12 +18,9 @@ export function HostDetailsContainer({ hostId }) { useEffect(() => { if (fetchError || alertError) { - const message = fetchError?.message - ? fetchError.message - : alertError.message; - const status = fetchError?.status - ? fetchError.status - : alertError?.status; + const message = + fetchError?.data?.description || alertError?.data?.description; + const status = fetchError?.status || alertError?.status; onFetchEntityError(message, status, setError); } }, [fetchError, alertError]); diff --git a/src/views/host/details/HostJobsSection.jsx b/src/views/host/details/HostJobsSection.jsx index 17e93a3a..4dd30569 100644 --- a/src/views/host/details/HostJobsSection.jsx +++ b/src/views/host/details/HostJobsSection.jsx @@ -1,11 +1,11 @@ import { useEffect, useMemo, useCallback, useState } from "react"; import { string } from "prop-types"; import { SimpleAccordion, usePagination } from "@ess-ics/ce-ui-common"; -import { Alert, Typography } from "@mui/material"; -import { getErrorMessage } from "../../../components/common/Helper"; +import { Typography } from "@mui/material"; import { JobTable } from "../../../components/Job"; import { ROWS_PER_PAGE } from "../../../constants"; import { useLazyListJobsQuery } from "../../../store/deployApi"; +import { ApiAlertError } from "../../../components/common/Alerts/ApiAlertError"; const propTypes = { hostId: string.isRequired @@ -57,7 +57,7 @@ export const HostJobsSection = ({ hostId }) => { } onChange={(_, expanded) => setExpanded(expanded)} > - {error ? <Alert severity="error">{getErrorMessage(error)}</Alert> : null} + {error && <ApiAlertError error={error} />} {hostLog ? ( <JobTable jobs={!error && hostLog ? hostLog?.jobs : null} diff --git a/src/views/jobs/JobDetailsContainer.jsx b/src/views/jobs/JobDetailsContainer.jsx index 0795e607..6953ade8 100644 --- a/src/views/jobs/JobDetailsContainer.jsx +++ b/src/views/jobs/JobDetailsContainer.jsx @@ -7,7 +7,7 @@ import { useFetchJobQuery } from "../../store/deployApi"; const POLL_DEPLOYMENT_INTERVAL = 5000; export function JobDetailsContainer({ id }) { - const [notFoundError, setNotFoundError] = useState(); + const [notFoundError, setNotFoundError] = useState(null); const [jobFinished, setJobFinished] = useState(false); const { @@ -29,7 +29,11 @@ export function JobDetailsContainer({ id }) { useEffect(() => { if (jobError) { - onFetchEntityError(jobError?.message, jobError?.status, setNotFoundError); + onFetchEntityError( + jobError?.data?.description, + jobError?.status, + setNotFoundError + ); } }, [jobError]); diff --git a/src/views/records/RecordDetailsView.jsx b/src/views/records/RecordDetailsView.jsx index ed6bf1d1..fd71b905 100644 --- a/src/views/records/RecordDetailsView.jsx +++ b/src/views/records/RecordDetailsView.jsx @@ -35,7 +35,11 @@ export function RecordDetailsView() { useEffect(() => { if (fetchError) { - onFetchEntityError(fetchError?.message, fetchError?.status, setError); + onFetchEntityError( + fetchError?.data?.description, + fetchError?.status, + setError + ); } }, [fetchError]); diff --git a/src/views/records/RecordListView.jsx b/src/views/records/RecordListView.jsx index 9c147711..5aafc7bd 100644 --- a/src/views/records/RecordListView.jsx +++ b/src/views/records/RecordListView.jsx @@ -19,7 +19,7 @@ export function RecordListView() { const { setTitle } = useContext(GlobalAppBarContext); useEffect(() => setTitle(applicationTitle("Records")), [setTitle]); - const [getRecords, { data: records, isLoading }] = + const [getRecords, { data: records, isFetching }] = useLazyFindAllRecordsQuery(); const [searchParams, setSearchParams] = useSearchParams({ query: "" }); @@ -52,7 +52,7 @@ export function RecordListView() { // Request new search results whenever search or pagination changes useEffect(() => { let requestParams = initRequestParams(pagination); - requestParams.pv_status = recordFilter; + requestParams.pvStatus = recordFilter; requestParams.text = searchParams.get("query"); getRecords(requestParams); }, [getRecords, recordFilter, pagination, searchParams]); @@ -74,11 +74,11 @@ export function RecordListView() { <SearchBar search={setSearch} query={searchParams.get("query")} - loading={isLoading || !records} + loading={isFetching || !records} > <RecordTable records={records} - loading={isLoading || !records} + loading={isFetching || !records} pagination={pagination} onPage={onPage} /> -- GitLab