mirror of
https://github.com/tooot-app/app
synced 2025-06-05 22:19:13 +02:00
Rewrite app start up procedure
This commit is contained in:
@ -5,7 +5,7 @@ import {
|
||||
NavigationContainerRef
|
||||
} from '@react-navigation/native'
|
||||
|
||||
import React, { useEffect, useRef } from 'react'
|
||||
import React, { useEffect, useRef, useState } from 'react'
|
||||
import { StatusBar } from 'react-native'
|
||||
import Toast from 'react-native-toast-message'
|
||||
import { Feather } from '@expo/vector-icons'
|
||||
@ -30,6 +30,7 @@ import {
|
||||
import { useInfiniteQuery } from 'react-query'
|
||||
import client from './api/client'
|
||||
import { timelineFetch } from './utils/fetches/timelineFetch'
|
||||
import { useNetInfo } from '@react-native-community/netinfo'
|
||||
|
||||
const Tab = createBottomTabNavigator<RootStackParamList>()
|
||||
|
||||
@ -55,6 +56,19 @@ export const Index: React.FC<Props> = ({ localCorrupt }) => {
|
||||
dark = 'light-content'
|
||||
}
|
||||
|
||||
const isConnected = useNetInfo().isConnected
|
||||
const [firstRender, setFirstRender] = useState(false)
|
||||
useEffect(() => {
|
||||
if (firstRender) {
|
||||
// bug in netInfo on first render as false
|
||||
if (isConnected !== false) {
|
||||
toast({ type: 'error', content: '手机🈚️网络', autoHide: false })
|
||||
}
|
||||
} else {
|
||||
setFirstRender(true)
|
||||
}
|
||||
}, [isConnected, firstRender])
|
||||
|
||||
// On launch display login credentials corrupt information
|
||||
useEffect(() => {
|
||||
const showLocalCorrect = localCorrupt
|
||||
|
@ -65,19 +65,21 @@ const client = async ({
|
||||
if (error.response) {
|
||||
// The request was made and the server responded with a status code
|
||||
// that falls out of the range of 2xx
|
||||
console.error('axios error', error.response)
|
||||
return Promise.reject({
|
||||
headers: error.response.headers,
|
||||
body: error.response.data.error
|
||||
})
|
||||
console.error(
|
||||
ctx.bold(' API '),
|
||||
ctx.bold('response'),
|
||||
error.response.status,
|
||||
error.response.data.error
|
||||
)
|
||||
return Promise.reject(error.response)
|
||||
} else if (error.request) {
|
||||
// The request was made but no response was received
|
||||
// `error.request` is an instance of XMLHttpRequest in the browser and an instance of
|
||||
// http.ClientRequest in node.js
|
||||
console.error('axios error', error)
|
||||
console.error(ctx.bold(' API '), ctx.bold('request'), error)
|
||||
return Promise.reject()
|
||||
} else {
|
||||
console.error('axios error', error.message)
|
||||
console.error(ctx.bold(' API '), ctx.bold('other'), error.message)
|
||||
return Promise.reject({ body: error.message })
|
||||
}
|
||||
})
|
||||
|
@ -33,12 +33,12 @@ const toast = ({
|
||||
onHide
|
||||
}: Params) => {
|
||||
Toast.show({
|
||||
type: type,
|
||||
position: position,
|
||||
type,
|
||||
position,
|
||||
text1: content,
|
||||
text2: description,
|
||||
visibilityTime: 2000,
|
||||
autoHide: autoHide,
|
||||
visibilityTime: 1500,
|
||||
autoHide,
|
||||
topOffset: 0,
|
||||
bottomOffset: 0,
|
||||
onShow: onShow,
|
||||
|
Reference in New Issue
Block a user