diff --git a/apps/webui/package.json b/apps/webui/package.json index d2486ad..278a552 100644 --- a/apps/webui/package.json +++ b/apps/webui/package.json @@ -15,6 +15,7 @@ "@nexumi/shared": "workspace:^", "@prisma/client": "^5.22.0", "@radix-ui/react-avatar": "^1.2.3", + "@radix-ui/react-dialog": "^1.1.20", "@radix-ui/react-dropdown-menu": "^2.1.21", "@radix-ui/react-label": "^2.1.12", "@radix-ui/react-select": "^2.3.4", @@ -24,6 +25,7 @@ "bullmq": "^5.34.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "cmdk": "^1.1.1", "dotenv": "^16.4.7", "ioredis": "^5.4.2", "lucide-react": "^1.25.0", diff --git a/apps/webui/src/app/dashboard/[guildId]/commands/page.tsx b/apps/webui/src/app/dashboard/[guildId]/commands/page.tsx index 4362d01..e6bcfaa 100644 --- a/apps/webui/src/app/dashboard/[guildId]/commands/page.tsx +++ b/apps/webui/src/app/dashboard/[guildId]/commands/page.tsx @@ -1,3 +1,4 @@ +import { Suspense } from 'react'; import { CommandsManager } from '@/components/modules/commands-manager'; import { getLocale, t } from '@/lib/i18n'; import { listCommandOverridesDashboard } from '@/lib/module-configs/commands'; @@ -16,7 +17,9 @@ export default async function CommandsPage({ params }: CommandsPageProps) {
{t(locale, 'modulePages.commands.description')}
-+ {t(locale, 'dashboard.overview.activityHint')} +
+{t(locale, 'dashboard.overview.activityMessages')}
-{activitySummary.messageCount.toLocaleString(locale === 'de' ? 'de-DE' : 'en-US')}
++ {t(locale, 'dashboard.overview.activityMessages')} +
++ {activitySummary.messageCount.toLocaleString(numberLocale)} +
+{t(locale, 'dashboard.overview.activityVoiceMinutes')}
-{activitySummary.voiceMinutes.toLocaleString(locale === 'de' ? 'de-DE' : 'en-US')}
++ {t(locale, 'dashboard.overview.activityVoiceMinutes')} +
++ {activitySummary.voiceMinutes.toLocaleString(numberLocale)} +
+{t(locale, 'dashboard.overview.activityActiveUsers')}
-{activitySummary.activeUserCount.toLocaleString(locale === 'de' ? 'de-DE' : 'en-US')}
++ {t(locale, 'dashboard.overview.activityActiveUsers')} +
++ {activitySummary.activeUserCount.toLocaleString(numberLocale)} +
+{t(locale, 'dashboard.overview.activityHint')}
+ {enabledCount}/{modules.length} {t(locale, 'common.enabled').toLowerCase()} +
+ ) : null} +{t(locale, 'dashboard.overview.moduleStatusEmpty')}
+{t(locale, 'dashboard.overview.auditEmpty')}
++ {t(locale, 'dashboard.overview.auditEmpty')} +
) : ({entry.action}
- {entry.path &&{entry.path}
} + {entry.path ?{entry.path}
: null}{t('modulePages.feeds.addFeed')}
{t('modulePages.leveling.multiplierHint')}
{t('modulePages.leveling.multiplierHint')}
{t('modulePages.logging.idsHint')}
{t('modulePages.logging.idsHint')}
{t('modulePages.logging.retentionHint')}
{t('modulePages.moderation.enabledHint')}
+{t('modulePages.moderation.enabledHint')}
+{t('modulePages.moderation.noEscalations')}
- )} - {value.escalations.map((rule) => ( -{t('modulePages.moderation.noEscalations')}
+ )} + {value.escalations.map((rule) => ( +{t('modulePages.tempvoice.defaultLimitHint')}
{t('modulePages.welcome.placeholdersHint')}
+
{t('owner.nav.title')}
- {LINKS.map((link) => { + {OWNER_LINKS.map((link) => { const active = link.href === '/owner' ? pathname === '/owner' : pathname.startsWith(link.href); const Icon = link.icon; return ( -{t('access.roleIdHint')}
+{t('access.roleIdHint')}
-{t('access.noRules')}
} + {value.length === 0 && ( + <> +{t('access.noRules')}
+{t('settings.general.localeHint')}
-{t('settings.general.timezoneHint')}
-{t('settings.general.moderationHint')}
+{t('settings.general.localeHint')}
{t('settings.general.snipeHint')}
+{t('settings.general.timezoneHint')}
{t('settings.general.moderationHint')}
+{t('settings.general.snipeHint')}
+= h(t($messages, 'landing.subtitle')) ?>
+= h(t($messages, 'landing.headline')) ?>
+= h(t($messages, 'landing.subtitle')) ?>
= h(t($messages, 'landing.stats_guilds')) ?>
= h($formatNumber($guildCount)) ?>
= h(t($messages, 'landing.stats_users')) ?>
= h($formatNumber($userCount)) ?>
= h($module['label']) ?>
= h($module['description']) ?>