import { createNavigationContainerRef, NavigatorScreenParams } from "@react-navigation/core"; import { createNativeStackNavigator, NativeStackNavigationOptions } from "@react-navigation/native-stack"; import RNBootSplash from "react-native-bootsplash"; import { NavigationContainer } from "@react-navigation/native"; import { Home } from "screens/Home"; import { useStore } from "store"; import { createBottomTabNavigator } from "@react-navigation/bottom-tabs"; import { Buttons } from "screens/Buttons"; import { Typography } from "screens/Typography"; import { Blank } from "screens/Blank"; import { BlankModal } from "screens/BlankModal"; import { HomeRow } from "screens/HomeRow"; import { HomeStack } from "screens/HomeStack"; export type MainRoutes = { TabNav: NavigatorScreenParams; BlankModal: undefined; BlankModalNoHeader: undefined; }; const defaultNavigationOptions = { orientation: "portrait_up", headerTitleAlign: "center", headerBackTitleVisible: false, headerBackButtonMenuEnabled: false, statusBarTranslucent: true, statusBarColor: "transparent", navigationBarColor: "transparent", statusBarStyle: "dark", } as NativeStackNavigationOptions; export const navigationRef = createNavigationContainerRef(); const MainStack = createNativeStackNavigator(); export function Navigation() { const rehydrated = useStore((s) => s.rehydrated); if (!rehydrated) { return null; } return ( { RNBootSplash.hide({ fade: true }); }} onStateChange={() => { const currentRoute = navigationRef.current?.getCurrentRoute(); if (currentRoute) { const currentRouteName = currentRoute.name; if (__DEV__) { console.log({ screen: currentRouteName }); } } }} > ); } export type TabNavRoutes = { Tab1: NavigatorScreenParams; Tab2: NavigatorScreenParams; Tab3: NavigatorScreenParams; }; const TabStack = createBottomTabNavigator(); export function TabNav() { return ( ); } export type HomeNavRoutes = { Home: undefined; Buttons: undefined; Typography: undefined; HomeStack: undefined; HomeRow: undefined; }; const HomeStackNav = createNativeStackNavigator(); export function Tab1() { return ( ); } export type Tab2NavRoutes = { Blank: undefined; }; const Tab2Stack = createNativeStackNavigator(); export function Tab2() { return ( ); } export type Tab3NavRoutes = { BlankNoHeader: undefined; }; const Tab3Stack = createNativeStackNavigator(); export function Tab3() { return ( ); }