diff --git a/NewArch/src/Navigation.tsx b/NewArch/src/Navigation.tsx index fc90d731..fbc44b18 100644 --- a/NewArch/src/Navigation.tsx +++ b/NewArch/src/Navigation.tsx @@ -238,44 +238,78 @@ const DrawerNavigator = ({drawerContent, defaultStatus, children} : DrawerNaviga return ( - - - { drawerIsOpen && - - setDrawerDesiredOpen(false)} - onAccessibilityTap={() => setDrawerDesiredOpen(false)} - /> - + + {/* Main content area - should always be visible */} + + {React.Children.map(children, child => { + const name = child.props.name; + if (name !== navigationContext.currentScreen) { + return null; } + return ( + + {child} + + ); + })} + + + {/* Drawer overlay and drawer - positioned absolutely over content */} + {drawerIsOpen && ( + <> + {/* Semi-transparent backdrop that covers the entire screen */} + setDrawerDesiredOpen(false)} + onAccessibilityTap={() => setDrawerDesiredOpen(false)} + accessibilityRole="button" + accessibilityLabel="Close navigation menu" + accessibilityHint="Tap to close the navigation drawer" + /> + + + {/* Drawer content */} + - {drawer} + width: DEFAULT_DRAWER_WIDTH, + transform: [{ translateX: slideAnim }], + zIndex: 2, + backgroundColor: PlatformColor('Background'), + elevation: 16, // Android shadow + shadowColor: '#000', // iOS shadow + shadowOffset: { width: 2, height: 0 }, + shadowOpacity: 0.25, + shadowRadius: 8, + }}> + + {drawerContent({ navigation })} + - - {React.Children.map(children, child => { - const name = child.props.name; - if (name !== navigationContext.currentScreen) { - return null; - } - return ( - - {child} - - ); - })} + + )} );