import React from 'react' import {View} from 'react-native' import {TID} from '@atproto/common-web' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED} from '#/lib/constants' import {useOverwriteSavedFeedsMutation} from '#/state/queries/preferences' import {type UsePreferencesQueryResponse} from '#/state/queries/preferences' import {CenteredView} from '#/view/com/util/Views' import {atoms as a} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {useHeaderOffset} from '#/components/hooks/useHeaderOffset' import {ListSparkle_Stroke2_Corner0_Rounded as ListSparkle} from '#/components/icons/ListSparkle' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' import {Link} from '#/components/Link' import {Text} from '#/components/Typography' export function NoFeedsPinned({ preferences, }: { preferences: UsePreferencesQueryResponse }) { const {_} = useLingui() const headerOffset = useHeaderOffset() const {isPending, mutateAsync: overwriteSavedFeeds} = useOverwriteSavedFeedsMutation() const addRecommendedFeeds = React.useCallback(async () => { let skippedTimeline = false let skippedDiscover = false let remainingSavedFeeds = [] // remove first instance of both timeline and discover, since we're going to overwrite them for (const savedFeed of preferences.savedFeeds) { if (savedFeed.type === 'timeline' && !skippedTimeline) { skippedTimeline = true } else if ( savedFeed.value === DISCOVER_SAVED_FEED.value && !skippedDiscover ) { skippedDiscover = true } else { remainingSavedFeeds.push(savedFeed) } } const toSave = [ { ...DISCOVER_SAVED_FEED, pinned: true, id: TID.nextStr(), }, { ...TIMELINE_SAVED_FEED, pinned: true, id: TID.nextStr(), }, ...remainingSavedFeeds, ] await overwriteSavedFeeds(toSave) }, [overwriteSavedFeeds, preferences.savedFeeds]) return ( Whoops! Looks like you unpinned all your feeds. But don't worry, you can add some below 😄 {_(msg`Browse other feeds`)} ) }