import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Dialog, DialogContent, DialogActions, Button, Divider, List, ListItemText, ListItemIcon, ListItemButton, Typography, } from '@mui/material'; import WebIcon from '@mui/icons-material/Web'; import AndroidIcon from '@mui/icons-material/Android'; import UpcomingIcon from '@mui/icons-material/Upcoming'; import { checkVer } from '../../utils'; import { type Version } from '../../models'; interface Props { coordinatorVersion: Version; clientVersion: Version; onClose: () => void; } const UpdateDialog = ({ coordinatorVersion, clientVersion }: Props): JSX.Element => { const { t } = useTranslation(); const [open, setOpen] = useState(() => checkVer(coordinatorVersion)); const coordinatorString = `v${coordinatorVersion.major}-${coordinatorVersion.minor}-${coordinatorVersion.patch}`; const clientString = `v${clientVersion.major}-${clientVersion.minor}-${clientVersion.patch}`; useEffect(() => { setOpen(checkVer(coordinatorVersion)); }, [coordinatorVersion]); return ( { setOpen(false); }} > {t('Update your RoboSats client')}
{t( 'The RoboSats coordinator is on version {{coordinatorVersion}}, but your client app is {{clientVersion}}. This version mismatch might lead to a bad user experience.', { coordinatorString, clientString }, )} { location.reload(true); }} >
); }; export default UpdateDialog;