import { useState } from "react"; import { useShallow } from "zustand/react/shallow"; import TerminalTabs from "../terminal/TerminalTabs"; import { useAppState } from "../../store/appState"; import { useSettings } from "../../hooks/useSettings"; import UpdateDialog from "../settings/UpdateDialog"; export default function TopBar() { const { dockerAvailable, imageExists, updateInfo, appVersion, setUpdateInfo } = useAppState( useShallow(s => ({ dockerAvailable: s.dockerAvailable, imageExists: s.imageExists, updateInfo: s.updateInfo, appVersion: s.appVersion, setUpdateInfo: s.setUpdateInfo, })) ); const { appSettings, saveSettings } = useSettings(); const [showUpdateDialog, setShowUpdateDialog] = useState(false); const handleDismiss = async () => { if (appSettings && updateInfo) { await saveSettings({ ...appSettings, dismissed_update_version: updateInfo.version, }); } setUpdateInfo(null); setShowUpdateDialog(false); }; return ( <>
{updateInfo && ( )}
{showUpdateDialog && updateInfo && ( setShowUpdateDialog(false)} /> )} ); } function StatusDot({ ok, label }: { ok: boolean; label: string }) { return ( {label} ); }