feat: favorite relays (#250)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import MailboxSetting from '@/components/MailboxSetting'
|
||||
import RelaySetsSetting from '@/components/RelaySetsSetting'
|
||||
import FavoriteRelaysSetting from '@/components/FavoriteRelaysSetting'
|
||||
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'
|
||||
import SecondaryPageLayout from '@/layouts/SecondaryPageLayout'
|
||||
import { forwardRef, useEffect, useState } from 'react'
|
||||
@@ -7,28 +7,28 @@ import { useTranslation } from 'react-i18next'
|
||||
|
||||
const RelaySettingsPage = forwardRef(({ index }: { index?: number }, ref) => {
|
||||
const { t } = useTranslation()
|
||||
const [tabValue, setTabValue] = useState('relay-sets')
|
||||
const [tabValue, setTabValue] = useState('favorite-relays')
|
||||
|
||||
useEffect(() => {
|
||||
switch (window.location.hash) {
|
||||
case '#mailbox':
|
||||
setTabValue('mailbox')
|
||||
break
|
||||
case '#relay-sets':
|
||||
setTabValue('relay-sets')
|
||||
case '#favorite-relays':
|
||||
setTabValue('favorite-relays')
|
||||
break
|
||||
}
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<SecondaryPageLayout ref={ref} index={index} title={t('Relay settings')}>
|
||||
<Tabs value={tabValue} onValueChange={setTabValue} className="px-4 space-y-4">
|
||||
<Tabs value={tabValue} onValueChange={setTabValue} className="px-4 pb-4 space-y-4">
|
||||
<TabsList>
|
||||
<TabsTrigger value="relay-sets">{t('Relay Sets')}</TabsTrigger>
|
||||
<TabsTrigger value="favorite-relays">{t('Favorite Relays')}</TabsTrigger>
|
||||
<TabsTrigger value="mailbox">{t('Read & Write Relays')}</TabsTrigger>
|
||||
</TabsList>
|
||||
<TabsContent value="relay-sets">
|
||||
<RelaySetsSetting />
|
||||
<TabsContent value="favorite-relays">
|
||||
<FavoriteRelaysSetting />
|
||||
</TabsContent>
|
||||
<TabsContent value="mailbox">
|
||||
<MailboxSetting />
|
||||
|
||||
@@ -73,14 +73,14 @@ const SettingsPage = forwardRef(({ index }: { index?: number }, ref) => {
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</SettingItem>
|
||||
<SettingItem onClick={() => push(toRelaySettings())}>
|
||||
<SettingItem className="clickable" onClick={() => push(toRelaySettings())}>
|
||||
<div className="flex items-center gap-4">
|
||||
<Server />
|
||||
<div>{t('Relays')}</div>
|
||||
</div>
|
||||
<ChevronRight />
|
||||
</SettingItem>
|
||||
<SettingItem onClick={() => push(toWallet())}>
|
||||
<SettingItem className="clickable" onClick={() => push(toWallet())}>
|
||||
<div className="flex items-center gap-4">
|
||||
<Wallet />
|
||||
<div>{t('Wallet')}</div>
|
||||
@@ -89,6 +89,7 @@ const SettingsPage = forwardRef(({ index }: { index?: number }, ref) => {
|
||||
</SettingItem>
|
||||
{!!nsec && (
|
||||
<SettingItem
|
||||
className="clickable"
|
||||
onClick={() => {
|
||||
navigator.clipboard.writeText(nsec)
|
||||
setCopiedNsec(true)
|
||||
@@ -104,6 +105,7 @@ const SettingsPage = forwardRef(({ index }: { index?: number }, ref) => {
|
||||
)}
|
||||
{!!ncryptsec && (
|
||||
<SettingItem
|
||||
className="clickable"
|
||||
onClick={() => {
|
||||
navigator.clipboard.writeText(ncryptsec)
|
||||
setCopiedNcryptsec(true)
|
||||
@@ -118,7 +120,7 @@ const SettingsPage = forwardRef(({ index }: { index?: number }, ref) => {
|
||||
</SettingItem>
|
||||
)}
|
||||
<AboutInfoDialog>
|
||||
<SettingItem>
|
||||
<SettingItem className="clickable">
|
||||
<div className="flex items-center gap-4">
|
||||
<Info />
|
||||
<div>{t('About')}</div>
|
||||
@@ -145,7 +147,7 @@ const SettingItem = forwardRef<HTMLDivElement, HTMLProps<HTMLDivElement>>(
|
||||
return (
|
||||
<div
|
||||
className={cn(
|
||||
'flex clickable justify-between items-center px-4 py-2 h-[52px] rounded-lg [&_svg]:size-4 [&_svg]:shrink-0',
|
||||
'flex justify-between select-none items-center px-4 py-2 h-[52px] rounded-lg [&_svg]:size-4 [&_svg]:shrink-0',
|
||||
className
|
||||
)}
|
||||
{...props}
|
||||
|
||||
Reference in New Issue
Block a user