import { toRelaySettings } from '@/lib/link' import { simplifyUrl } from '@/lib/url' import { SecondaryPageLink } from '@/PageManager' import { useBookmarks } from '@/providers/BookmarksProvider' import { useFavoriteRelays } from '@/providers/FavoriteRelaysProvider' import { useFeed } from '@/providers/FeedProvider' import { useNostr } from '@/providers/NostrProvider' import { useTranslation } from 'react-i18next' import RelayIcon from '../RelayIcon' import RelaySetCard from '../RelaySetCard' import SaveRelayDropdownMenu from '../SaveRelayDropdownMenu' import { BookmarkIcon, UsersRound } from 'lucide-react' export default function FeedSwitcher({ close }: { close?: () => void }) { const { t } = useTranslation() const { pubkey } = useNostr() const { bookmarks } = useBookmarks() const { relaySets, favoriteRelays } = useFavoriteRelays() const { feedInfo, switchFeed, temporaryRelayUrls } = useFeed() return (
{pubkey && ( { if (!pubkey) return switchFeed('following', { pubkey }) close?.() }} >
{t('Following')}
)} {pubkey && bookmarks.length > 0 && ( { if (!pubkey) return switchFeed('bookmarks', { pubkey }) close?.() }} >
{t('Bookmarks')}
)} {temporaryRelayUrls.length > 0 && ( { switchFeed('temporary') close?.() }} controls={} > {temporaryRelayUrls.length === 1 ? simplifyUrl(temporaryRelayUrls[0]) : t('Temporary')} )}
close?.()} > {t('edit')}
{relaySets .filter((set) => set.relayUrls.length > 0) .map((set) => ( { if (!select) return switchFeed('relays', { activeRelaySetId: set.id }) close?.() }} /> ))} {favoriteRelays.map((relay) => ( { switchFeed('relay', { relay }) close?.() }} >
{simplifyUrl(relay)}
))}
) } function FeedSwitcherItem({ children, isActive, temporary = false, onClick, controls }: { children: React.ReactNode isActive: boolean temporary?: boolean onClick: () => void controls?: React.ReactNode }) { return (
{children}
{controls}
) }