(
root: ReturnType<typeof import('react-dom/client').createRoot>,
)
| 27 | import { useUpdaterStore } from './stores/updaterStore'; |
| 28 | |
| 29 | export const initPlayerApp = async ( |
| 30 | root: ReturnType<typeof import('react-dom/client').createRoot>, |
| 31 | ) => { |
| 32 | initLogStream(); |
| 33 | |
| 34 | await initializeSettingsStore() |
| 35 | .then(() => initializeShortcutsStore()) |
| 36 | .then(() => initializeQueueStore()) |
| 37 | .then(() => initializeFavoritesStore()) |
| 38 | .then(() => initializePlaylistStore()) |
| 39 | .then(() => registerBuiltInCoreSettings()) |
| 40 | .then(() => initDiscoveryService()) |
| 41 | .then(() => initMcpHandler()) |
| 42 | .then(() => initMpdHandler()) |
| 43 | .then(() => initHttpApiHandler()) |
| 44 | .then(() => initBridgeHandler()) |
| 45 | .then(() => initDiscordHandler()) |
| 46 | .then(() => applyLanguageFromSettings()) |
| 47 | .then(() => initLanguageWatcher()) |
| 48 | .then(() => startAdvancedThemeWatcher()) |
| 49 | .then(() => loadMarketplaceThemes()) |
| 50 | .then(() => hydrateThemeStore()) |
| 51 | .then(() => applyAdvancedThemeFromSettingsIfAny()) |
| 52 | .then(() => { |
| 53 | void hydratePluginsFromRegistry(); |
| 54 | void useUpdaterStore.getState().checkForUpdate(); |
| 55 | void ytdlpEnsureInstalled(); |
| 56 | }); |
| 57 | |
| 58 | root.render( |
| 59 | <React.StrictMode> |
| 60 | <App /> |
| 61 | </React.StrictMode>, |
| 62 | ); |
| 63 | }; |
no test coverage detected