diff --git a/src/components/OthersRelayList/index.tsx b/src/components/OthersRelayList/index.tsx
index b64a778..e706e20 100644
--- a/src/components/OthersRelayList/index.tsx
+++ b/src/components/OthersRelayList/index.tsx
@@ -1,12 +1,10 @@
import { useSecondaryPage } from '@/PageManager'
import { Badge } from '@/components/ui/badge'
-import { Button } from '@/components/ui/button'
import { useFetchRelayInfo, useFetchRelayList } from '@/hooks'
import { toRelay } from '@/lib/link'
import { userIdToPubkey } from '@/lib/pubkey'
import { simplifyUrl } from '@/lib/url'
import { TMailboxRelay } from '@/types'
-import { ListPlus } from 'lucide-react'
import { useMemo } from 'react'
import { useTranslation } from 'react-i18next'
import RelayIcon from '../RelayIcon'
@@ -57,11 +55,7 @@ function RelayItem({ relay }: { relay: TMailboxRelay }) {
e.stopPropagation()}>
-
-
-
+
)
diff --git a/src/components/RelaySetsSetting/TemporaryRelaySet.tsx b/src/components/RelaySetsSetting/TemporaryRelaySet.tsx
index 7796dae..1906307 100644
--- a/src/components/RelaySetsSetting/TemporaryRelaySet.tsx
+++ b/src/components/RelaySetsSetting/TemporaryRelaySet.tsx
@@ -1,8 +1,7 @@
-import { Button } from '@/components/ui/button'
import { useFetchRelayInfos } from '@/hooks'
import { useFeed } from '@/providers/FeedProvider'
import client from '@/services/client.service'
-import { ListPlus, SearchCheck } from 'lucide-react'
+import { SearchCheck } from 'lucide-react'
import { useEffect, useState } from 'react'
import { useTranslation } from 'react-i18next'
import SaveRelayDropdownMenu from '../SaveRelayDropdownMenu'
@@ -64,11 +63,7 @@ export default function TemporaryRelaySet() {
))}
-
-
-
+
)
}
diff --git a/src/components/SaveRelayDropdownMenu/index.tsx b/src/components/SaveRelayDropdownMenu/index.tsx
index 6b3d765..279fa0c 100644
--- a/src/components/SaveRelayDropdownMenu/index.tsx
+++ b/src/components/SaveRelayDropdownMenu/index.tsx
@@ -1,3 +1,4 @@
+import { Button } from '@/components/ui/button'
import {
DropdownMenu,
DropdownMenuContent,
@@ -9,25 +10,32 @@ import {
import { normalizeUrl } from '@/lib/url'
import { useRelaySets } from '@/providers/RelaySetsProvider'
import { TRelaySet } from '@/types'
-import { Check, FolderPlus, Plus } from 'lucide-react'
-import { ReactNode, useMemo } from 'react'
+import { Check, FolderPlus, Plus, Star } from 'lucide-react'
+import { useMemo } from 'react'
import { useTranslation } from 'react-i18next'
export default function SaveRelayDropdownMenu({
- children,
urls,
- asChild = false
+ atTitlebar = false
}: {
- children: ReactNode
urls: string[]
- asChild?: boolean
+ atTitlebar?: boolean
}) {
const { t } = useTranslation()
const { relaySets } = useRelaySets()
const normalizedUrls = useMemo(() => urls.map((url) => normalizeUrl(url)), [urls])
+ const alreadySaved = useMemo(
+ () => relaySets.some((set) => normalizedUrls.every((url) => set.relayUrls.includes(url))),
+ [relaySets, normalizedUrls]
+ )
+
return (
- {children}
+
+
+
{t('Save to')} ...
diff --git a/src/pages/primary/NoteListPage/index.tsx b/src/pages/primary/NoteListPage/index.tsx
index f340da2..a92407f 100644
--- a/src/pages/primary/NoteListPage/index.tsx
+++ b/src/pages/primary/NoteListPage/index.tsx
@@ -1,13 +1,11 @@
import NoteList from '@/components/NoteList'
+import SaveRelayDropdownMenu from '@/components/SaveRelayDropdownMenu'
import PrimaryPageLayout from '@/layouts/PrimaryPageLayout'
import { useFeed } from '@/providers/FeedProvider'
import { useEffect, useRef } from 'react'
import { useTranslation } from 'react-i18next'
import FeedButton from './FeedButton'
import SearchButton from './SearchButton'
-import SaveRelayDropdownMenu from '@/components/SaveRelayDropdownMenu'
-import { Button } from '@/components/ui/button'
-import { ListPlus } from 'lucide-react'
export default function NoteListPage() {
const { t } = useTranslation()
@@ -45,11 +43,7 @@ function NoteListPageTitlebar({ temporaryRelayUrls = [] }: { temporaryRelayUrls?
{temporaryRelayUrls.length > 0 && (
-
-
-
+
)}
diff --git a/src/pages/secondary/RelayPage/index.tsx b/src/pages/secondary/RelayPage/index.tsx
index b7188f0..db63172 100644
--- a/src/pages/secondary/RelayPage/index.tsx
+++ b/src/pages/secondary/RelayPage/index.tsx
@@ -4,7 +4,7 @@ import SaveRelayDropdownMenu from '@/components/SaveRelayDropdownMenu'
import { Button } from '@/components/ui/button'
import SecondaryPageLayout from '@/layouts/SecondaryPageLayout'
import { normalizeUrl, simplifyUrl } from '@/lib/url'
-import { Check, Copy, ListPlus } from 'lucide-react'
+import { Check, Copy } from 'lucide-react'
import { useMemo, useState } from 'react'
import NotFoundPage from '../NotFoundPage'
@@ -42,11 +42,7 @@ function RelayPageControls({ url }: { url: string }) {
-
-
-
+
>
)
}