Enhance component message handling and introduce new features
- Added `ComponentMessageBinding` model to manage message components in the database. - Updated `WelcomeConfig`, `Tag`, and `ScheduledMessage` models to support new component fields. - Integrated component handling in various modules, including Scheduler and Tags, to improve message customization. - Enhanced user experience by implementing new commands for creating and managing component messages in the utility module. - Updated localization files to reflect new component-related features and improve user guidance.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import type { PrismaClient } from '@prisma/client';
|
||||
import type { WelcomeEmbed, WelcomeMessageType } from '@nexumi/shared';
|
||||
import { applyWelcomePlaceholders } from '@nexumi/shared';
|
||||
import { applyWelcomePlaceholders, parseMessageComponentsV2 } from '@nexumi/shared';
|
||||
import type { Guild, GuildMember } from 'discord.js';
|
||||
import { ensureGuild } from '../../guild.js';
|
||||
|
||||
@@ -41,6 +41,7 @@ export type WelcomePayload = {
|
||||
type: WelcomeMessageType;
|
||||
content?: string | null;
|
||||
embed?: WelcomeEmbed | null;
|
||||
components?: import('@nexumi/shared').MessageComponentsV2 | null;
|
||||
imageTitle?: string | null;
|
||||
imageSubtitle?: string | null;
|
||||
};
|
||||
@@ -52,7 +53,26 @@ export function resolveWelcomePayload(
|
||||
type: config.welcomeType as WelcomeMessageType,
|
||||
content: config.welcomeContent,
|
||||
embed: parseWelcomeEmbed(config.welcomeEmbed),
|
||||
components: parseMessageComponentsV2(config.welcomeComponents),
|
||||
imageTitle: config.imageTitle,
|
||||
imageSubtitle: config.imageSubtitle
|
||||
};
|
||||
}
|
||||
|
||||
export type LeavePayload = {
|
||||
type: import('@nexumi/shared').LeaveMessageType;
|
||||
content?: string | null;
|
||||
embed?: WelcomeEmbed | null;
|
||||
components?: import('@nexumi/shared').MessageComponentsV2 | null;
|
||||
};
|
||||
|
||||
export function resolveLeavePayload(
|
||||
config: Awaited<ReturnType<typeof getWelcomeConfig>>
|
||||
): LeavePayload {
|
||||
return {
|
||||
type: (config.leaveType as LeavePayload['type']) || 'TEXT',
|
||||
content: config.leaveContent,
|
||||
embed: parseWelcomeEmbed(config.leaveEmbed),
|
||||
components: parseMessageComponentsV2(config.leaveComponents)
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user