feat: bookmarks (#279)
This commit is contained in:
parent
085adeb096
commit
7876f26d0c
13 changed files with 390 additions and 15 deletions
|
|
@ -6,7 +6,7 @@ import { cn } from '@/lib/utils'
|
|||
import { useFavoriteRelays } from '@/providers/FavoriteRelaysProvider'
|
||||
import { useFeed } from '@/providers/FeedProvider'
|
||||
import { useScreenSize } from '@/providers/ScreenSizeProvider'
|
||||
import { ChevronDown, Server, UsersRound } from 'lucide-react'
|
||||
import { BookmarkIcon, ChevronDown, Server, UsersRound } from 'lucide-react'
|
||||
import { forwardRef, HTMLAttributes, useMemo, useState } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
|
|
@ -55,6 +55,9 @@ const FeedSwitcherTrigger = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivEle
|
|||
if (feedInfo.feedType === 'following') {
|
||||
return t('Following')
|
||||
}
|
||||
if (feedInfo.feedType === 'bookmarks') {
|
||||
return t('Bookmarks')
|
||||
}
|
||||
if (relayUrls.length === 0) {
|
||||
return t('Choose a relay')
|
||||
}
|
||||
|
|
@ -77,7 +80,13 @@ const FeedSwitcherTrigger = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivEle
|
|||
ref={ref}
|
||||
{...props}
|
||||
>
|
||||
{feedInfo.feedType === 'following' ? <UsersRound /> : <Server />}
|
||||
{feedInfo.feedType === 'following' ? (
|
||||
<UsersRound />
|
||||
) : feedInfo.feedType === 'bookmarks' ? (
|
||||
<BookmarkIcon />
|
||||
) : (
|
||||
<Server />
|
||||
)}
|
||||
<div className="text-lg font-semibold truncate">{title}</div>
|
||||
<ChevronDown />
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import BookmarksList from '@/components/BookmarksList'
|
||||
import NoteList from '@/components/NoteList'
|
||||
import PostEditor from '@/components/PostEditor'
|
||||
import SaveRelayDropdownMenu from '@/components/SaveRelayDropdownMenu'
|
||||
|
|
@ -35,6 +36,18 @@ const NoteListPage = forwardRef((_, ref) => {
|
|||
</Button>
|
||||
</div>
|
||||
)
|
||||
} else if (feedInfo.feedType === 'bookmarks') {
|
||||
if (!pubkey) {
|
||||
content = (
|
||||
<div className="flex justify-center w-full">
|
||||
<Button size="lg" onClick={() => checkLogin()}>
|
||||
{t('Please login to view bookmarks')}
|
||||
</Button>
|
||||
</div>
|
||||
)
|
||||
} else {
|
||||
content = <BookmarksList />
|
||||
}
|
||||
} else if (isReady) {
|
||||
content = (
|
||||
<NoteList
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue