@@ -12,25 +12,26 @@ import BluetoothNetworkModal from "./components/common/modals/BluetoothNetworkMo
12
12
import DeviceSwitcherModal from "./components/player/DeviceSwitcherModal" ;
13
13
import NetworkPasswordModal from "./components/common/modals/NetworkPasswordModal" ;
14
14
import ConnectorQRModal from "./components/common/modals/ConnectorQRModal" ;
15
+ import SystemUpdateModal from "./components/common/modals/SystemUpdateModal" ;
15
16
import ButtonMappingOverlay from "./components/common/overlays/ButtonMappingOverlay" ;
16
17
import { useNetwork } from "./hooks/useNetwork" ;
17
18
import { useGradientState } from "./hooks/useGradientState" ;
18
19
import { PlaybackProgressContext } from "./hooks/usePlaybackProgress" ;
19
20
import { DeviceSwitcherContext } from "./hooks/useSpotifyPlayerControls" ;
20
- import { useBluetooth } from "./hooks/useBluetooth " ;
21
+ import { useBluetooth , useSystemUpdate } from "./hooks/useNocturned " ;
21
22
import { useSpotifyData } from "./hooks/useSpotifyData" ;
22
23
import { SettingsProvider } from "./contexts/SettingsContext" ;
23
24
import { ConnectorProvider } from "./contexts/ConnectorContext" ;
24
25
import React from "react" ;
25
26
26
27
export const NetworkContext = React . createContext ( {
27
28
selectedNetwork : null ,
28
- setSelectedNetwork : ( ) => { } ,
29
+ setSelectedNetwork : ( ) => { } ,
29
30
} ) ;
30
31
31
32
export const ConnectorContext = React . createContext ( {
32
33
showConnectorModal : false ,
33
- setShowConnectorModal : ( ) => { } ,
34
+ setShowConnectorModal : ( ) => { } ,
34
35
} ) ;
35
36
36
37
function useGlobalButtonMapping ( {
@@ -281,6 +282,14 @@ function App() {
281
282
enableNetworking,
282
283
} = useBluetooth ( ) ;
283
284
285
+ const {
286
+ updateStatus,
287
+ progress,
288
+ isUpdating,
289
+ isError,
290
+ errorMessage
291
+ } = useSystemUpdate ( ) ;
292
+
284
293
const {
285
294
currentColor1,
286
295
currentColor2,
@@ -453,6 +462,8 @@ function App() {
453
462
}
454
463
} ;
455
464
465
+ const isFlashing = isUpdating && updateStatus . stage === 'flash' ;
466
+
456
467
let content ;
457
468
if ( authIsLoading ) {
458
469
content = null ;
@@ -538,19 +549,26 @@ function App() {
538
549
539
550
< div className = "relative z-10" >
540
551
{ content }
541
- { ! isConnected && showNoNetwork && < NetworkScreen /> }
552
+ { ! isConnected && showNoNetwork && ! isFlashing && < NetworkScreen /> }
542
553
< BluetoothPairingModal
543
554
pairingRequest = { pairingRequest }
544
555
isConnecting = { isConnecting }
545
556
onAccept = { acceptPairing }
546
557
onDeny = { denyPairing }
547
558
/>
548
559
< BluetoothNetworkModal
549
- show = { showNetworkPrompt && ! isConnected }
560
+ show = { showNetworkPrompt && ! isConnected && ! isFlashing }
550
561
deviceName = { lastConnectedDevice ?. name }
551
562
onCancel = { handleNetworkCancel }
552
563
isConnecting = { isConnecting }
553
564
/>
565
+ < SystemUpdateModal
566
+ show = { isFlashing }
567
+ status = { updateStatus }
568
+ progress = { progress }
569
+ isError = { isError }
570
+ errorMessage = { errorMessage }
571
+ />
554
572
< DeviceSwitcherModal
555
573
isOpen = { isDeviceSwitcherOpen }
556
574
onClose = { handleCloseDeviceSwitcher }
0 commit comments