diff options
author | Paul Frazee <pfrazee@gmail.com> | 2022-12-12 11:22:54 -0600 |
---|---|---|
committer | Paul Frazee <pfrazee@gmail.com> | 2022-12-12 11:22:54 -0600 |
commit | 8501cf1c7d1e86dda332f7538f17428966379d82 (patch) | |
tree | 4c2ec27b094bd7874b73c94bc5a336a26b32c88a /src/view/screens/Profile.tsx | |
parent | 2b27be31e60e3074ffd047099ea5b246753ac782 (diff) | |
download | voidsky-8501cf1c7d1e86dda332f7538f17428966379d82.tar.zst |
Add 'loading more' spinner to feeds
Diffstat (limited to 'src/view/screens/Profile.tsx')
-rw-r--r-- | src/view/screens/Profile.tsx | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/view/screens/Profile.tsx b/src/view/screens/Profile.tsx index 2425579aa..14a9af4c7 100644 --- a/src/view/screens/Profile.tsx +++ b/src/view/screens/Profile.tsx @@ -1,5 +1,5 @@ import React, {useEffect, useState, useMemo} from 'react' -import {StyleSheet, Text, View} from 'react-native' +import {ActivityIndicator, StyleSheet, Text, View} from 'react-native' import {observer} from 'mobx-react-lite' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {ViewSelector} from '../com/util/ViewSelector' @@ -97,6 +97,7 @@ export const Profile = observer(({navIdx, visible, params}: ScreenParams) => { return <ProfileHeader view={uiState.profile} onRefreshAll={onRefresh} /> } let renderItem + let Footer let items: any[] = [] if (uiState) { if (uiState.isInitialLoading) { @@ -132,6 +133,8 @@ export const Profile = observer(({navIdx, visible, params}: ScreenParams) => { } if (!uiState.feed.hasMore) { items = items.concat([END_ITEM]) + } else { + Footer = LoadingMoreFooter } renderItem = (item: any) => { if (item === END_ITEM) { @@ -246,6 +249,7 @@ export const Profile = observer(({navIdx, visible, params}: ScreenParams) => { items={items} renderHeader={renderHeader} renderItem={renderItem} + ListFooterComponent={Footer} refreshing={uiState.isRefreshing || false} onSelectView={onSelectView} onRefresh={onRefresh} @@ -258,6 +262,14 @@ export const Profile = observer(({navIdx, visible, params}: ScreenParams) => { ) }) +function LoadingMoreFooter() { + return ( + <View style={{paddingVertical: 20}}> + <ActivityIndicator /> + </View> + ) +} + const styles = StyleSheet.create({ container: { flexDirection: 'column', |