|
|
|
@ -16,7 +16,7 @@ export default function FeedSwitcher({ close }: { close?: () => void }) { |
|
|
|
const { feedInfo, switchFeed } = useFeed() |
|
|
|
const { feedInfo, switchFeed } = useFeed() |
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
return ( |
|
|
|
<div className="space-y-4"> |
|
|
|
<div className="space-y-2"> |
|
|
|
{pubkey && ( |
|
|
|
{pubkey && ( |
|
|
|
<FeedSwitcherItem |
|
|
|
<FeedSwitcherItem |
|
|
|
isActive={feedInfo.feedType === 'following'} |
|
|
|
isActive={feedInfo.feedType === 'following'} |
|
|
|
@ -53,46 +53,44 @@ export default function FeedSwitcher({ close }: { close?: () => void }) { |
|
|
|
</FeedSwitcherItem> |
|
|
|
</FeedSwitcherItem> |
|
|
|
)} |
|
|
|
)} |
|
|
|
|
|
|
|
|
|
|
|
<div className="space-y-2"> |
|
|
|
<div className="flex justify-end items-center text-sm"> |
|
|
|
<div className="flex justify-end items-center text-sm"> |
|
|
|
<SecondaryPageLink |
|
|
|
<SecondaryPageLink |
|
|
|
to={toRelaySettings()} |
|
|
|
to={toRelaySettings()} |
|
|
|
className="text-primary font-semibold" |
|
|
|
className="text-primary font-semibold" |
|
|
|
onClick={() => close?.()} |
|
|
|
onClick={() => close?.()} |
|
|
|
> |
|
|
|
> |
|
|
|
{t('edit')} |
|
|
|
{t('edit')} |
|
|
|
</SecondaryPageLink> |
|
|
|
</SecondaryPageLink> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{relaySets |
|
|
|
{relaySets |
|
|
|
.filter((set) => set.relayUrls.length > 0) |
|
|
|
.filter((set) => set.relayUrls.length > 0) |
|
|
|
.map((set) => ( |
|
|
|
.map((set) => ( |
|
|
|
<RelaySetCard |
|
|
|
<RelaySetCard |
|
|
|
key={set.id} |
|
|
|
key={set.id} |
|
|
|
relaySet={set} |
|
|
|
relaySet={set} |
|
|
|
select={feedInfo.feedType === 'relays' && set.id === feedInfo.id} |
|
|
|
select={feedInfo.feedType === 'relays' && set.id === feedInfo.id} |
|
|
|
onSelectChange={(select) => { |
|
|
|
onSelectChange={(select) => { |
|
|
|
if (!select) return |
|
|
|
if (!select) return |
|
|
|
switchFeed('relays', { activeRelaySetId: set.id }) |
|
|
|
switchFeed('relays', { activeRelaySetId: set.id }) |
|
|
|
|
|
|
|
close?.() |
|
|
|
|
|
|
|
}} |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
))} |
|
|
|
|
|
|
|
{favoriteRelays.map((relay) => ( |
|
|
|
|
|
|
|
<FeedSwitcherItem |
|
|
|
|
|
|
|
key={relay} |
|
|
|
|
|
|
|
isActive={feedInfo.feedType === 'relay' && feedInfo.id === relay} |
|
|
|
|
|
|
|
onClick={() => { |
|
|
|
|
|
|
|
switchFeed('relay', { relay }) |
|
|
|
|
|
|
|
close?.() |
|
|
|
close?.() |
|
|
|
}} |
|
|
|
}} |
|
|
|
> |
|
|
|
/> |
|
|
|
<div className="flex gap-2 items-center w-full"> |
|
|
|
|
|
|
|
<RelayIcon url={relay} /> |
|
|
|
|
|
|
|
<div className="flex-1 w-0 truncate">{simplifyUrl(relay)}</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</FeedSwitcherItem> |
|
|
|
|
|
|
|
))} |
|
|
|
))} |
|
|
|
</div> |
|
|
|
{favoriteRelays.map((relay) => ( |
|
|
|
|
|
|
|
<FeedSwitcherItem |
|
|
|
|
|
|
|
key={relay} |
|
|
|
|
|
|
|
isActive={feedInfo.feedType === 'relay' && feedInfo.id === relay} |
|
|
|
|
|
|
|
onClick={() => { |
|
|
|
|
|
|
|
switchFeed('relay', { relay }) |
|
|
|
|
|
|
|
close?.() |
|
|
|
|
|
|
|
}} |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<div className="flex gap-2 items-center w-full"> |
|
|
|
|
|
|
|
<RelayIcon url={relay} /> |
|
|
|
|
|
|
|
<div className="flex-1 w-0 truncate">{simplifyUrl(relay)}</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</FeedSwitcherItem> |
|
|
|
|
|
|
|
))} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
) |
|
|
|
) |
|
|
|
} |
|
|
|
} |
|
|
|
|