diff options
author | Hailey <me@haileyok.com> | 2024-06-24 13:37:08 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-24 21:37:08 +0100 |
commit | e0ac7d5bdcb096d6c23658c34da04bfa19579e4f (patch) | |
tree | 5169dc94ffbefcd52304ff45046558d7b932a429 /src | |
parent | f64245c1fb0b590edf1959ea0f30ec3bee507ad1 (diff) | |
download | voidsky-e0ac7d5bdcb096d6c23658c34da04bfa19579e4f.tar.zst |
handle each possible loading state (#4617)
Diffstat (limited to 'src')
-rw-r--r-- | src/screens/StarterPack/Wizard/StepFeeds.tsx | 16 | ||||
-rw-r--r-- | src/screens/StarterPack/Wizard/StepProfiles.tsx | 12 |
2 files changed, 21 insertions, 7 deletions
diff --git a/src/screens/StarterPack/Wizard/StepFeeds.tsx b/src/screens/StarterPack/Wizard/StepFeeds.tsx index 46c4d4404..5170edc6e 100644 --- a/src/screens/StarterPack/Wizard/StepFeeds.tsx +++ b/src/screens/StarterPack/Wizard/StepFeeds.tsx @@ -32,12 +32,17 @@ export function StepFeeds({moderationOpts}: {moderationOpts: ModerationOpts}) { const throttledQuery = useThrottledValue(query, 500) const {screenReaderEnabled} = useA11y() - const {data: savedFeedsAndLists} = useSavedFeeds() + const {data: savedFeedsAndLists, isLoading: isLoadingSavedFeeds} = + useSavedFeeds() const savedFeeds = savedFeedsAndLists?.feeds .filter(f => f.type === 'feed' && f.view.uri !== DISCOVER_FEED_URI) .map(f => f.view) as AppBskyFeedDefs.GeneratorView[] - const {data: popularFeedsPages, fetchNextPage} = useGetPopularFeedsQuery({ + const { + data: popularFeedsPages, + fetchNextPage, + isLoading: isLoadingPopularFeeds, + } = useGetPopularFeedsQuery({ limit: 30, }) const popularFeeds = popularFeedsPages?.pages.flatMap(p => p.feeds) ?? [] @@ -45,9 +50,12 @@ export function StepFeeds({moderationOpts}: {moderationOpts: ModerationOpts}) { popularFeeds.filter(f => !savedFeeds.some(sf => sf.uri === f.uri)), ) - const {data: searchedFeeds, isLoading: isLoadingSearch} = + const {data: searchedFeeds, isFetching: isFetchingSearchedFeeds} = useSearchPopularFeedsQuery({q: throttledQuery}) + const isLoading = + isLoadingSavedFeeds || isLoadingPopularFeeds || isFetchingSearchedFeeds + const renderItem = ({ item, }: ListRenderItemInfo<AppBskyFeedDefs.GeneratorView>) => { @@ -90,7 +98,7 @@ export function StepFeeds({moderationOpts}: {moderationOpts: ModerationOpts}) { style={{flex: 1}} ListEmptyComponent={ <View style={[a.flex_1, a.align_center, a.mt_lg, a.px_lg]}> - {isLoadingSearch ? ( + {isLoading ? ( <Loader size="lg" /> ) : ( <Text diff --git a/src/screens/StarterPack/Wizard/StepProfiles.tsx b/src/screens/StarterPack/Wizard/StepProfiles.tsx index f21b01d40..33caa12f2 100644 --- a/src/screens/StarterPack/Wizard/StepProfiles.tsx +++ b/src/screens/StarterPack/Wizard/StepProfiles.tsx @@ -31,14 +31,20 @@ export function StepProfiles({ const [query, setQuery] = useState('') const {screenReaderEnabled} = useA11y() - const {data: topPages, fetchNextPage} = useActorSearchPaginated({ + const { + data: topPages, + fetchNextPage, + isLoading: isLoadingTopPages, + } = useActorSearchPaginated({ query: encodeURIComponent('*'), }) const topFollowers = topPages?.pages.flatMap(p => p.actors) - const {data: results, isLoading: isLoadingResults} = + const {data: results, isFetching: isFetchingResults} = useActorAutocompleteQuery(query, true, 12) + const isLoading = isLoadingTopPages || isFetchingResults + const renderItem = ({ item, }: ListRenderItemInfo<AppBskyActorDefs.ProfileViewBasic>) => { @@ -80,7 +86,7 @@ export function StepProfiles({ onEndReachedThreshold={isNative ? 2 : 0.25} ListEmptyComponent={ <View style={[a.flex_1, a.align_center, a.mt_lg, a.px_lg]}> - {isLoadingResults ? ( + {isLoading ? ( <Loader size="lg" /> ) : ( <Text |