+ {t('No bookmarks found. Add some by clicking the bookmark icon on notes.')}
+
+ )
+ }
+
+ return (
+
+ {visibleBookmarks.map((item) => (
+
+ ))}
+
+ {visibleBookmarks.length < bookmarkItems.length && (
+
+
+
+ )}
+
+ )
+}
+
+function BookmarkedNote({ eventId, neventId }: { eventId: string; neventId?: string }) {
+ const { event, isFetching } = useFetchEvent(neventId || eventId)
+
+ if (isFetching) {
+ return e.stopPropagation()}>
diff --git a/src/lib/draft-event.ts b/src/lib/draft-event.ts
index 4796fa1a..6ffb084d 100644
--- a/src/lib/draft-event.ts
+++ b/src/lib/draft-event.ts
@@ -283,6 +283,15 @@ export function createSeenNotificationsAtDraftEvent(): TDraftEvent {
}
}
+export function createBookmarkDraftEvent(tags: string[][]): TDraftEvent {
+ return {
+ kind: kinds.BookmarkList,
+ content: '',
+ tags,
+ created_at: dayjs().unix()
+ }
+}
+
function generateImetaTags(imageUrls: string[], pictureInfos: { url: string; tags: string[][] }[]) {
return imageUrls.map((imageUrl) => {
const pictureInfo = pictureInfos.find((info) => info.url === imageUrl)
diff --git a/src/pages/primary/NoteListPage/FeedButton.tsx b/src/pages/primary/NoteListPage/FeedButton.tsx
index d24a9202..033f4e73 100644
--- a/src/pages/primary/NoteListPage/FeedButton.tsx
+++ b/src/pages/primary/NoteListPage/FeedButton.tsx
@@ -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
- {feedInfo.feedType === 'following' ? : }
+ {feedInfo.feedType === 'following' ? (
+
+ ) : feedInfo.feedType === 'bookmarks' ? (
+
+ ) : (
+
+ )}
{title}
diff --git a/src/pages/primary/NoteListPage/index.tsx b/src/pages/primary/NoteListPage/index.tsx
index 79eee4d6..88e2b313 100644
--- a/src/pages/primary/NoteListPage/index.tsx
+++ b/src/pages/primary/NoteListPage/index.tsx
@@ -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) => {
)
+ } else if (feedInfo.feedType === 'bookmarks') {
+ if (!pubkey) {
+ content = (
+