'use client'; import { useState } from 'react'; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import { Progress } from '@/components/ui/progress'; import { Checkbox } from '@/components/ui/checkbox'; import { Label } from '@/components/ui/label'; import { Download, Loader2, X, Sparkles } from 'lucide-react'; import { useAppUpdater } from '@/hooks/use-app-updater'; import { useSettingsStore } from '@/store/settings-store'; interface UpdateDialogProps { open: boolean; onOpenChange: (open: boolean) => void; } export function UpdateDialog({ open, onOpenChange }: UpdateDialogProps) { const { currentVersion, updateAvailable, updateInfo, isChecking, isDownloading, downloadProgress, error, installUpdate, } = useAppUpdater(); const [dontShowAgain, setDontShowAgain] = useState(false); const setAutoCheckUpdates = useSettingsStore((state) => state.setAutoCheckUpdates); const handleInstall = async () => { if (dontShowAgain) { setAutoCheckUpdates(false); } await installUpdate(); }; const handleClose = () => { if (dontShowAgain) { setAutoCheckUpdates(false); } onOpenChange(false); }; if (!updateAvailable && !isChecking) { return null; } return ( Atualização Disponível Uma nova versão do OllaHub está disponível para download.
Versão Atual {currentVersion}
Nova Versão {updateInfo?.version}
{updateInfo?.body && (

{updateInfo.body}

)} {isDownloading && (
Baixando atualização... {downloadProgress}%
)} {error && (

{error}

)}
setDontShowAgain(checked === true)} />
); }