2022-09-20 17:39:49 +00:00
import React 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' ;
interface Props {
open : boolean ;
clientVersion : string ;
coordinatorVersion : string ;
2022-10-30 19:13:01 +00:00
onClose : ( ) = > void ;
2022-09-20 17:39:49 +00:00
}
const UpdateClientDialog = ( {
2022-10-20 17:24:53 +00:00
open = false ,
2022-09-20 17:39:49 +00:00
clientVersion ,
coordinatorVersion ,
2022-10-30 19:13:01 +00:00
onClose ,
2022-09-20 17:39:49 +00:00
} : Props ) : JSX . Element = > {
const { t } = useTranslation ( ) ;
return (
2022-10-30 19:13:01 +00:00
< Dialog open = { open } onClose = { onClose } >
2022-09-20 17:39:49 +00:00
< 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.' ,
2022-09-27 15:52:00 +00:00
{ coordinatorVersion , clientVersion } ,
2022-09-20 17:39:49 +00:00
) }
< / Typography >
< List dense >
< ListItemButton
component = 'a'
target = '_blank'
2023-03-07 16:04:04 +00:00
href = { ` https://github.com/Reckless-Satoshi/robosats/releases/tag/ ${ coordinatorVersion } -alpha ` }
2022-09-20 17:39:49 +00:00
rel = 'noreferrer'
>
< ListItemIcon >
< AndroidIcon color = 'primary' sx = { { height : 32 , width : 32 } } / >
< / ListItemIcon >
< ListItemText
secondary = { t ( 'Download RoboSats {{coordinatorVersion}} APK from Github releases' , {
2022-09-27 15:52:00 +00:00
coordinatorVersion ,
2022-09-20 17:39:49 +00:00
} ) }
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 >
2022-10-30 19:13:01 +00:00
< Button onClick = { onClose } > { t ( 'Go away!' ) } < / Button >
2022-09-20 17:39:49 +00:00
< / DialogActions >
< / List >
< / DialogContent >
< / Dialog >
) ;
} ;
export default UpdateClientDialog ;