import React from 'react'; import { createBottomTabNavigator, BottomTabNavigationProp } from '@react-navigation/bottom-tabs'; import { StackNavigationProp } from '@react-navigation/stack'; import { createNativeStackNavigator } from '@react-navigation/native-stack'; import { CompositeNavigationProp } from '@react-navigation/native'; import { THEME_COLOR } from 'CONSTANTS'; import Search from './Search'; import Music from './Music'; import Settings from './Settings'; import Downloads from './Downloads'; import Onboarding from './Onboarding'; import TrackPopupMenu from './modals/TrackPopupMenu'; import SetJellyfinServer from './modals/SetJellyfinServer'; import SearchIcon from 'assets/icons/magnifying-glass.svg'; import NotesIcon from 'assets/icons/notes.svg'; import GearIcon from 'assets/icons/gear.svg'; import DownloadsIcon from 'assets/icons/arrow-down-to-line.svg'; import { useTypedSelector } from 'store'; import { ModalStackParams } from './types'; import { t } from '@localisation'; import ErrorReportingAlert from 'utility/ErrorReportingAlert'; import ErrorReportingPopup from './modals/ErrorReportingPopup'; import Player from './modals/Player'; const Stack = createNativeStackNavigator(); const Tab = createBottomTabNavigator(); type Screens = { Music: undefined; Settings: undefined; } function Screens() { const isOnboardingComplete = useTypedSelector(state => state.settings.isOnboardingComplete); // GUARD: If onboarding has not been completed, we instead render the // onboarding component, so that the user can get setup in the app. if (!isOnboardingComplete) { return ; } return ( <> ({ tabBarIcon: function TabBarIcon({ color, size }) { switch (route.name) { case 'Search': return ; case 'Music': return ; case 'Settings': return ; case 'Downloads': return ; default: return null; } }, tabBarActiveTintColor: THEME_COLOR, tabBarInactiveTintColor: 'gray', headerShown: false, })} > ); } type Routes = { Screens: undefined; SetJellyfinServer: undefined; } export default function Routes() { return ( ); } export type NavigationProp = CompositeNavigationProp< StackNavigationProp, BottomTabNavigationProp >;