diff options
author | Hailey <me@haileyok.com> | 2024-03-08 14:31:24 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-08 14:31:24 -0800 |
commit | 0f9f08b1ef795215975c7b041d0e94a992d22124 (patch) | |
tree | e21d78f80631c51efc48f65574cd0999cb6cb228 /src/view/shell/index.tsx | |
parent | 8f623c3bdf8dbbdc4c4f10f19b0b2c134b4160cb (diff) | |
download | voidsky-0f9f08b1ef795215975c7b041d0e94a992d22124.tar.zst |
Fix reactivity of dialogs (Dialogs Pt. 1) (#3146)
* Improve a11y on ios * Format * Remove android * Fix android * Revert some changes * use sharedvalue for `importantForAccessibility` * add back `isOpen` * fix some more types --------- Co-authored-by: Eric Bailey <git@esb.lol>
Diffstat (limited to 'src/view/shell/index.tsx')
-rw-r--r-- | src/view/shell/index.tsx | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/src/view/shell/index.tsx b/src/view/shell/index.tsx index bdba79174..76a7f8fb3 100644 --- a/src/view/shell/index.tsx +++ b/src/view/shell/index.tsx @@ -30,7 +30,8 @@ import {useCloseAnyActiveElement} from '#/state/util' import * as notifications from 'lib/notifications/notifications' import {Outlet as PortalOutlet} from '#/components/Portal' import {MutedWordsDialog} from '#/components/dialogs/MutedWords' -import {useDialogStateContext} from '#/state/dialogs' +import {useDialogStateContext} from 'state/dialogs' +import Animated from 'react-native-reanimated' function ShellInner() { const isDrawerOpen = useIsDrawerOpen() @@ -54,9 +55,9 @@ function ShellInner() { const canGoBack = useNavigationState(state => !isStateAtTabRoot(state)) const {hasSession, currentAccount} = useSession() const closeAnyActiveElement = useCloseAnyActiveElement() + const {importantForAccessibility} = useDialogStateContext() // start undefined const currentAccountDid = React.useRef<string | undefined>(undefined) - const {openDialogs} = useDialogStateContext() React.useEffect(() => { let listener = {remove() {}} @@ -80,19 +81,9 @@ function ShellInner() { } }, [currentAccount]) - /** - * The counterpart to `accessibilityViewIsModal` for Android. This property - * applies to the parent of all non-modal views, and prevents TalkBack from - * navigating within content beneath an open dialog. - * - * @see https://reactnative.dev/docs/accessibility#importantforaccessibility-android - */ - const importantForAccessibility = - openDialogs.length > 0 ? 'no-hide-descendants' : undefined - return ( <> - <View + <Animated.View style={containerPadding} importantForAccessibility={importantForAccessibility}> <ErrorBoundary> @@ -106,7 +97,7 @@ function ShellInner() { <TabsNavigator /> </Drawer> </ErrorBoundary> - </View> + </Animated.View> <Composer winHeight={winDim.height} /> <ModalsContainer /> <MutedWordsDialog /> |