App.tsx 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import { StatusBar } from 'expo-status-bar';
  2. import React from 'react';
  3. import * as SplashScreen from 'expo-splash-screen';
  4. import { Text, Div, Button } from 'react-native-magnus';
  5. import { SafeAreaProvider } from 'react-native-safe-area-context';
  6. import { ThemeProvider } from 'react-native-magnus';
  7. import { UseRequestProvider, useRequest } from 'ahooks';
  8. import './i18n';
  9. import useCachedResources from './hooks/useCachedResources';
  10. import useColorScheme from './hooks/useColorScheme';
  11. import Navigation from './navigation';
  12. import useModel from 'flooks';
  13. import { useTranslation } from 'react-i18next';
  14. import theme from './constants/Theme';
  15. import request from './utils/RequestUtils';
  16. import User from './stores/User';
  17. export default function App() {
  18. const isLoadingComplete = useCachedResources();
  19. const colorScheme = useColorScheme();
  20. const { i18n } = useTranslation();
  21. const { id, getInit, initialRouteName } = useModel(User, [
  22. 'id',
  23. 'initialRouteName',
  24. ]);
  25. const { loading, run } = useRequest(getInit, {
  26. refreshDeps: [id],
  27. debounceInterval: 2000,
  28. });
  29. if (!isLoadingComplete || !initialRouteName) {
  30. return null;
  31. } else {
  32. SplashScreen.hideAsync();
  33. return (
  34. <UseRequestProvider
  35. value={{
  36. refreshOnWindowFocus: true,
  37. requestMethod: request,
  38. }}
  39. >
  40. <ThemeProvider theme={theme}>
  41. <SafeAreaProvider>
  42. <Div flex={1}>
  43. <Button
  44. fontSize="xl"
  45. position="absolute"
  46. zIndex={999}
  47. bg="transparent"
  48. color="black"
  49. bottom={50}
  50. left={20}
  51. >
  52. 骑手端测试版 (0914) 问题列表清理
  53. </Button>
  54. <Navigation colorScheme={colorScheme} />
  55. </Div>
  56. <StatusBar />
  57. </SafeAreaProvider>
  58. </ThemeProvider>
  59. </UseRequestProvider>
  60. );
  61. }
  62. }