@@ -6,12 +6,8 @@ import Home from "./pages/Home";
66import ContentView from "./components/content/ContentView" ;
77import NowPlaying from "./components/player/NowPlaying" ;
88import DeviceSwitcherModal from "./components/player/DeviceSwitcherModal" ;
9- import NetworkPasswordModal from "./components/common/modals/NetworkPasswordModal" ;
10- import ConnectorQRModal from "./components/common/modals/ConnectorQRModal" ;
119import ButtonMappingOverlay from "./components/common/overlays/ButtonMappingOverlay" ;
12- import NetworkBanner from "./components/common/overlays/NetworkBanner" ;
1310import GradientBackground from "./components/common/GradientBackground" ;
14- import { useNetwork } from "./hooks/useNetwork" ;
1511import { useGradientState } from "./hooks/useGradientState" ;
1612import { DeviceSwitcherContext } from "./hooks/useSpotifyPlayerControls" ;
1713import {
@@ -22,7 +18,6 @@ import {
2218import { useSpotifyData } from "./hooks/useSpotifyData" ;
2319import { usePlaybackProgress } from "./hooks/usePlaybackProgress" ;
2420import { SettingsProvider } from "./contexts/SettingsContext" ;
25- import { ConnectorProvider } from "./contexts/ConnectorContext" ;
2621import React from "react" ;
2722import {
2823 NotificationProvider ,
@@ -36,16 +31,8 @@ import { CheckIcon } from "./components/common/icons";
3631import { SettingsUpdateIcon } from "./components/common/icons" ;
3732import UpdateCheckNotification from "./components/common/notifications/UpdateCheckNotification" ;
3833import UpdateScreen from "./components/common/UpdateScreen" ;
39-
40- export const NetworkContext = React . createContext ( {
41- selectedNetwork : null ,
42- setSelectedNetwork : ( ) => { } ,
43- } ) ;
44-
45- export const ConnectorContext = React . createContext ( {
46- showConnectorModal : false ,
47- setShowConnectorModal : ( ) => { } ,
48- } ) ;
34+ import NetworkScreen from "./components/auth/NetworkScreen" ;
35+ import NetworkBanner from "./components/common/overlays/NetworkBanner" ;
4936
5037function useGlobalButtonMapping ( {
5138 playTrack,
@@ -280,13 +267,12 @@ function App() {
280267 const [ viewingContent , setViewingContent ] = useState ( null ) ;
281268 const [ contentSourceSection , setContentSourceSection ] = useState ( null ) ;
282269 const [ isDeviceSwitcherOpen , setIsDeviceSwitcherOpen ] = useState ( false ) ;
283- const [ selectedNetwork , setSelectedNetwork ] = useState ( null ) ;
284- const [ showConnectorModal , setShowConnectorModal ] = useState ( false ) ;
285270 const [ playbackIntentOnDeviceSwitch , setPlaybackIntentOnDeviceSwitch ] =
286271 useState ( null ) ;
287272 const [ prefetchedDevices , setPrefetchedDevices ] = useState ( null ) ;
288273 const [ powerMenuVisible , setPowerMenuVisible ] = useState ( false ) ;
289274 const powerMenuVisibleRef = useRef ( false ) ;
275+ const [ showNetworkBanner , setShowNetworkBanner ] = useState ( false ) ;
290276
291277 useEffect ( ( ) => {
292278 powerMenuVisibleRef . current = powerMenuVisible ;
@@ -313,13 +299,6 @@ function App() {
313299 refreshRecentlyPlayed,
314300 } = useSpotifyData ( activeSection , false , true ) ;
315301
316- const {
317- isConnected : isInternetConnected ,
318- showNetworkBanner,
319- initialCheckDone,
320- initialConnectionFailed,
321- hasEverConnectedThisSession,
322- } = useNetwork ( ) ;
323302
324303 const {
325304 version : nocturneVersion ,
@@ -345,7 +324,19 @@ function App() {
345324 } , [ ] ) ;
346325
347326 useEffect ( ( ) => {
348- if ( ! isInternetConnected ) return ;
327+ const handleShowBanner = ( ) => setShowNetworkBanner ( true ) ;
328+ const handleHideBanner = ( ) => setShowNetworkBanner ( false ) ;
329+
330+ window . addEventListener ( "networkBannerShow" , handleShowBanner ) ;
331+ window . addEventListener ( "networkBannerHide" , handleHideBanner ) ;
332+
333+ return ( ) => {
334+ window . removeEventListener ( "networkBannerShow" , handleShowBanner ) ;
335+ window . removeEventListener ( "networkBannerHide" , handleHideBanner ) ;
336+ } ;
337+ } , [ ] ) ;
338+
339+ useEffect ( ( ) => {
349340 if ( isInfoLoading ) return ;
350341 if ( ! serial ) return ;
351342
@@ -376,7 +367,7 @@ function App() {
376367 script . id = "analytics" ;
377368
378369 document . body . appendChild ( script ) ;
379- } , [ isInternetConnected , isInfoLoading , serial , analyticsEnabled ] ) ;
370+ } , [ isInfoLoading , serial , analyticsEnabled ] ) ;
380371
381372 const {
382373 pairingRequest,
@@ -488,20 +479,6 @@ function App() {
488479 openDeviceSwitcher : handleOpenDeviceSwitcher ,
489480 } ;
490481
491- const handleNetworkClose = ( ) => {
492- setSelectedNetwork ( null ) ;
493- } ;
494-
495- const networkContextValue = {
496- selectedNetwork,
497- setSelectedNetwork,
498- } ;
499-
500- const connectorContextValue = {
501- showConnectorModal,
502- setShowConnectorModal,
503- } ;
504-
505482 useEffect ( ( ) => {
506483 const handleNetworkRestored = ( ) => {
507484 refreshPlaybackState ( true ) ;
@@ -578,12 +555,12 @@ function App() {
578555 ] ) ;
579556
580557 useEffect ( ( ) => {
581- if ( lastConnectedDevice && isInternetConnected ) {
558+ if ( lastConnectedDevice ) {
582559 setDiscoverable ( false ) ;
583560 } else {
584561 setDiscoverable ( true ) ;
585562 }
586- } , [ lastConnectedDevice , isInternetConnected , setDiscoverable ] ) ;
563+ } , [ lastConnectedDevice , setDiscoverable ] ) ;
587564
588565 useEffect ( ( ) => {
589566 if ( showTetheringScreen ) {
@@ -747,12 +724,6 @@ function App() {
747724 setActiveSection ( "artists" ) ;
748725 } ;
749726
750- const handleNetworkCancel = ( ) => {
751- if ( lastConnectedDevice ) {
752- disconnectDevice ( lastConnectedDevice . address ) ;
753- }
754- } ;
755-
756727 const handleConnectionRestored = ( ) => {
757728 refreshPlaybackState ( true ) ;
758729 if ( ! initialDataLoaded ) {
@@ -764,25 +735,10 @@ function App() {
764735 const isUpdateScreenVisible =
765736 isUpdating || ( updateStatus . stage && updateStatus . stage !== "" ) ;
766737
767- const showConnectionLostScreen =
768- initialCheckDone &&
769- ! isUpdateScreenVisible &&
770- ! pairingRequest &&
771- ! showTetheringScreen &&
772- ( ( initialConnectionFailed &&
773- ! isInternetConnected &&
774- ! hasEverConnectedThisSession ) ||
775- ( ! hasEverConnectedThisSession && ! isInternetConnected ) ) ;
776-
777- const displayNetworkBanner =
778- initialCheckDone &&
779- ! showConnectionLostScreen &&
780- ! pairingRequest &&
781- ! isUpdating &&
782- updateStatus . stage !== "download" &&
783- updateStatus . stage !== "flash" &&
784- showNetworkBanner &&
785- hasEverConnectedThisSession ;
738+ const showConnectionLostScreen = ! isUpdateScreenVisible && ! showTutorial && ! pairingRequest && ! lastConnectedDevice ;
739+ // const showConnectionLostScreen = false;
740+
741+ const displayNetworkBanner = showNetworkBanner && ! showConnectionLostScreen && ! isUpdateScreenVisible ;
786742
787743 let content ;
788744 if ( isUpdateScreenVisible ) {
@@ -882,11 +838,8 @@ function App() {
882838 refetchInfo = { refetchInfo }
883839 />
884840 ) }
885- < ConnectorProvider >
886841 < SettingsProvider >
887842 < DeviceSwitcherContext . Provider value = { deviceSwitcherContextValue } >
888- < NetworkContext . Provider value = { networkContextValue } >
889- < ConnectorContext . Provider value = { connectorContextValue } >
890843 < Router >
891844 < FontLoader />
892845 < main
@@ -917,22 +870,15 @@ function App() {
917870 ) : null }
918871 </ >
919872 ) }
920- < NetworkBanner visible = { displayNetworkBanner } />
873+ < NetworkBanner
874+ visible = { displayNetworkBanner }
875+ onClose = { ( ) => setShowNetworkBanner ( false ) }
876+ />
921877 < DeviceSwitcherModal
922878 isOpen = { isDeviceSwitcherOpen }
923879 onClose = { handleCloseDeviceSwitcher }
924880 initialDevices = { prefetchedDevices }
925881 />
926- { showConnectorModal && (
927- < ConnectorQRModal
928- onClose = { ( ) => setShowConnectorModal ( false ) }
929- />
930- ) }
931- < NetworkPasswordModal
932- network = { selectedNetwork }
933- onClose = { handleNetworkClose }
934- onConnect = { handleNetworkClose }
935- />
936882 { ! showTutorial && (
937883 < ButtonMappingOverlay
938884 show = { showGlobalMappingOverlay }
@@ -949,11 +895,8 @@ function App() {
949895 </ main >
950896 < NotificationsContainer />
951897 </ Router >
952- </ ConnectorContext . Provider >
953- </ NetworkContext . Provider >
954898 </ DeviceSwitcherContext . Provider >
955899 </ SettingsProvider >
956- </ ConnectorProvider >
957900 </ NotificationProvider >
958901 ) ;
959902}
0 commit comments