diff --git a/apps/sentry-client-desktop/src/features/drawer/WhitelistDrawer.tsx b/apps/sentry-client-desktop/src/features/drawer/WhitelistDrawer.tsx index e3fd1b1cb..bc132e9f1 100644 --- a/apps/sentry-client-desktop/src/features/drawer/WhitelistDrawer.tsx +++ b/apps/sentry-client-desktop/src/features/drawer/WhitelistDrawer.tsx @@ -11,7 +11,7 @@ import {AiOutlineInfoCircle} from "react-icons/ai"; export function WhitelistDrawer() { const setDrawerState = useSetAtom(drawerStateAtom); const {owners, pools} = useAtomValue(chainStateAtom); - const {data, setData} = useStorage(); + const {data} = useStorage(); const [selected, setSelected] = useState([]); const {sentryRunning, stopRuntime} = useOperatorRuntime(); const {publicKey: operatorAddress} = useOperator(); @@ -82,14 +82,14 @@ export function WhitelistDrawer() { ); async function handleSubmit() { - await setData({ - ...data, - whitelistedWallets: selected, - }); - setDrawerState(null); + if (stopRuntime) { - void stopRuntime(); + void stopRuntime({ + ...data, + sentryRunning: false, + whitelistedWallets: selected, + }); } } diff --git a/apps/sentry-client-desktop/src/hooks/useOperatorRuntime.ts b/apps/sentry-client-desktop/src/hooks/useOperatorRuntime.ts index 0f9f55544..cf3ab57bb 100644 --- a/apps/sentry-client-desktop/src/hooks/useOperatorRuntime.ts +++ b/apps/sentry-client-desktop/src/hooks/useOperatorRuntime.ts @@ -2,7 +2,7 @@ import {Challenge, NodeLicenseInformation, NodeLicenseStatusMap, operatorRuntime import {useOperator} from "@/features/operator"; import {atom, useAtom} from "jotai"; import {useEffect, useRef, useState} from "react"; -import {useStorage} from "@/features/storage"; +import {IData, useStorage} from "@/features/storage"; import log from "electron-log"; import { ethers } from "ethers"; @@ -70,7 +70,7 @@ export function useOperatorRuntime() { } } - async function stopRuntime() { + async function stopRuntime(passedData?: IData) { if (sentryRunning && stop !== undefined) { // prevent race conditions from pressing "stop" too fast const _stop = stop; @@ -79,7 +79,11 @@ export function useOperatorRuntime() { await _stop(); setNodeLicenseStatusMap(new Map()); setSentryRunning(false); - await setData({...data, sentryRunning: false}); + if (passedData) { + await setData(passedData); + } else { + await setData({...data, sentryRunning: false}); + } } }