App.js 1.35 KB
/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 *
 * @format
 * @flow strict-local
 */

import React, { useLayoutEffect } from 'react'
import { StatusBar, Platform, Text, TextInput } from 'react-native'
import { SafeAreaProvider } from 'react-native-safe-area-context'
import { RouterView } from './src/router'
import { Provider } from 'react-redux'
import { ThemeProvider } from 'rn-ui'
import { defaultTheme } from './src/commo/theme'
import { PrivacyAlert, Update } from './src/components'
import store from './src/store'
import SplashScreen from 'react-native-splash-screen'

//阻止系统缩放
TextInput.defaultProps = Object.assign({}, TextInput.defaultProps, { allowFontScaling: false })
Text.defaultProps = Object.assign({}, Text.defaultProps, { allowFontScaling: false })


const App = () => {
  useLayoutEffect(() => {
    store.dispatch.site.init()
    SplashScreen.hide()
  }, [])
  
  return (
    <>
      <PrivacyAlert />
      {Platform.OS === 'android' && <Update />}
      {Platform.OS === 'ios' && <StatusBar translucent={true} backgroundColor="rgba(255,255,255,0)" barStyle="dark-content" />}
      <Provider store={store}>
        <SafeAreaProvider>
          <ThemeProvider theme={defaultTheme}>
            <RouterView />
          </ThemeProvider>
        </SafeAreaProvider>
      </Provider>
    </>
  )
}

export default App