feat: show login button when viewing following feed without login

This commit is contained in:
codytseng
2025-01-26 15:01:12 +08:00
parent acc47bad3d
commit 82537f192b
3 changed files with 21 additions and 7 deletions

View File

@@ -160,6 +160,7 @@ export default {
'Select relays to append': 'Select relays to append',
'calculating...': 'calculating...',
'Calculate optimal read relays': 'Calculate optimal read relays',
'Login to set': 'Login to set'
'Login to set': 'Login to set',
'Please login to view following feed': 'Please login to view following feed'
}
}

View File

@@ -161,6 +161,7 @@ export default {
'Select relays to append': '选择要追加的服务器',
'calculating...': '计算中...',
'Calculate optimal read relays': '计算最佳读服务器',
'Login to set': '登录后设置'
'Login to set': '登录后设置',
'Please login to view following feed': '请登录以查看关注动态'
}
}

View File

@@ -1,7 +1,9 @@
import NoteList from '@/components/NoteList'
import SaveRelayDropdownMenu from '@/components/SaveRelayDropdownMenu'
import { Button } from '@/components/ui/button'
import PrimaryPageLayout from '@/layouts/PrimaryPageLayout'
import { useFeed } from '@/providers/FeedProvider'
import { useNostr } from '@/providers/NostrProvider'
import { useEffect, useRef } from 'react'
import { useTranslation } from 'react-i18next'
import FeedButton from './FeedButton'
@@ -10,6 +12,7 @@ import SearchButton from './SearchButton'
export default function NoteListPage() {
const { t } = useTranslation()
const layoutRef = useRef<{ scrollToTop: () => void }>(null)
const { pubkey, checkLogin } = useNostr()
const { feedType, relayUrls, isReady, filter } = useFeed()
useEffect(() => {
@@ -18,6 +21,19 @@ export default function NoteListPage() {
}
}, [JSON.stringify(relayUrls), feedType])
let content = <div className="text-center text-sm text-muted-foreground">{t('loading...')}</div>
if (feedType === 'following' && !pubkey) {
content = (
<div className="flex justify-center w-full">
<Button size="lg" onClick={() => checkLogin()}>
{t('Please login to view following feed')}
</Button>
</div>
)
} else if (isReady) {
content = <NoteList relayUrls={relayUrls} filter={filter} />
}
return (
<PrimaryPageLayout
pageName="home"
@@ -27,11 +43,7 @@ export default function NoteListPage() {
}
displayScrollToTopButton
>
{isReady ? (
<NoteList relayUrls={relayUrls} filter={filter} />
) : (
<div className="text-center text-sm text-muted-foreground">{t('loading...')}</div>
)}
{content}
</PrimaryPageLayout>
)
}