diff --git a/src/screens/Search/SearchResults.tsx b/src/screens/Search/SearchResults.tsx index 3c6bd8d55..ec3248b2b 100644 --- a/src/screens/Search/SearchResults.tsx +++ b/src/screens/Search/SearchResults.tsx @@ -20,6 +20,7 @@ import {Post} from '#/view/com/post/Post' import {ProfileCardWithFollowBtn} from '#/view/com/profile/ProfileCard' import {List} from '#/view/com/util/List' import {atoms as a, useTheme, web} from '#/alf' +import {Button, ButtonText} from '#/components/Button' import * as FeedCard from '#/components/FeedCard' import * as Layout from '#/components/Layout' import {InlineLinkText} from '#/components/Link' @@ -125,10 +126,19 @@ function EmptyState({ messageText, error, children, + button, + buttonAlign = 'center', }: { messageText: React.ReactNode error?: string children?: React.ReactNode + button?: { + label: string + text: string + onPress: () => void + disabled?: boolean + } + buttonAlign?: 'left' | 'center' }) { const t = useTheme() @@ -159,12 +169,71 @@ function EmptyState({ )} {children} + + {button && ( + + + + )} ) } +function SearchResultsFooter({ + hasNextPage, + isFetchingNextPage, + onLoadMore, +}: { + hasNextPage?: boolean + isFetchingNextPage?: boolean + onLoadMore: () => void +}) { + const t = useTheme() + const {t: l} = useLingui() + + if (isFetchingNextPage) { + return + } + + return ( + + + + + + ) +} + function NoResultsText({ query, }: { @@ -376,14 +445,24 @@ let SearchScreenPostResults = ({ }} desktopFixedHeight ListFooterComponent={ - } /> ) : ( - } /> + } + buttonAlign="left" + button={{ + label: l`Load more`, + text: l`Load more`, + onPress: onEndReached, + disabled: isFetchingNextPage, + }} + /> )} ) : ( @@ -495,14 +574,24 @@ let SearchScreenUserResults = ({ onEndReached={onEndReached} desktopFixedHeight ListFooterComponent={ - } /> ) : ( - } /> + } + buttonAlign="left" + button={{ + label: l`Load more`, + text: l`Load more`, + onPress: onEndReached, + disabled: isFetchingNextPage || !hasSession, + }} + /> )} ) : ( diff --git a/src/screens/Settings/RunesSettings/AlsoLikedSettings.tsx b/src/screens/Settings/RunesSettings/AlsoLikedSettings.tsx index 1c15e8f4a..b0c8aad03 100644 --- a/src/screens/Settings/RunesSettings/AlsoLikedSettings.tsx +++ b/src/screens/Settings/RunesSettings/AlsoLikedSettings.tsx @@ -62,7 +62,8 @@ export function RunesDisplayAlsoLikedSettingsScreen() { For You {' '} feed. Posts must have likes, reposts, or have been created in the - last 90 days to appear. Learn more at{' '} + last 90 days to appear. The poster is counted as a liker. Learn more + at{' '}