Refactor minimal shell mode to refcounting (#10319)
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
import {useCallback, useMemo, useState} from 'react'
|
||||
import {useMemo, useState} from 'react'
|
||||
import {type AppBskyActorDefs} from '@atproto/api'
|
||||
import {msg} from '@lingui/core/macro'
|
||||
import {useLingui} from '@lingui/react'
|
||||
import {useFocusEffect} from '@react-navigation/native'
|
||||
|
||||
import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
|
||||
import {
|
||||
@@ -13,7 +12,6 @@ import {cleanError} from '#/lib/strings/errors'
|
||||
import {logger} from '#/logger'
|
||||
import {useProfileKnownFollowersQuery} from '#/state/queries/known-followers'
|
||||
import {useResolveDidQuery} from '#/state/queries/resolve-uri'
|
||||
import {useSetMinimalShellMode} from '#/state/shell'
|
||||
import {ProfileCardWithFollowBtn} from '#/view/com/profile/ProfileCard'
|
||||
import {List} from '#/view/com/util/List'
|
||||
import {ViewHeader} from '#/view/com/util/ViewHeader'
|
||||
@@ -46,7 +44,6 @@ type Props = NativeStackScreenProps<
|
||||
>
|
||||
export const ProfileKnownFollowersScreen = ({route}: Props) => {
|
||||
const {_} = useLingui()
|
||||
const setMinimalShellMode = useSetMinimalShellMode()
|
||||
const initialNumToRender = useInitialNumToRender()
|
||||
|
||||
const {name} = route.params
|
||||
@@ -67,7 +64,7 @@ export const ProfileKnownFollowersScreen = ({route}: Props) => {
|
||||
refetch,
|
||||
} = useProfileKnownFollowersQuery(resolvedDid)
|
||||
|
||||
const onRefresh = useCallback(async () => {
|
||||
const onRefresh = async () => {
|
||||
setIsPTRing(true)
|
||||
try {
|
||||
await refetch()
|
||||
@@ -75,16 +72,16 @@ export const ProfileKnownFollowersScreen = ({route}: Props) => {
|
||||
logger.error('Failed to refresh followers', {message: err})
|
||||
}
|
||||
setIsPTRing(false)
|
||||
}, [refetch, setIsPTRing])
|
||||
}
|
||||
|
||||
const onEndReached = useCallback(async () => {
|
||||
const onEndReached = async () => {
|
||||
if (isFetchingNextPage || !hasNextPage || !!error) return
|
||||
try {
|
||||
await fetchNextPage()
|
||||
} catch (err) {
|
||||
logger.error('Failed to load more followers', {message: err})
|
||||
}
|
||||
}, [isFetchingNextPage, hasNextPage, error, fetchNextPage])
|
||||
}
|
||||
|
||||
const followers = useMemo(() => {
|
||||
if (data?.pages) {
|
||||
@@ -95,12 +92,6 @@ export const ProfileKnownFollowersScreen = ({route}: Props) => {
|
||||
|
||||
const isError = Boolean(resolveError || error)
|
||||
|
||||
useFocusEffect(
|
||||
useCallback(() => {
|
||||
setMinimalShellMode(false)
|
||||
}, [setMinimalShellMode]),
|
||||
)
|
||||
|
||||
if (followers.length < 1) {
|
||||
return (
|
||||
<Layout.Screen>
|
||||
|
||||
Reference in New Issue
Block a user