mirror of
https://github.com/RoboSats/robosats.git
synced 2025-02-08 06:19:03 +00:00
![KoalaSat](/assets/img/avatar_default.png)
* Add SVG icons for map pins * Add federation basis and new coordinator form (#793) * Add new coordinator entry issue form * Add Federation basis * Fix eslint errors from F2F and fix languages * Redo eslint @typescript-eslint/strict-boolean-expressions * Robot Page working * Contexts Working * Garage Working * CurrentOrder working * Federation model working --------- Co-authored-by: Reckless_Satoshi <reckless.satoshi@protonmail.com> Co-authored-by: Reckless_Satoshi <90936742+Reckless-Satoshi@users.noreply.github.com>
133 lines
3.7 KiB
TypeScript
133 lines
3.7 KiB
TypeScript
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<boolean>(() => 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 (
|
|
<Dialog
|
|
open={open}
|
|
onClose={() => {
|
|
setOpen(false);
|
|
}}
|
|
>
|
|
<DialogContent>
|
|
<Typography component='h5' variant='h5'>
|
|
{t('Update your RoboSats client')}
|
|
</Typography>
|
|
|
|
<br />
|
|
|
|
<Typography>
|
|
{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 },
|
|
)}
|
|
</Typography>
|
|
|
|
<List dense>
|
|
<ListItemButton
|
|
component='a'
|
|
target='_blank'
|
|
href={`https://github.com/RoboSats/robosats/releases/tag/${coordinatorString}-alpha`}
|
|
rel='noreferrer'
|
|
>
|
|
<ListItemIcon>
|
|
<AndroidIcon color='primary' sx={{ height: 32, width: 32 }} />
|
|
</ListItemIcon>
|
|
|
|
<ListItemText
|
|
secondary={t('Download RoboSats {{coordinatorVersion}} APK from Github releases', {
|
|
coordinatorVersion,
|
|
})}
|
|
primary={t('On Android RoboSats app ')}
|
|
/>
|
|
</ListItemButton>
|
|
|
|
<Divider />
|
|
|
|
<ListItemButton
|
|
component='a'
|
|
target='_blank'
|
|
href={`https://hub.docker.com/r/recksato/robosats-client`}
|
|
rel='noreferrer'
|
|
>
|
|
<ListItemIcon>
|
|
<UpcomingIcon color='primary' sx={{ height: 32, width: 32 }} />
|
|
</ListItemIcon>
|
|
|
|
<ListItemText
|
|
secondary={t("Check your node's store or update the Docker image yourself")}
|
|
primary={t('On your own soverign node')}
|
|
/>
|
|
</ListItemButton>
|
|
|
|
<Divider />
|
|
|
|
<ListItemButton
|
|
component='a'
|
|
onClick={() => {
|
|
location.reload(true);
|
|
}}
|
|
>
|
|
<ListItemIcon>
|
|
<WebIcon color='primary' sx={{ height: 32, width: 32 }} />
|
|
</ListItemIcon>
|
|
|
|
<ListItemText
|
|
secondary={t(
|
|
'On Tor Browser client simply refresh your tab (click here or press Ctrl+Shift+R)',
|
|
)}
|
|
primary={t('On remotely served browser client')}
|
|
/>
|
|
</ListItemButton>
|
|
|
|
<DialogActions>
|
|
<Button
|
|
onClick={() => {
|
|
setOpen(false);
|
|
}}
|
|
>
|
|
{t('Go away!')}
|
|
</Button>
|
|
</DialogActions>
|
|
</List>
|
|
</DialogContent>
|
|
</Dialog>
|
|
);
|
|
};
|
|
|
|
export default UpdateDialog;
|