import { Button, MantineRadius } from "@mantine/core"; import { IconRefresh } from "@tabler/icons-react"; import { AnimatedRoundedProgress } from "../AnimatedRoundedProgress/AnimatedRoundedProgress"; import { useUpdater } from "@/app/providers/UpdateProvider/useUpdater"; import { UpdateStatus } from "@/app/providers/UpdateProvider/UpdateProvider"; import { useEffect } from "react"; interface UpdateAlertProps { radius?: MantineRadius; } /** * Компонент для отображения кнопки обновлений если оно доступно, и прогресса загрузки если обновление уже скачивается */ export function UpdateAlert(props : UpdateAlertProps) { const radius = props.radius || 0; const { kernelUpdateUrl, downloadProgress, updateStatus, downloadLastApplicationUpdate, restartAppForUpdateApply, checkForUpdates } = useUpdater(); useEffect(() => { checkForUpdates(); }, []); return ( <> {updateStatus == UpdateStatus.KERNEL_UPDATE_NEED && <> } {updateStatus == UpdateStatus.APP_UPDATE_AVAILABLE && <> } {updateStatus == UpdateStatus.DOWNLOADING && <> } {updateStatus == UpdateStatus.COMPILE && <> } {updateStatus == UpdateStatus.READY_FOR_RESTART && <> } ); }