fix re-rendering issue
parent
1378ab46e9
commit
90adc19415
|
@ -35,6 +35,7 @@ export const Feed = observer(function Feed({
|
||||||
testID,
|
testID,
|
||||||
headerOffset = 0,
|
headerOffset = 0,
|
||||||
ListHeaderComponent,
|
ListHeaderComponent,
|
||||||
|
extraData,
|
||||||
}: {
|
}: {
|
||||||
feed: PostsFeedModel
|
feed: PostsFeedModel
|
||||||
style?: StyleProp<ViewStyle>
|
style?: StyleProp<ViewStyle>
|
||||||
|
@ -46,6 +47,7 @@ export const Feed = observer(function Feed({
|
||||||
testID?: string
|
testID?: string
|
||||||
headerOffset?: number
|
headerOffset?: number
|
||||||
ListHeaderComponent?: () => JSX.Element
|
ListHeaderComponent?: () => JSX.Element
|
||||||
|
extraData?: any
|
||||||
}) {
|
}) {
|
||||||
const pal = usePalette('default')
|
const pal = usePalette('default')
|
||||||
const {track} = useAnalytics()
|
const {track} = useAnalytics()
|
||||||
|
@ -182,6 +184,7 @@ export const Feed = observer(function Feed({
|
||||||
onEndReachedThreshold={0.6}
|
onEndReachedThreshold={0.6}
|
||||||
removeClippedSubviews={true}
|
removeClippedSubviews={true}
|
||||||
contentOffset={{x: 0, y: headerOffset * -1}}
|
contentOffset={{x: 0, y: headerOffset * -1}}
|
||||||
|
extraData={extraData}
|
||||||
// @ts-ignore our .web version only -prf
|
// @ts-ignore our .web version only -prf
|
||||||
desktopFixedHeight
|
desktopFixedHeight
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -28,7 +28,6 @@ export const CustomFeed = withAuthRequired(
|
||||||
[rkey, name],
|
[rkey, name],
|
||||||
)
|
)
|
||||||
const currentFeed = useCustomFeed(uri)
|
const currentFeed = useCustomFeed(uri)
|
||||||
const pal = usePalette('default')
|
|
||||||
const scrollElRef = useRef<FlatList>(null)
|
const scrollElRef = useRef<FlatList>(null)
|
||||||
const algoFeed: PostsFeedModel = useMemo(() => {
|
const algoFeed: PostsFeedModel = useMemo(() => {
|
||||||
const feed = new PostsFeedModel(rootStore, 'custom', {
|
const feed = new PostsFeedModel(rootStore, 'custom', {
|
||||||
|
@ -38,7 +37,32 @@ export const CustomFeed = withAuthRequired(
|
||||||
return feed
|
return feed
|
||||||
}, [rootStore, uri])
|
}, [rootStore, uri])
|
||||||
|
|
||||||
const _ListHeaderComponent = () => {
|
return (
|
||||||
|
<View style={[styles.container]}>
|
||||||
|
<ViewHeader
|
||||||
|
title={
|
||||||
|
displayName ?? `${currentFeed?.data.creator.displayName}'s feed`
|
||||||
|
}
|
||||||
|
showOnDesktop
|
||||||
|
/>
|
||||||
|
<Feed
|
||||||
|
scrollElRef={scrollElRef}
|
||||||
|
testID={'test-feed'}
|
||||||
|
key="default"
|
||||||
|
feed={algoFeed}
|
||||||
|
headerOffset={12}
|
||||||
|
ListHeaderComponent={() => <ListHeaderComponent uri={uri} />}
|
||||||
|
extraData={uri}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
|
||||||
|
const ListHeaderComponent = observer(({uri}: {uri: string}) => {
|
||||||
|
const currentFeed = useCustomFeed(uri)
|
||||||
|
const pal = usePalette('default')
|
||||||
|
const rootStore = useStores()
|
||||||
return (
|
return (
|
||||||
<View style={[styles.headerContainer]}>
|
<View style={[styles.headerContainer]}>
|
||||||
<View style={[styles.header]}>
|
<View style={[styles.header]}>
|
||||||
|
@ -89,29 +113,7 @@ export const CustomFeed = withAuthRequired(
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
}
|
})
|
||||||
|
|
||||||
return (
|
|
||||||
<View style={[styles.container]}>
|
|
||||||
<ViewHeader
|
|
||||||
title={
|
|
||||||
displayName ?? `${currentFeed?.data.creator.displayName}'s feed`
|
|
||||||
}
|
|
||||||
showOnDesktop
|
|
||||||
/>
|
|
||||||
|
|
||||||
<Feed
|
|
||||||
scrollElRef={scrollElRef}
|
|
||||||
testID={'test-feed'}
|
|
||||||
key="default"
|
|
||||||
feed={algoFeed}
|
|
||||||
headerOffset={12}
|
|
||||||
ListHeaderComponent={_ListHeaderComponent}
|
|
||||||
/>
|
|
||||||
</View>
|
|
||||||
)
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
|
|
||||||
const styles = StyleSheet.create({
|
const styles = StyleSheet.create({
|
||||||
container: {
|
container: {
|
||||||
|
|
Loading…
Reference in New Issue