This commit is contained in:
Arsfy
2024-10-28 18:44:04 +08:00
parent 376e8d4621
commit 5c2e2d7d36
18 changed files with 1261 additions and 228 deletions

View File

@@ -25,8 +25,11 @@ import { useStore } from '@nanostores/react'
import { $systems } from '@/lib/stores'
import { isAdmin } from '@/lib/utils'
import { navigate } from './router'
import { useTranslation } from 'react-i18next'
export default function CommandPalette() {
const { t } = useTranslation()
const [open, setOpen] = useState(false)
const systems = useStore($systems)
@@ -44,7 +47,7 @@ export default function CommandPalette() {
return (
<CommandDialog open={open} onOpenChange={setOpen}>
<CommandInput placeholder="Search for systems or settings..." />
<CommandInput placeholder={t('command.search')} />
<CommandList>
<CommandEmpty>No results found.</CommandEmpty>
{systems.length > 0 && (
@@ -67,7 +70,7 @@ export default function CommandPalette() {
<CommandSeparator className="mb-1.5" />
</>
)}
<CommandGroup heading="Pages / Settings">
<CommandGroup heading={t('command.pages_settings')}>
<CommandItem
keywords={['home']}
onSelect={() => {
@@ -76,8 +79,8 @@ export default function CommandPalette() {
}}
>
<LayoutDashboard className="mr-2 h-4 w-4" />
<span>Dashboard</span>
<CommandShortcut>Page</CommandShortcut>
<span>{t('command.dashboard')}</span>
<CommandShortcut>{t('command.page')}</CommandShortcut>
</CommandItem>
<CommandItem
onSelect={() => {
@@ -86,8 +89,8 @@ export default function CommandPalette() {
}}
>
<SettingsIcon className="mr-2 h-4 w-4" />
<span>Settings</span>
<CommandShortcut>Settings</CommandShortcut>
<span>{t('settings.settings')}</span>
<CommandShortcut>{t('settings.settings')}</CommandShortcut>
</CommandItem>
<CommandItem
keywords={['alerts']}
@@ -97,8 +100,8 @@ export default function CommandPalette() {
}}
>
<MailIcon className="mr-2 h-4 w-4" />
<span>Notification settings</span>
<CommandShortcut>Settings</CommandShortcut>
<span>{t('settings.notifications.title')}</span>
<CommandShortcut>{t('settings.settings')}</CommandShortcut>
</CommandItem>
<CommandItem
keywords={['github']}
@@ -107,14 +110,14 @@ export default function CommandPalette() {
}}
>
<Github className="mr-2 h-4 w-4" />
<span>Documentation</span>
<span>{t('command.documentation')}</span>
<CommandShortcut>GitHub</CommandShortcut>
</CommandItem>
</CommandGroup>
{isAdmin() && (
<>
<CommandSeparator className="mb-1.5" />
<CommandGroup heading="Admin">
<CommandGroup heading={t("command.admin")}>
<CommandItem
keywords={['pocketbase']}
onSelect={() => {
@@ -123,8 +126,8 @@ export default function CommandPalette() {
}}
>
<UsersIcon className="mr-2 h-4 w-4" />
<span>Users</span>
<CommandShortcut>Admin</CommandShortcut>
<span>{t('user_dm.users')}</span>
<CommandShortcut>{t("command.admin")}</CommandShortcut>
</CommandItem>
<CommandItem
onSelect={() => {
@@ -133,8 +136,8 @@ export default function CommandPalette() {
}}
>
<LogsIcon className="mr-2 h-4 w-4" />
<span>Logs</span>
<CommandShortcut>Admin</CommandShortcut>
<span>{t('user_dm.logs')}</span>
<CommandShortcut>{t("command.admin")}</CommandShortcut>
</CommandItem>
<CommandItem
onSelect={() => {
@@ -143,8 +146,8 @@ export default function CommandPalette() {
}}
>
<DatabaseBackupIcon className="mr-2 h-4 w-4" />
<span>Backups</span>
<CommandShortcut>Admin</CommandShortcut>
<span>{t('user_dm.backups')}</span>
<CommandShortcut>{t("command.admin")}</CommandShortcut>
</CommandItem>
<CommandItem
keywords={['oauth', 'oicd']}
@@ -154,8 +157,8 @@ export default function CommandPalette() {
}}
>
<LockKeyholeIcon className="mr-2 h-4 w-4" />
<span>Auth Providers</span>
<CommandShortcut>Admin</CommandShortcut>
<span>{t('user_dm.auth_providers')}</span>
<CommandShortcut>{t("command.admin")}</CommandShortcut>
</CommandItem>
<CommandItem
keywords={['email']}
@@ -165,8 +168,8 @@ export default function CommandPalette() {
}}
>
<MailIcon className="mr-2 h-4 w-4" />
<span>SMTP settings</span>
<CommandShortcut>Admin</CommandShortcut>
<span>{t('command.SMTP_settings')}</span>
<CommandShortcut>{t("command.admin")}</CommandShortcut>
</CommandItem>
</CommandGroup>
</>