import { useState } from 'react';
import { useStatsQuery, useSetRunningMutation } from '../api/queries.js';
import { ConfirmationDialog } from '../components/confirmation-dialog.js';
import { useSyncStatusQuery } from '../features/operations/operations-queries.js';
import { useLoginStatusQuery } from '../features/settings/settings-queries.js';
import { useDashboardRealtime } from './realtime-provider.js';
import { deriveShellStatus } from './shell-status.js';
import './shell-status-panel.css';
export function ShellStatusPanel() {
const stats = useStatsQuery();
const reddit = useLoginStatusQuery();
const sync = useSyncStatusQuery();
const realtime = useDashboardRealtime();
const control = useSetRunningMutation();
const [confirming, setConfirming] = useState<'start' | 'stop' | null>(null);
const status = deriveShellStatus({ stats: stats.data, reddit: reddit.data, sync: sync.data, realtime: realtime.connection });
return <>
{status.bot}{status.reddit}{status.realtime}{status.sync}
{status.cooldown ? Cooldown: {status.cooldown} : null}
{confirming ? setConfirming(null)} onConfirm={() => control.mutate(confirming === 'start', { onSuccess: () => setConfirming(null) })} /> : null}
>;
}