fix(discord): avoid duplicate component id exports

This commit is contained in:
Vincent Koc 2026-04-02 00:34:38 +09:00
parent 0b06c4b352
commit 67f8dc5712
1 changed files with 7 additions and 20 deletions

View File

@ -24,23 +24,10 @@ import {
} from "@buape/carbon";
import { ButtonStyle, MessageFlags, TextInputStyle } from "discord-api-types/v10";
import {
DISCORD_COMPONENT_CUSTOM_ID_KEY,
DISCORD_MODAL_CUSTOM_ID_KEY,
buildDiscordComponentCustomId,
buildDiscordModalCustomId,
parseDiscordComponentCustomId,
parseDiscordComponentCustomIdForCarbon,
parseDiscordModalCustomId,
parseDiscordModalCustomIdForCarbon,
buildDiscordComponentCustomId as buildDiscordComponentCustomIdImpl,
buildDiscordModalCustomId as buildDiscordModalCustomIdImpl,
parseDiscordModalCustomIdForCarbon as parseDiscordModalCustomIdForCarbonImpl,
} from "./component-custom-id.js";
export {
buildDiscordComponentCustomId,
buildDiscordModalCustomId,
parseDiscordComponentCustomId,
parseDiscordComponentCustomIdForCarbon,
parseDiscordModalCustomId,
parseDiscordModalCustomIdForCarbon,
};
// Some test-only module graphs partially mock `@buape/carbon` and can drop `Modal`.
// Keep dynamic form definitions loadable instead of crashing unrelated suites.
@ -683,7 +670,7 @@ function createButtonComponent(params: {
: undefined;
const customId =
internalCustomId ??
buildDiscordComponentCustomId({
buildDiscordComponentCustomIdImpl({
componentId,
modalId: params.modalId,
});
@ -726,7 +713,7 @@ function createSelectComponent(params: {
} {
const type = (params.spec.type ?? "string").toLowerCase() as DiscordComponentSelectType;
const componentId = params.componentId ?? createShortId("sel_");
const customId = buildDiscordComponentCustomId({ componentId });
const customId = buildDiscordComponentCustomIdImpl({ componentId });
if (type === "string") {
const options = params.spec.options ?? [];
if (options.length === 0) {
@ -1103,12 +1090,12 @@ export class DiscordFormModal extends ModalBase {
title: string;
customId: string;
components: Array<Label | TextDisplay>;
customIdParser = parseDiscordModalCustomIdForCarbon;
customIdParser = parseDiscordModalCustomIdForCarbonImpl;
constructor(params: { modalId: string; title: string; fields: DiscordModalFieldDefinition[] }) {
super();
this.title = params.title;
this.customId = buildDiscordModalCustomId(params.modalId);
this.customId = buildDiscordModalCustomIdImpl(params.modalId);
this.components = params.fields.map((field) => {
const component = createModalFieldComponent(field);
class DynamicLabel extends Label {