Application Android et IOS pour l'amicale des élèves https://play.google.com/store/apps/details?id=fr.amicaleinsat.application
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MainApp.tsx 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import React, { Ref, useEffect } from 'react';
  2. import {
  3. NavigationContainer,
  4. NavigationContainerRef,
  5. } from '@react-navigation/native';
  6. import { Provider as PaperProvider } from 'react-native-paper';
  7. import GENERAL_STYLES from '../constants/Styles';
  8. import CollapsibleProvider from '../components/providers/CollapsibleProvider';
  9. import CacheProvider from '../components/providers/CacheProvider';
  10. import { OverflowMenuProvider } from 'react-navigation-header-buttons';
  11. import MainNavigator from '../navigation/MainNavigator';
  12. import { Platform, SafeAreaView, View } from 'react-native';
  13. import { useDarkTheme } from '../context/preferencesContext';
  14. import { CustomDarkTheme, CustomWhiteTheme } from '../utils/Themes';
  15. import { setupStatusBar } from '../utils/Utils';
  16. type Props = {
  17. defaultHomeRoute?: string;
  18. defaultHomeData?: { [key: string]: string };
  19. };
  20. function MainApp(props: Props, ref?: Ref<NavigationContainerRef>) {
  21. const darkTheme = useDarkTheme();
  22. const theme = darkTheme ? CustomDarkTheme : CustomWhiteTheme;
  23. useEffect(() => {
  24. if (Platform.OS === 'ios') {
  25. setTimeout(setupStatusBar, 1000);
  26. } else {
  27. setupStatusBar(theme);
  28. }
  29. }, [theme]);
  30. return (
  31. <PaperProvider theme={theme}>
  32. <CollapsibleProvider>
  33. <CacheProvider>
  34. <OverflowMenuProvider>
  35. <View
  36. style={{
  37. backgroundColor: theme.colors.background,
  38. ...GENERAL_STYLES.flex,
  39. }}
  40. >
  41. <SafeAreaView style={GENERAL_STYLES.flex}>
  42. <NavigationContainer theme={theme} ref={ref}>
  43. <MainNavigator
  44. defaultHomeRoute={props.defaultHomeRoute}
  45. defaultHomeData={props.defaultHomeData}
  46. />
  47. </NavigationContainer>
  48. </SafeAreaView>
  49. </View>
  50. </OverflowMenuProvider>
  51. </CacheProvider>
  52. </CollapsibleProvider>
  53. </PaperProvider>
  54. );
  55. }
  56. export default React.forwardRef(MainApp);