From 8a1f54add9cacb4bed103926f7ec3c966897de9f Mon Sep 17 00:00:00 2001 From: Alexander Madsen <alexander.madsen@ess.eu> Date: Wed, 13 Sep 2023 08:09:35 +0000 Subject: [PATCH] CE-2093: Convert IOCStatus hook to common --- src/api/SwaggerApi.js | 14 ------------ src/components/IOC/IOCTable/IOCStatus.js | 29 ++++++++++++++++++++---- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/src/api/SwaggerApi.js b/src/api/SwaggerApi.js index 756c084f..abf6e1fc 100644 --- a/src/api/SwaggerApi.js +++ b/src/api/SwaggerApi.js @@ -689,20 +689,6 @@ export function useLokiProcServLog(onError) { return useAsync({ fcn: method, call: false, onError: onError }); } -export function unpackIocStatus(status) { - return { ...status }; -} - -export function useIocStatus(id) { - const api = useContext(apiContext); - const method = useCallAndUnpack( - api.apis.Monitoring.fetchIocStatus, - unpackIocStatus - ); - const boundMethod = useCallback(method.bind(null, { ioc_id: id }), [id]); - return useAsync({ fcn: boundMethod }); -} - export function unpackNaming(naming) { return { ...naming }; } diff --git a/src/components/IOC/IOCTable/IOCStatus.js b/src/components/IOC/IOCTable/IOCStatus.js index 4d0a9bfa..d67a352b 100644 --- a/src/components/IOC/IOCTable/IOCStatus.js +++ b/src/components/IOC/IOCTable/IOCStatus.js @@ -1,10 +1,29 @@ -import React from "react"; -import { useIocStatus } from "../../../api/SwaggerApi"; +import React, { useContext, useMemo } from "react"; import { Grid, Skeleton } from "@mui/material"; import { IOCStatusIcon } from "../IOCIcons"; +import { apiContext } from "../../../api/DeployApi"; +import { useAPIMethod } from "@ess-ics/ce-ui-common"; + +function createRequest(id) { + return { + ioc_id: id + }; +} export const IOCStatus = ({ id, activeDeployment }) => { - const [status, , , loading] = useIocStatus(id); + const client = useContext(apiContext); + + const params = useMemo(() => createRequest(id), [id]); + + const { + value: ioc, + loading, + dataReady + } = useAPIMethod({ + fcn: client.apis.Monitoring.fetchIocStatus, + params, + call: true + }); return ( <Grid @@ -13,14 +32,14 @@ export const IOCStatus = ({ id, activeDeployment }) => { justifyContent="center" alignItems="center" > - {loading ? ( + {loading || !dataReady ? ( <Skeleton variant="circular" height={20} width={20} /> ) : ( - <IOCStatusIcon ioc={{ id, activeDeployment, ...status }} /> + <IOCStatusIcon ioc={{ id, activeDeployment, ...ioc }} /> )} </Grid> ); -- GitLab