Browse Source

fix: 🐛

imwald
codytseng 1 year ago
parent
commit
35a22bd2ba
  1. 47
      src/pages/secondary/SettingsPage/index.tsx

47
src/pages/secondary/SettingsPage/index.tsx

@ -8,7 +8,7 @@ import { useTheme } from '@/providers/ThemeProvider'
import { TLanguage } from '@/types' import { TLanguage } from '@/types'
import { SelectValue } from '@radix-ui/react-select' import { SelectValue } from '@radix-ui/react-select'
import { ChevronRight, Info, Languages, Server, SunMoon } from 'lucide-react' import { ChevronRight, Info, Languages, Server, SunMoon } from 'lucide-react'
import { HTMLProps, useState } from 'react' import { forwardRef, HTMLProps, useState } from 'react'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
export default function SettingsPage({ index }: { index?: number }) { export default function SettingsPage({ index }: { index?: number }) {
@ -24,7 +24,7 @@ export default function SettingsPage({ index }: { index?: number }) {
return ( return (
<SecondaryPageLayout index={index} titlebarContent={t('Settings')}> <SecondaryPageLayout index={index} titlebarContent={t('Settings')}>
<Item> <SettingItem>
<div className="flex items-center gap-4"> <div className="flex items-center gap-4">
<Languages /> <Languages />
<div>{t('Languages')}</div> <div>{t('Languages')}</div>
@ -38,8 +38,8 @@ export default function SettingsPage({ index }: { index?: number }) {
<SelectItem value="zh"></SelectItem> <SelectItem value="zh"></SelectItem>
</SelectContent> </SelectContent>
</Select> </Select>
</Item> </SettingItem>
<Item> <SettingItem>
<div className="flex items-center gap-4"> <div className="flex items-center gap-4">
<SunMoon /> <SunMoon />
<div>{t('Theme')}</div> <div>{t('Theme')}</div>
@ -54,16 +54,16 @@ export default function SettingsPage({ index }: { index?: number }) {
<SelectItem value="dark">{t('Dark')}</SelectItem> <SelectItem value="dark">{t('Dark')}</SelectItem>
</SelectContent> </SelectContent>
</Select> </Select>
</Item> </SettingItem>
<Item onClick={() => push(toRelaySettings())}> <SettingItem onClick={() => push(toRelaySettings())}>
<div className="flex items-center gap-4"> <div className="flex items-center gap-4">
<Server /> <Server />
<div>{t('Relays')}</div> <div>{t('Relays')}</div>
</div> </div>
<ChevronRight /> <ChevronRight />
</Item> </SettingItem>
<AboutInfoDialog> <AboutInfoDialog>
<Item> <SettingItem>
<div className="flex items-center gap-4"> <div className="flex items-center gap-4">
<Info /> <Info />
<div>{t('About')}</div> <div>{t('About')}</div>
@ -74,22 +74,25 @@ export default function SettingsPage({ index }: { index?: number }) {
</div> </div>
<ChevronRight /> <ChevronRight />
</div> </div>
</Item> </SettingItem>
</AboutInfoDialog> </AboutInfoDialog>
</SecondaryPageLayout> </SecondaryPageLayout>
) )
} }
function Item({ children, className, ...props }: HTMLProps<HTMLDivElement>) { const SettingItem = forwardRef<HTMLDivElement, HTMLProps<HTMLDivElement>>(
return ( ({ children, className, ...props }) => {
<div return (
className={cn( <div
'flex clickable justify-between items-center px-4 py-2 h-[52px] rounded-lg [&_svg]:size-4 [&_svg]:shrink-0', className={cn(
className 'flex clickable justify-between items-center px-4 py-2 h-[52px] rounded-lg [&_svg]:size-4 [&_svg]:shrink-0',
)} className
{...props} )}
> {...props}
{children} >
</div> {children}
) </div>
} )
}
)
SettingItem.displayName = 'SettingItem'

Loading…
Cancel
Save