- Replaced standard input fields with DiscordChannelSelect and DiscordRoleSelect components in the BirthdaysForm, FeedsManager, GiveawaysManager, LevelingForm, LoggingForm, SchedulerManager, SelfRolesManager, StatsForm, SuggestionsConfigForm, TagsManager, TempVoiceForm, TicketConfigForm, and StarboardForm for improved user experience and consistency. - Updated state management to accommodate new component structures, enhancing data handling for channel and role selections across the application.
38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import { Suspense } from 'react';
|
|
import { CommandsManager } from '@/components/modules/commands-manager';
|
|
import { listGuildChannelsForDashboard } from '@/lib/discord-guild-resources';
|
|
import { getLocale, t } from '@/lib/i18n';
|
|
import { getCommandGlobalRules } from '@/lib/module-configs/command-global-rules';
|
|
import { listCommandOverridesDashboard } from '@/lib/module-configs/commands';
|
|
|
|
interface CommandsPageProps {
|
|
params: Promise<{ guildId: string }>;
|
|
}
|
|
|
|
export default async function CommandsPage({ params }: CommandsPageProps) {
|
|
const { guildId } = await params;
|
|
const [locale, commands, globalRules, channels] = await Promise.all([
|
|
getLocale(),
|
|
listCommandOverridesDashboard(guildId),
|
|
getCommandGlobalRules(guildId),
|
|
listGuildChannelsForDashboard(guildId).catch(() => [])
|
|
]);
|
|
|
|
return (
|
|
<div className="space-y-6">
|
|
<div>
|
|
<h1 className="text-2xl font-semibold">{t(locale, 'modulePages.commands.title')}</h1>
|
|
<p className="text-sm text-muted-foreground">{t(locale, 'modulePages.commands.description')}</p>
|
|
</div>
|
|
<Suspense fallback={null}>
|
|
<CommandsManager
|
|
guildId={guildId}
|
|
initialCommands={commands}
|
|
initialGlobalRules={globalRules}
|
|
channels={channels}
|
|
/>
|
|
</Suspense>
|
|
</div>
|
|
);
|
|
}
|