import * as React from 'react'; import { StyleSheet, ScrollView } from 'react-native'; import { RouteViewPortal, RouteContentProps, NavigationObject, NavigatorConstantsObject } from 'react-native-ios-navigator'; import { CardBody, CardButton, CardTitle } from '../components/ui/Card'; import { ObjectPropertyDisplay } from '../components/ui/ObjectPropertyDisplay'; import { Spacer } from '../components/ui/Spacer'; function DebugSection(props: { navigation: NavigationObject }){ const [navigatorConstantsObject, setNavigatorConstantsObject] = React.useState(null); const debug = { routeKey : props.navigation.routeKey, routeIndex: props.navigation.routeIndex, activeRoutesCount: navigatorConstantsObject?.activeRoutes?.length ?? 'N/A', ...(navigatorConstantsObject && { navigatorID : navigatorConstantsObject.navigatorID, activeRoutes : navigatorConstantsObject.activeRoutes.sort(), topViewController : navigatorConstantsObject.topViewController, visibleViewController: navigatorConstantsObject.visibleViewController, }), }; return( { const constants = await props.navigation.getNavigatorConstants(); setNavigatorConstantsObject(constants); }} /> ); }; export function NavigatorTest03(props: RouteContentProps){ const [isNavBarHidden, setIsNavBarHidden] = React.useState(false); return ( { props.navigation.push({routeKey: 'NavigatorTest03'}); }} /> { props.navigation.pop(); }} /> { props.navigation.popToRoot(); }} /> { props.navigation.removeRoute(1); }} /> { props.navigation.removeRoutes([1,2]); }} /> { props.navigation.setNavigationBarHidden(!isNavBarHidden, true); setIsNavBarHidden(!isNavBarHidden); }} /> { props.navigation.replaceRoute(1, {routeKey: 'Home'}); }} /> { props.navigation.insertRoute({routeKey: 'NavigatorTest01'}, 1); }} /> { props.navigation.setRoutes((routes) => [...routes].reverse()); }} /> { props.navigation.setRoutes((routes) => [...routes, {routeKey: 'NavigatorTest01'}]); }} /> { props.navigation.setRoutes((routes) => routes.slice(0, routes.length - 1)); }} /> { props.navigation.replaceRoute(0,{routeKey: 'NavigatorTest01'}); }} /> { props.navigation.removeRoute(0); }} /> { props.navigation.removeRoute(1); }} /> { props.navigation.removePreviousRoute(); }} /> { props.navigation.removeAllPrevRoutes(); }} /> { props.navigation.replaceCurrentRoute({routeKey: 'NavigatorTest01'}); }} /> { props.navigation.replacePreviousRoute({routeKey: 'NavigatorTest01'}); }} /> { props.navigation.push({ routeKey: 'TestNativeRoute', routeProps: { message: "Hello from JS" }, }); }} /> { props.navigation.replaceCurrentRoute({routeKey: 'TestNativeRoute'}); }} /> { props.navigation.insertRoute({routeKey: 'TestNativeRoute'}, 1); }} /> { props.navigation.setRoutes((routes) => ([ ...routes, { routeKey: `TestNativeRoute` } ])); }} /> { props.navigation.sendCustomCommandToNative('Test01', { message: 'Hello' }); }} /> ); }; const styles = StyleSheet.create({ scrollViewContentContainer: { paddingTop: 10, paddingBottom: 100, }, });