Memoize renderItem
This commit is contained in:
@@ -129,46 +129,49 @@ export const ProfileFeedgens = React.forwardRef<
|
|||||||
// rendering
|
// rendering
|
||||||
// =
|
// =
|
||||||
|
|
||||||
const renderItem = ({item, index}: ListRenderItemInfo<any>) => {
|
const renderItem = React.useCallback(
|
||||||
if (item === EMPTY) {
|
({item, index}: ListRenderItemInfo<any>) => {
|
||||||
return (
|
if (item === EMPTY) {
|
||||||
<EmptyState
|
return (
|
||||||
icon="hashtag"
|
<EmptyState
|
||||||
message={_(msg`You have no feeds.`)}
|
icon="hashtag"
|
||||||
testID="listsEmpty"
|
message={_(msg`You have no feeds.`)}
|
||||||
/>
|
testID="listsEmpty"
|
||||||
)
|
/>
|
||||||
} else if (item === ERROR_ITEM) {
|
)
|
||||||
return (
|
} else if (item === ERROR_ITEM) {
|
||||||
<ErrorMessage message={cleanError(error)} onPressTryAgain={refetch} />
|
return (
|
||||||
)
|
<ErrorMessage message={cleanError(error)} onPressTryAgain={refetch} />
|
||||||
} else if (item === LOAD_MORE_ERROR_ITEM) {
|
)
|
||||||
return (
|
} else if (item === LOAD_MORE_ERROR_ITEM) {
|
||||||
<LoadMoreRetryBtn
|
return (
|
||||||
label={_(
|
<LoadMoreRetryBtn
|
||||||
msg`There was an issue fetching your lists. Tap here to try again.`,
|
label={_(
|
||||||
)}
|
msg`There was an issue fetching your lists. Tap here to try again.`,
|
||||||
onPress={onPressRetryLoadMore}
|
)}
|
||||||
/>
|
onPress={onPressRetryLoadMore}
|
||||||
)
|
/>
|
||||||
} else if (item === LOADING) {
|
)
|
||||||
return <FeedLoadingPlaceholder />
|
} else if (item === LOADING) {
|
||||||
}
|
return <FeedLoadingPlaceholder />
|
||||||
if (preferences) {
|
}
|
||||||
return (
|
if (preferences) {
|
||||||
<View
|
return (
|
||||||
style={[
|
<View
|
||||||
(index !== 0 || isWeb) && a.border_t,
|
style={[
|
||||||
t.atoms.border_contrast_low,
|
(index !== 0 || isWeb) && a.border_t,
|
||||||
a.px_lg,
|
t.atoms.border_contrast_low,
|
||||||
a.py_lg,
|
a.px_lg,
|
||||||
]}>
|
a.py_lg,
|
||||||
<FeedCard.Default view={item} />
|
]}>
|
||||||
</View>
|
<FeedCard.Default view={item} />
|
||||||
)
|
</View>
|
||||||
}
|
)
|
||||||
return null
|
}
|
||||||
}
|
return null
|
||||||
|
},
|
||||||
|
[_, t, error, refetch, onPressRetryLoadMore, preferences],
|
||||||
|
)
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
if (enabled && scrollElRef.current) {
|
if (enabled && scrollElRef.current) {
|
||||||
|
|||||||
Reference in New Issue
Block a user