diff options
Diffstat (limited to 'src/state/shell/composer.tsx')
-rw-r--r-- | src/state/shell/composer.tsx | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/state/shell/composer.tsx b/src/state/shell/composer.tsx index a350bd7f3..70d77a7e0 100644 --- a/src/state/shell/composer.tsx +++ b/src/state/shell/composer.tsx @@ -34,13 +34,15 @@ export interface ComposerOpts { type StateContext = ComposerOpts | undefined type ControlsContext = { openComposer: (opts: ComposerOpts) => void - closeComposer: () => void + closeComposer: () => boolean } const stateContext = React.createContext<StateContext>(undefined) const controlsContext = React.createContext<ControlsContext>({ openComposer(_opts: ComposerOpts) {}, - closeComposer() {}, + closeComposer() { + return false + }, }) export function Provider({children}: React.PropsWithChildren<{}>) { @@ -51,11 +53,14 @@ export function Provider({children}: React.PropsWithChildren<{}>) { setState(opts) }, closeComposer() { + let wasOpen = !!state setState(undefined) + return wasOpen }, }), - [setState], + [setState, state], ) + return ( <stateContext.Provider value={state}> <controlsContext.Provider value={api}> |