feat: favorite relays (#250)

This commit is contained in:
Cody Tseng 2025-04-05 15:31:34 +08:00 committed by GitHub
parent fab9ff88b5
commit c739d9d28c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
63 changed files with 1081 additions and 982 deletions

View file

@ -17,17 +17,17 @@ const NoteListPage = forwardRef((_, ref) => {
const { t } = useTranslation()
const layoutRef = useRef<TPageRef>(null)
const { pubkey, checkLogin } = useNostr()
const { feedType, relayUrls, isReady, filter } = useFeed()
const { feedInfo, relayUrls, isReady, filter } = useFeed()
useImperativeHandle(ref, () => layoutRef.current)
useEffect(() => {
if (layoutRef.current) {
layoutRef.current.scrollToTop()
}
}, [JSON.stringify(relayUrls), feedType])
}, [JSON.stringify(relayUrls), feedInfo])
let content = <div className="text-center text-sm text-muted-foreground">{t('loading...')}</div>
if (feedType === 'following' && !pubkey) {
if (feedInfo.feedType === 'following' && !pubkey) {
content = (
<div className="flex justify-center w-full">
<Button size="lg" onClick={() => checkLogin()}>
@ -40,7 +40,7 @@ const NoteListPage = forwardRef((_, ref) => {
<NoteList
relayUrls={relayUrls}
filter={filter}
needCheckAlgoRelay={feedType !== 'following'}
needCheckAlgoRelay={feedInfo.feedType !== 'following'}
/>
)
}
@ -50,7 +50,9 @@ const NoteListPage = forwardRef((_, ref) => {
pageName="home"
ref={layoutRef}
titlebar={
<NoteListPageTitlebar temporaryRelayUrls={feedType === 'temporary' ? relayUrls : []} />
<NoteListPageTitlebar
temporaryRelayUrls={feedInfo.feedType === 'temporary' ? relayUrls : []}
/>
}
displayScrollToTopButton
>
@ -67,7 +69,7 @@ function NoteListPageTitlebar({ temporaryRelayUrls = [] }: { temporaryRelayUrls?
return (
<div className="flex gap-1 items-center h-full justify-between">
<FeedButton className="flex-1 max-w-fit w-0" />
<div className="shrink-0">
<div className="shrink-0 flex gap-1 items-center">
{temporaryRelayUrls.length > 0 && (
<SaveRelayDropdownMenu urls={temporaryRelayUrls} atTitlebar />
)}