(
root: Root,
renderer: (done: (result: T) => void) => React.ReactNode,
options?: { onChangeAppState?: typeof onChangeAppState },
)
| 101 | * Reduces boilerplate in showSetupScreens() where every dialog needs these wrappers. |
| 102 | */ |
| 103 | export function showSetupDialog<T = void>( |
| 104 | root: Root, |
| 105 | renderer: (done: (result: T) => void) => React.ReactNode, |
| 106 | options?: { onChangeAppState?: typeof onChangeAppState }, |
| 107 | ): Promise<T> { |
| 108 | return showDialog<T>(root, done => ( |
| 109 | <ThemeProvider |
| 110 | initialState={getGlobalConfig().theme} |
| 111 | onThemeSave={setting => saveGlobalConfig(current => ({ ...current, theme: setting }))} |
| 112 | > |
| 113 | <AppStateProvider onChangeAppState={options?.onChangeAppState}> |
| 114 | <KeybindingSetup>{renderer(done)}</KeybindingSetup> |
| 115 | </AppStateProvider> |
| 116 | </ThemeProvider> |
| 117 | )); |
| 118 | } |
| 119 | |
| 120 | /** |
| 121 | * Render the main UI into the root and wait for it to exit. |
no test coverage detected