From 28a945069fa02e0c4af703cacf898034e567089b Mon Sep 17 00:00:00 2001 From: Denis-Adrian Cristea Date: Wed, 5 Mar 2025 14:15:54 +0200 Subject: [PATCH] fix(ContextMenuCommandBuilder): allow emoji in name (#10790) * fix(ContextMenuCommandBuilder): allow emoji in name * test: add emoji from 16.0 https://emojipedia.org/fingerprint * chore: non rule-breaking regex * feat: use simplified regex Co-authored-by: Qjuh <76154676+Qjuh@users.noreply.github.com> * style: prettier --------- Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com> Co-authored-by: Qjuh <76154676+Qjuh@users.noreply.github.com> --- .../__tests__/interactions/ContextMenuCommands.test.ts | 5 +++++ .../src/interactions/commands/contextMenu/Assertions.ts | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/builders/__tests__/interactions/ContextMenuCommands.test.ts b/packages/builders/__tests__/interactions/ContextMenuCommands.test.ts index 72df8eba0..4d5da2922 100644 --- a/packages/builders/__tests__/interactions/ContextMenuCommands.test.ts +++ b/packages/builders/__tests__/interactions/ContextMenuCommands.test.ts @@ -27,6 +27,11 @@ describe('Context Menu Commands', () => { // Translation: thx (according to GTranslate) expect(() => getBuilder().setName('どうも')).not.toThrowError(); + + expect(() => getBuilder().setName('🎉').toJSON()).not.toThrowError(); + expect(() => getBuilder().setName('🫆').toJSON()).not.toThrowError(); + expect(() => getBuilder().setName('🎉 abc').toJSON()).not.toThrowError(); + expect(() => getBuilder().setName('🫆 abc').toJSON()).not.toThrowError(); }); }); diff --git a/packages/builders/src/interactions/commands/contextMenu/Assertions.ts b/packages/builders/src/interactions/commands/contextMenu/Assertions.ts index 16a8d8039..909a994e7 100644 --- a/packages/builders/src/interactions/commands/contextMenu/Assertions.ts +++ b/packages/builders/src/interactions/commands/contextMenu/Assertions.ts @@ -6,8 +6,7 @@ const namePredicate = z .string() .min(1) .max(32) - // eslint-disable-next-line prefer-named-capture-group - .regex(/^( *[\p{P}\p{L}\p{N}\p{sc=Devanagari}\p{sc=Thai}]+ *)+$/u); + .regex(/^(?:(?: *[\p{P}\p{L}\p{N}\p{sc=Devanagari}\p{sc=Thai}\p{Extended_Pictographic}\p{Emoji_Component}]) *)+$/u); const contextsPredicate = z.array(z.nativeEnum(InteractionContextType)); const integrationTypesPredicate = z.array(z.nativeEnum(ApplicationIntegrationType));