@@ -21,6 +21,9 @@ import { getNetworkInfo } from '../../redux/network/selectors';
2121import { checkUpdates as checkUpdatesIco } from '../../assets/images' ;
2222import { AppThDispatch } from '../../types' ;
2323import updaterSlice from '../../redux/updater/slice' ;
24+ import { SECOND } from '../../../shared/constants' ;
25+ import { Loader } from '../../basicComponents' ;
26+ import UpdateApplicationWarningModal from '../../screens/modal/UpdateApplicationWarningModal' ;
2427import FeedbackButton from './Feedback' ;
2528
2629const Container = styled . div `
@@ -194,6 +197,29 @@ const UpdateStatus = () => {
194197 const isDownloading = useSelector ( isUpdateDownloading ) ;
195198 const isDownloaded = useSelector ( isUpdateDownloaded ) ;
196199 const error = useSelector ( getError ) ;
200+ const [
201+ isOpenUpdateApplicationWarningModal ,
202+ setIsOpenUpdateApplicationWarningModal ,
203+ ] = useState ( false ) ;
204+ const [
205+ showUpdateApplicationLoader ,
206+ setShowUpdateApplicationLoader ,
207+ ] = useState ( false ) ;
208+
209+ const handleRestartNow = ( ) => {
210+ setIsOpenUpdateApplicationWarningModal ( false ) ;
211+ setShowUpdateApplicationLoader ( true ) ;
212+ eventsService . installUpdate ( ) ;
213+
214+ setTimeout ( ( ) => {
215+ setShowUpdateApplicationLoader ( false ) ;
216+ } , 10 * SECOND ) ;
217+ } ;
218+
219+ const handlePostpone = ( ) => {
220+ setIsOpenUpdateApplicationWarningModal ( false ) ;
221+ } ;
222+
197223 if ( ! isDownloading && ! isDownloaded ) return null ;
198224
199225 if ( progress !== null && ! isDownloaded ) {
@@ -207,9 +233,19 @@ const UpdateStatus = () => {
207233 return (
208234 < >
209235 < ProgressChunk > Update is ready to install</ ProgressChunk >
210- < PrimaryAction onClick = { ( ) => eventsService . installUpdate ( ) } >
236+ < PrimaryAction
237+ onClick = { ( ) => setIsOpenUpdateApplicationWarningModal ( true ) }
238+ >
211239 Restart Smapp
212240 </ PrimaryAction >
241+ < UpdateApplicationWarningModal
242+ isOpen = { isOpenUpdateApplicationWarningModal }
243+ onApprove = { handleRestartNow }
244+ onCancel = { handlePostpone }
245+ />
246+ { showUpdateApplicationLoader && (
247+ < Loader size = { Loader . sizes . BIG } note = "UPDATE IN PROGESS..." />
248+ ) }
213249 </ >
214250 ) ;
215251 }
0 commit comments