prefetch account list
This commit is contained in:
@@ -1,11 +1,15 @@
|
|||||||
import React from 'react'
|
import {useCallback, useEffect, useState} from 'react'
|
||||||
import {View} from 'react-native'
|
import {View} from 'react-native'
|
||||||
import {useSafeAreaInsets} from 'react-native-safe-area-context'
|
import {useSafeAreaInsets} from 'react-native-safe-area-context'
|
||||||
import {msg} from '@lingui/macro'
|
import {msg} from '@lingui/macro'
|
||||||
import {useLingui} from '@lingui/react'
|
import {useLingui} from '@lingui/react'
|
||||||
|
import {useQueryClient} from '@tanstack/react-query'
|
||||||
|
|
||||||
import {PressableScale} from '#/lib/custom-animations/PressableScale'
|
import {PressableScale} from '#/lib/custom-animations/PressableScale'
|
||||||
import {logEvent} from '#/lib/statsig/statsig'
|
import {logEvent} from '#/lib/statsig/statsig'
|
||||||
|
import {STALE} from '#/state/queries'
|
||||||
|
import {profilesQueryKey} from '#/state/queries/profile'
|
||||||
|
import {useAgent, useSession} from '#/state/session'
|
||||||
import {
|
import {
|
||||||
useLoggedOutView,
|
useLoggedOutView,
|
||||||
useLoggedOutViewControls,
|
useLoggedOutViewControls,
|
||||||
@@ -34,7 +38,7 @@ export function LoggedOut({onDismiss}: {onDismiss?: () => void}) {
|
|||||||
const insets = useSafeAreaInsets()
|
const insets = useSafeAreaInsets()
|
||||||
const setMinimalShellMode = useSetMinimalShellMode()
|
const setMinimalShellMode = useSetMinimalShellMode()
|
||||||
const {requestedAccountSwitchTo} = useLoggedOutView()
|
const {requestedAccountSwitchTo} = useLoggedOutView()
|
||||||
const [screenState, setScreenState] = React.useState<ScreenState>(() => {
|
const [screenState, setScreenState] = useState<ScreenState>(() => {
|
||||||
if (requestedAccountSwitchTo === 'new') {
|
if (requestedAccountSwitchTo === 'new') {
|
||||||
return ScreenState.S_CreateAccount
|
return ScreenState.S_CreateAccount
|
||||||
} else if (requestedAccountSwitchTo === 'starterpack') {
|
} else if (requestedAccountSwitchTo === 'starterpack') {
|
||||||
@@ -47,11 +51,26 @@ export function LoggedOut({onDismiss}: {onDismiss?: () => void}) {
|
|||||||
})
|
})
|
||||||
const {clearRequestedAccount} = useLoggedOutViewControls()
|
const {clearRequestedAccount} = useLoggedOutViewControls()
|
||||||
|
|
||||||
React.useEffect(() => {
|
const queryClient = useQueryClient()
|
||||||
|
const {accounts} = useSession()
|
||||||
|
const agent = useAgent()
|
||||||
|
useEffect(() => {
|
||||||
|
const actors = accounts.map(acc => acc.did)
|
||||||
|
queryClient.prefetchQuery({
|
||||||
|
queryKey: profilesQueryKey(actors),
|
||||||
|
staleTime: STALE.MINUTES.FIVE,
|
||||||
|
queryFn: async () => {
|
||||||
|
const res = await agent.getProfiles({actors})
|
||||||
|
return res.data
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}, [accounts, agent, queryClient])
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
setMinimalShellMode(true)
|
setMinimalShellMode(true)
|
||||||
}, [setMinimalShellMode])
|
}, [setMinimalShellMode])
|
||||||
|
|
||||||
const onPressDismiss = React.useCallback(() => {
|
const onPressDismiss = useCallback(() => {
|
||||||
if (onDismiss) {
|
if (onDismiss) {
|
||||||
onDismiss()
|
onDismiss()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user