import { Alert, Box, Snackbar, Button } from '@mui/material'; import { useEffect, useState } from 'react'; export const Notifier = () => { const [open, setOpen] = useState(false); const [message, setMessage] = useState(''); const [severity, setSeverity] = useState< 'error' | 'warning' | 'info' | 'success' >('info'); const [hasUpdateAvailable, setHasUpdateAvailable] = useState(false); useEffect(() => { // Слушаем событие о наличии обновления window.electron.ipcRenderer.on('update-available', () => { setMessage('Доступно новое обновление'); setSeverity('info'); setHasUpdateAvailable(true); setOpen(true); }); return () => { // Отписываемся от события при размонтировании window.electron.ipcRenderer.removeAllListeners('update-available'); }; }, []); const handleClose = () => { setOpen(false); }; const handleUpdate = () => { window.electron.ipcRenderer.invoke('install-update'); setOpen(false); }; return ( ) } > {message} ); };