1
0
mirror of https://github.com/tooot-app/app synced 2025-06-05 22:19:13 +02:00

Ready for push feature

This commit is contained in:
Zhiyuan Zheng
2021-03-04 01:03:53 +01:00
parent a4a6e9316b
commit cc02626adb
17 changed files with 255 additions and 135 deletions

View File

@ -7,19 +7,19 @@ import {
import { NavigatorScreenParams } from '@react-navigation/native'
import { StackScreenProps } from '@react-navigation/stack'
import { getPreviousTab } from '@utils/slices/contextsSlice'
import { getInstanceActive, getInstances } from '@utils/slices/instancesSlice'
import {
getInstanceAccount,
getInstanceActive
} from '@utils/slices/instancesSlice'
import { useTheme } from '@utils/styles/ThemeManager'
import React, { useCallback, useMemo } from 'react'
import { Platform } from 'react-native'
import FastImage from 'react-native-fast-image'
import { useQueryClient } from 'react-query'
import { useDispatch, useSelector } from 'react-redux'
import { useSelector } from 'react-redux'
import TabLocal from './Tabs/Local'
import TabMe from './Tabs/Me'
import TabNotifications from './Tabs/Notifications'
import TabPublic from './Tabs/Public'
import pushReceive from './Tabs/utils/pushReceive'
import pushRespond from './Tabs/utils/pushRespond'
export type ScreenTabsParamList = {
'Tab-Local': NavigatorScreenParams<Nav.TabLocalStackParamList>
@ -40,18 +40,12 @@ const ScreenTabs = React.memo(
({ navigation }: ScreenTabsProp) => {
const { mode, theme } = useTheme()
const queryClient = useQueryClient()
const dispatch = useDispatch()
const instanceActive = useSelector(getInstanceActive)
const instances = useSelector(
getInstances,
(prev, next) => prev.length === next.length
const instanceAccount = useSelector(
getInstanceAccount,
(prev, next) => prev?.avatarStatic === next?.avatarStatic
)
pushReceive({ navigation, queryClient, instances })
pushRespond({ navigation, queryClient, instances, dispatch })
const screenOptions = useCallback(
({ route }): BottomTabNavigationOptions => ({
tabBarVisible: instanceActive !== -1,
@ -77,7 +71,7 @@ const ScreenTabs = React.memo(
return instanceActive !== -1 ? (
<FastImage
source={{
uri: instances[instanceActive].account.avatarStatic
uri: instanceAccount?.avatarStatic
}}
style={{
width: size,
@ -99,7 +93,7 @@ const ScreenTabs = React.memo(
}
}
}),
[instances, instanceActive]
[instanceAccount, instanceActive]
)
const tabBarOptions = useMemo(
() => ({