import { ProtectedScreenName, PublicScreenName } from '@/core/enums'; import { RootStackParamList } from '@/core/types'; import { LoginScreen, RegisterScreen } from '@/features/authentication/screens'; import { BottomSheetsScreen, FormScreen, ImagesScreen, ListScreen, LoaderScreen, ModalsScreen, PickersScreen, ShowcaseListScreen, SpacersScreen, TextsScreen, TouchableScreen, } from '@/features/showcase/screens'; import { useTailwind } from '@/hooks'; import { stackScreenOptions } from '@/navigators/options'; import BottomTabBar from '@/navigators/tabs/BottomTabBar'; import { useAuthStore } from '@/stores'; import { navigationRef } from '@/utils'; import { useFlipper } from '@react-navigation/devtools'; import { createNativeStackNavigator } from '@react-navigation/native-stack'; const useNavigationFlipper = __DEV__ ? useFlipper : null; const NativeStack = createNativeStackNavigator(); const PublicScreens = ( ); const ProtectedScreens = ( {/* BottomTab */} {/* Showcase */} ); export default function RootStack() { const tw = useTailwind(); const isAuthenticated = useAuthStore( ({ accessToken, refreshToken }) => accessToken?.isNotEmpty && refreshToken?.isNotEmpty, ); useNavigationFlipper?.(navigationRef); return ( {isAuthenticated ? ProtectedScreens : PublicScreens} ); }