diff --git a/frontend/src/features/machines/components/common/WakeComponent.tsx b/frontend/src/features/machines/components/common/WakeComponent.tsx index c24fdfc..e93d263 100644 --- a/frontend/src/features/machines/components/common/WakeComponent.tsx +++ b/frontend/src/features/machines/components/common/WakeComponent.tsx @@ -12,6 +12,9 @@ const initialState = { on: false }; const defaultPingInterval = 1200000; //20 minutes const defaultStartingTime = 300000; //5 minutes +const pingInterval = parseInt(process.env.REACT_APP_MACHINE_PING_INTERVAL ?? "") || defaultPingInterval; +const startingTime = parseInt(process.env.REACT_APP_MACHINE_STARTING_TIME ?? "") || defaultStartingTime; + type Props = { machine: Machine; addLog: (message: string) => void; @@ -24,9 +27,6 @@ const WakeComponent: React.FC = ({ machine, addLog, disabled }) => { const { t } = useTranslation(); - const pingInterval = process.env.REACT_APP_MACHINE_PING_INTERVAL || defaultPingInterval; - const startingTime = process.env.REACT_APP_MACHINE_STARTING_TIME || defaultStartingTime; - const getCurrentDateTime = useCallback(() => { const currentDateTime = Date.now(); const result = t("DATE_FORMAT", { @@ -45,11 +45,12 @@ const WakeComponent: React.FC = ({ machine, addLog, disabled }) => { setState(prev => ({ ...prev, on: result.success })); log(`[Ping]: Success: ${result.success}. Status: ${result.status}`); - // if (result.success) { - // setTimeout(() => { - // setTrigger(prev => !prev); - // }, pingInterval); - // } + // trigger the next ping + if (result.success) { + setTimeout(() => { + setTrigger(prev => !prev); + }, pingInterval); + } }, onError: () => { // to do: handle error @@ -78,16 +79,16 @@ const WakeComponent: React.FC = ({ machine, addLog, disabled }) => { } } ); - }, [log, startingTime, machine.machineId]); + }, [log, machine.machineId]); - const pingInLoop = useCallback(async () => { + const pingMachine = useCallback(async () => { if (disabled) return; pingMachineTrigger({ machineId: machine.machineId }); - }, [machine, log, pingInterval, disabled]); + }, [machine.machineId, pingMachineTrigger, disabled]); useEffect(() => { - pingInLoop(); - }, [trigger, pingInLoop]); + pingMachine(); + }, [trigger, pingMachine]); const handleWakeClick = (event: any) => { wakeMachine();