From 328aa2be9482f77cb1cf86c5d227fdcee9981b16 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 6 Aug 2025 15:15:52 -0500 Subject: [APP-1356] Policy update dialog (#8782) * Add blocking announcement dialog feature * WIP custom dialog * Rework dialog and add native FocusScope * Lock scroll on web, fix backdrop * Add web FocusScope * Create custom Outlet for these announcements * Clean up FocusScope native impl * Comments * Some styling fixes * Handle screen reader specifically * Clean up state, remove Portal edits * Reorg, rename * Add syncing, tests * Revert dialog updates * Revert formatting * Delete unused file * Format * Add FullWindowOverlay * remove mmkv storage in debug btn * Add debug code * fix taps passing through on iOS * Reorg * Reorg, rename everything * Complete policy update after signup * Add logger * Move context around, unmount portals on native * Move a11y prop into FocusScope * Remove useMemo * Update dates * Move debug to dev settings * Unmount web portals until policy update completed * UPdate dates --------- Co-authored-by: Samuel Newman --- src/components/PolicyUpdateOverlay/context.tsx | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/components/PolicyUpdateOverlay/context.tsx (limited to 'src/components/PolicyUpdateOverlay/context.tsx') diff --git a/src/components/PolicyUpdateOverlay/context.tsx b/src/components/PolicyUpdateOverlay/context.tsx new file mode 100644 index 000000000..68ae7bbd8 --- /dev/null +++ b/src/components/PolicyUpdateOverlay/context.tsx @@ -0,0 +1,32 @@ +import {createContext, type ReactNode, useContext} from 'react' + +import {Provider as PortalProvider} from '#/components/PolicyUpdateOverlay/Portal' +import { + type PolicyUpdateState, + usePolicyUpdateState, +} from '#/components/PolicyUpdateOverlay/usePolicyUpdateState' + +const Context = createContext({ + completed: true, + complete: () => {}, +}) + +export function usePolicyUpdateStateContext() { + const context = useContext(Context) + if (!context) { + throw new Error( + 'usePolicyUpdateStateContext must be used within a PolicyUpdateProvider', + ) + } + return context +} + +export function Provider({children}: {children?: ReactNode}) { + const state = usePolicyUpdateState() + + return ( + + {children} + + ) +} -- cgit 1.4.1