Only give the loading spinner on the home feed during PTR (#207)

(cherry picked from commit b7a5da12fdfacef74873b5cf6d75f20d259bde0e)
This commit is contained in:
Paul Frazee
2023-02-15 13:14:17 -06:00
committed by GitHub
parent b05a3146b7
commit 751c5e91a3
+18 -13
View File
@@ -1,4 +1,4 @@
import React, {MutableRefObject, useEffect} from 'react' import React, {MutableRefObject} from 'react'
import {observer} from 'mobx-react-lite' import {observer} from 'mobx-react-lite'
import { import {
ActivityIndicator, ActivityIndicator,
@@ -38,8 +38,9 @@ export const Feed = observer(function Feed({
headerOffset?: number headerOffset?: number
}) { }) {
const {screen, track} = useAnalytics() const {screen, track} = useAnalytics()
const [isRefreshing, setIsRefreshing] = React.useState(false)
useEffect(() => { React.useEffect(() => {
screen('Feed') screen('Feed')
}, [screen]) }, [screen])
@@ -63,19 +64,23 @@ export const Feed = observer(function Feed({
} }
return <FeedItem item={item} /> return <FeedItem item={item} />
} }
const onRefresh = () => { const onRefresh = async () => {
track('Feed:onRefresh') track('Feed:onRefresh')
feed setIsRefreshing(true)
.refresh() try {
.catch(err => await feed.refresh()
feed.rootStore.log.error('Failed to refresh posts feed', err), } catch (err) {
) feed.rootStore.log.error('Failed to refresh posts feed', err)
} }
const onEndReached = () => { setIsRefreshing(false)
}
const onEndReached = async () => {
track('Feed:onEndReached') track('Feed:onEndReached')
feed try {
.loadMore() await feed.loadMore()
.catch(err => feed.rootStore.log.error('Failed to load more posts', err)) } catch (err) {
feed.rootStore.log.error('Failed to load more posts', err)
}
} }
let data: any[] = [] let data: any[] = []
if (feed.hasError) { if (feed.hasError) {
@@ -110,7 +115,7 @@ export const Feed = observer(function Feed({
keyExtractor={item => item._reactKey} keyExtractor={item => item._reactKey}
renderItem={renderItem} renderItem={renderItem}
ListFooterComponent={FeedFooter} ListFooterComponent={FeedFooter}
refreshing={feed.isRefreshing} refreshing={isRefreshing}
contentContainerStyle={s.contentContainer} contentContainerStyle={s.contentContainer}
onScroll={onScroll} onScroll={onScroll}
onRefresh={onRefresh} onRefresh={onRefresh}