Dialogs side quest

This commit is contained in:
Eric Bailey
2024-02-07 22:11:59 -06:00
parent f4ce9e22e8
commit 5bd64fbc85
10 changed files with 153 additions and 38 deletions
+3 -2
View File
@@ -1,5 +1,6 @@
import React from 'react'
import {DialogControlProps} from '#/components/Dialog'
import {Provider as GlobalDialogsProvider} from '#/components/dialogs'
const DialogContext = React.createContext<{
activeDialogs: React.MutableRefObject<
@@ -27,7 +28,7 @@ export function useDialogStateControlContext() {
export function Provider({children}: React.PropsWithChildren<{}>) {
const activeDialogs = React.useRef<
Map<string, React.MutableRefObject<DialogControlProps>>
Map<string, React.MutableRefObject<DialogControlProps<{}>>>
>(new Map())
const closeAllDialogs = React.useCallback(() => {
activeDialogs.current.forEach(dialog => dialog.current.close())
@@ -37,7 +38,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
return (
<DialogContext.Provider value={context}>
<DialogControlContext.Provider value={controls}>
{children}
<GlobalDialogsProvider>{children}</GlobalDialogsProvider>
</DialogControlContext.Provider>
</DialogContext.Provider>
)