@@ -5,9 +5,9 @@ const React = require('react');
55const { useTranslation } = require ( 'react-i18next' ) ;
66const { useCore } = require ( 'stremio/core' ) ;
77const { Router } = require ( 'stremio-router' ) ;
8- const { Shell , Chromecast, Discord, ServicesProvider, GamepadProvider } = require ( 'stremio/services' ) ;
8+ const { Chromecast, Discord, ServicesProvider, GamepadProvider } = require ( 'stremio/services' ) ;
99const { NotFound } = require ( 'stremio/routes' ) ;
10- const { FullscreenProvider, PlatformProvider , ToastProvider, TooltipProvider, ShortcutsProvider, DiscordProvider, CONSTANTS , useShell , useBinaryState, useProfile, withCoreSuspender, onFileDrop } = require ( 'stremio/common' ) ;
10+ const { FullscreenProvider, ToastProvider, TooltipProvider, ShortcutsProvider, DiscordProvider, CONSTANTS , useBinaryState, useProfile, withCoreSuspender, onFileDrop, usePlatform } = require ( 'stremio/common' ) ;
1111const ServicesToaster = require ( './ServicesToaster' ) ;
1212const DeepLinkHandler = require ( './DeepLinkHandler' ) ;
1313const SearchParamsHandler = require ( './SearchParamsHandler' ) ;
@@ -24,14 +24,13 @@ const App = () => {
2424 const core = useCore ( ) ;
2525 const profile = useProfile ( ) ;
2626 const { i18n } = useTranslation ( ) ;
27- const shell = useShell ( ) ;
27+ const { shell } = usePlatform ( ) ;
2828 const [ gamepadSupportEnabled , setGamepadSupportEnabled ] = React . useState ( false ) ;
2929 const onPathNotMatch = React . useCallback ( ( ) => {
3030 return NotFound ;
3131 } , [ ] ) ;
3232 const services = React . useMemo ( ( ) => {
3333 return {
34- shell : new Shell ( ) ,
3534 discord : new Discord ( ) ,
3635 chromecast : new Chromecast ( ) ,
3736 } ;
@@ -100,13 +99,11 @@ const App = () => {
10099 }
101100 } ;
102101 services . chromecast . on ( 'stateChanged' , onChromecastStateChange ) ;
103- services . shell . start ( ) ;
104102 services . chromecast . start ( ) ;
105- services . discord . init ( services . shell ) ;
103+ services . discord . init ( shell ) ;
106104
107105 window . services = services ;
108106 return ( ) => {
109- services . shell . stop ( ) ;
110107 services . chromecast . stop ( ) ;
111108 services . chromecast . off ( 'stateChanged' , onChromecastStateChange ) ;
112109 } ;
@@ -146,10 +143,10 @@ const App = () => {
146143 setGamepadSupportEnabled ( profile . settings . gamepadSupport ) ;
147144 }
148145
149- if ( profile . settings ?. quitOnClose && shell . windowClosed ) {
146+ if ( profile . settings ?. quitOnClose && shell . state . windowClosed ) {
150147 shell . send ( 'quit' ) ;
151148 }
152- } , [ profile . settings , shell . windowClosed ] ) ;
149+ } , [ profile . settings , shell . state . windowClosed ] ) ;
153150
154151 React . useEffect ( ( ) => {
155152 const onWindowFocus = ( ) => {
@@ -190,35 +187,33 @@ const App = () => {
190187
191188 return (
192189 < ServicesProvider services = { services } >
193- < PlatformProvider >
194- < ToastProvider className = { styles [ 'toasts-container' ] } >
195- < TooltipProvider className = { styles [ 'tooltip-container' ] } >
196- < GamepadProvider enabled = { gamepadSupportEnabled } onGuide = { toggleGamepadModal } >
197- < ShortcutsProvider onShortcut = { onShortcut } >
198- < FullscreenProvider >
199- < DiscordProvider >
200- {
201- shortcutModalOpen && < ShortcutsModal onClose = { closeShortcutsModal } />
202- }
203- {
204- gamepadModalOpen && < GamepadModal onClose = { closeGamepadModal } />
205- }
206- < ServicesToaster />
207- < DeepLinkHandler />
208- < SearchParamsHandler />
209- < UpdaterBanner className = { styles [ 'updater-banner-container' ] } />
210- < RouterWithProtectedRoutes
211- className = { styles [ 'router' ] }
212- viewsConfig = { routerViewsConfig }
213- onPathNotMatch = { onPathNotMatch }
214- />
215- </ DiscordProvider >
216- </ FullscreenProvider >
217- </ ShortcutsProvider >
218- </ GamepadProvider >
219- </ TooltipProvider >
220- </ ToastProvider >
221- </ PlatformProvider >
190+ < ToastProvider className = { styles [ 'toasts-container' ] } >
191+ < TooltipProvider className = { styles [ 'tooltip-container' ] } >
192+ < GamepadProvider enabled = { gamepadSupportEnabled } onGuide = { toggleGamepadModal } >
193+ < ShortcutsProvider onShortcut = { onShortcut } >
194+ < FullscreenProvider >
195+ < DiscordProvider >
196+ {
197+ shortcutModalOpen && < ShortcutsModal onClose = { closeShortcutsModal } />
198+ }
199+ {
200+ gamepadModalOpen && < GamepadModal onClose = { closeGamepadModal } />
201+ }
202+ < ServicesToaster />
203+ < DeepLinkHandler />
204+ < SearchParamsHandler />
205+ < UpdaterBanner className = { styles [ 'updater-banner-container' ] } />
206+ < RouterWithProtectedRoutes
207+ className = { styles [ 'router' ] }
208+ viewsConfig = { routerViewsConfig }
209+ onPathNotMatch = { onPathNotMatch }
210+ />
211+ </ DiscordProvider >
212+ </ FullscreenProvider >
213+ </ ShortcutsProvider >
214+ </ GamepadProvider >
215+ </ TooltipProvider >
216+ </ ToastProvider >
222217 </ ServicesProvider >
223218 ) ;
224219} ;
0 commit comments