diff --git a/src/components/CameraOverview/SnapshotContainer.tsx b/src/components/CameraOverview/SnapshotContainer.tsx index c7a26b9..87cb48f 100644 --- a/src/components/CameraOverview/SnapshotContainer.tsx +++ b/src/components/CameraOverview/SnapshotContainer.tsx @@ -3,6 +3,8 @@ import type { ZoomInOptions } from "../../types/types"; import NavigationArrow from "../UI/NavigationArrow"; import { useCameraZoom } from "../../hooks/useCameraZoom"; import { useEffect } from "react"; +import Loading from "../UI/Loading"; +import ErrorState from "../UI/ErrorState"; type SnapshotContainerProps = { side: string; @@ -42,13 +44,16 @@ export const SnapshotContainer = ({ // eslint-disable-next-line react-hooks/exhaustive-deps }, [zoomLevel]); - if (isError) return

An error occurred

; - if (isPending) return

Loading...

; - return (
+ {isError && } + {isPending && ( +
+ +
+ )} Promise | void; zoomLevel?: number; onZoomLevelChange?: (level: number) => void; + updateCameraConfigError: null | Error; }; const CameraSettingFields = ({ @@ -24,6 +25,7 @@ const CameraSettingFields = ({ updateCameraConfig, zoomLevel, onZoomLevelChange, + updateCameraConfigError, }: CameraSettingsProps) => { const [showPwd, setShowPwd] = useState(false); const cameraControllerSide = @@ -43,23 +45,20 @@ const CameraSettingFields = ({ switch (levelstring) { case "1x": return 1; - break; + case "2x": return 2; - break; + case "4x": return 4; - break; + case "8x": return 8; default: return 1; } }; - const level = getZoomLevel(query.data); - console.log("level from get", level); - console.log("zoomLevel state", zoomLevel); const initialValues = useMemo( () => ({ friendlyName: initialData?.id ?? "", @@ -70,6 +69,7 @@ const CameraSettingFields = ({ zoom: zoomLevel, }), + // eslint-disable-next-line react-hooks/exhaustive-deps [initialData?.id, initialData?.propURI?.value, zoomLevel] ); @@ -96,7 +96,6 @@ const CameraSettingFields = ({ mutation.mutate(zoomInOptions); }; const selectedZoom = zoomLevel ?? 1; - console.log(selectedZoom); return ( - {({ errors, touched }) => ( + {({ errors, touched, isSubmitting }) => (
@@ -184,7 +183,7 @@ const CameraSettingFields = ({
{zoomOptions.map((zoom) => ( -
+
- +
+ {updateCameraConfigError ? ( + + ) : ( + + )} +
)} diff --git a/src/components/CameraSettings/CameraSettings.tsx b/src/components/CameraSettings/CameraSettings.tsx index de79feb..2a0a68e 100644 --- a/src/components/CameraSettings/CameraSettings.tsx +++ b/src/components/CameraSettings/CameraSettings.tsx @@ -1,5 +1,4 @@ import { useFetchCameraConfig } from "../../hooks/useCameraConfig"; - import Card from "../UI/Card"; import CardHeader from "../UI/CardHeader"; import CameraSettingFields from "./CameraSettingFields"; @@ -16,22 +15,23 @@ const CameraSettings = ({ zoomLevel?: number; onZoomLevelChange?: (level: number) => void; }) => { - const { data, isError, isPending, updateCameraConfig } = + const { data, updateCameraConfig, updateCameraConfigError } = useFetchCameraConfig(side); + console.log(updateCameraConfigError); return ( - {isPending && <>Loading camera config} - {isError && <>Error fetching camera config}
- {!isPending && ( + + { - )} + }
); diff --git a/src/components/HistoryList/AlertItem.tsx b/src/components/HistoryList/AlertItem.tsx index ccdcb26..89838a2 100644 --- a/src/components/HistoryList/AlertItem.tsx +++ b/src/components/HistoryList/AlertItem.tsx @@ -15,7 +15,7 @@ type AlertItemProps = { const AlertItem = ({ item }: AlertItemProps) => { const [isModalOpen, setIsModalOpen] = useState(false); - const { dispatch } = useAlertHitContext(); + const { dispatch, isError } = useAlertHitContext(); // const {d} = useCameraBlackboard(); const motionAway = (item?.motion ?? "").toUpperCase() === "AWAY"; @@ -24,6 +24,7 @@ const AlertItem = ({ item }: AlertItemProps) => { const isNPEDHitB = item?.metadata?.npedJSON?.["NPED CATEGORY"] === "B"; const isNPEDHitC = item?.metadata?.npedJSON?.["NPED CATEGORY"] === "C"; + console.log(isError); const handleClick = () => { setIsModalOpen(true); }; diff --git a/src/components/SettingForms/NPED/NPEDFields.tsx b/src/components/SettingForms/NPED/NPEDFields.tsx index 0288916..ee0c9ee 100644 --- a/src/components/SettingForms/NPED/NPEDFields.tsx +++ b/src/components/SettingForms/NPED/NPEDFields.tsx @@ -27,12 +27,11 @@ const NPEDFields = () => { rearId: "NPED", }; - const handleSubmit = (values: NPEDFieldType) => { + const handleSubmit = async (values: NPEDFieldType) => { const valuesToSend = { ...values, }; - signIn(valuesToSend); - toast.success("Signed into NPED Successfully"); + await signIn(valuesToSend); }; const validateValues = (values: NPEDFieldType) => { @@ -55,7 +54,7 @@ const NPEDFields = () => { validate={validateValues} enableReinitialize > - {({ errors, touched }) => ( + {({ errors, touched, isSubmitting }) => (
@@ -113,7 +112,7 @@ const NPEDFields = () => { type="submit" className="w-1/4 text-white bg-green-700 hover:bg-green-800 font-small rounded-lg text-sm px-2 py-2.5 hover:cursor-pointer" > - Login + {isSubmitting ? "Logging in..." : "Login"} ) : ( { const [showSettings, setShowSettings] = useState(false); @@ -26,7 +25,7 @@ const ModemSettings = () => { authenticationType: "PAP", }; - const handleSubmit = (values: ModemSettingsType) => { + const handleSubmit = async (values: ModemSettingsType) => { const modemConfig = { id: "ModemAndWifiManager-modem", fields: [ @@ -49,12 +48,7 @@ const ModemSettings = () => { }, ], }; - modemMutation.mutate(modemConfig); - if (modemMutation.error) { - toast.error("Failed to update modem settings"); - return; - } - toast.success("Modem settings updated"); + await modemMutation.mutateAsync(modemConfig); }; return ( @@ -69,76 +63,80 @@ const ModemSettings = () => { onSubmit={handleSubmit} enableReinitialize > - - -