import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import * as React from 'react';
import Container from '../components/container';
import Intro from '../components/intro';
import Favorites from '../screens/favorites';
import Home from '../screens/home';
import Notebook from '../screens/notebook';
import Notebooks from '../screens/notebooks';
import { ColoredNotes } from '../screens/notes/colored';
import { Monographs } from '../screens/notes/monographs';
import { TaggedNotes } from '../screens/notes/tagged';
import { TopicNotes } from '../screens/notes/topic-notes';
import { Search } from '../screens/search';
import Settings from '../screens/settings';
import AppLock from '../screens/settings/app-lock';
import Tags from '../screens/tags';
import Trash from '../screens/trash';
import { eSendEvent } from '../services/event-manager';
import SettingsService from '../services/settings';
import useNavigationStore from '../stores/use-navigation-store';
import { useSelectionStore } from '../stores/use-selection-store';
import { useThemeStore } from '../stores/use-theme-store';
import { history } from '../utils';
import { rootNavigatorRef } from '../utils/global-refs';
import { hideAllTooltips } from '../utils/hooks/use-tooltip';
import { useWindowDimensions } from 'react-native';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { useSettingStore } from '../stores/use-setting-store';
const NativeStack = createNativeStackNavigator();
const IntroStack = createNativeStackNavigator();
/**
* Intro Stack:
*
* Welcome Page
* Select Privacy Mode Page
* Login/Signup Page
*
*/
const IntroStackNavigator = () => {
const colors = useThemeStore(state => state.colors);
return (
);
};
const Tabs = React.memo(
() => {
const colors = useThemeStore(state => state.colors);
const homepage = SettingsService.get().homepage;
const introCompleted = useSettingStore(state => state.settings.introCompleted);
const height = useSettingStore(state => state.dimensions.height);
const insets = useSafeAreaInsets();
const screenHeight = height - (50 + insets.top + insets.bottom);
React.useEffect(() => {
setTimeout(() => {
useNavigationStore.getState().update({ name: homepage });
}, 1000);
}, []);
return (
null}
initialRouteName={!introCompleted ? 'Welcome' : homepage}
backBehavior="history"
screenOptions={{
headerShown: false,
lazy: false,
animation: 'none',
contentStyle: {
backgroundColor: colors.bg,
height: !introCompleted ? undefined : screenHeight
}
}}
>
);
},
() => true
);
export const NavigationStack = React.memo(
() => {
const clearSelection = useSelectionStore(state => state.clearSelection);
const onStateChange = React.useCallback(() => {
if (history.selectionMode) {
clearSelection(true);
}
hideAllTooltips();
eSendEvent('navigate');
});
return (
);
},
() => true
);