import { styled } from '@mui/styles'; import React, { useEffect, useState } from 'react'; import { querySyncStatus, SyncStatus, triggerSync } from '../api/bbgo'; import useInterval from '../hooks/useInterval'; const ToolbarButton = styled('button')(({ theme }) => ({ padding: theme.spacing(1), })); export default function SyncButton() { const [syncing, setSyncing] = useState(false); const sync = async () => { try { setSyncing(true); await triggerSync(); } catch { setSyncing(false); } }; useEffect(() => { sync(); }, []); useInterval(() => { querySyncStatus().then((s) => { if (s !== SyncStatus.Syncing) { setSyncing(false); } }); }, 2000); return ( {syncing ? 'Syncing...' : 'Sync'} ); }