From 050499b8fcd84d86e92d76963626109ad6af96f3 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Fri, 5 Dec 2025 22:54:26 -0500 Subject: [PATCH] chore: Convert dashes to underscores instead of removing (#10811) --- app/utils/emoji.test.ts | 6 +++--- app/utils/emoji.ts | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/utils/emoji.test.ts b/app/utils/emoji.test.ts index a5b9aa95db..0c5e0aa60e 100644 --- a/app/utils/emoji.test.ts +++ b/app/utils/emoji.test.ts @@ -15,7 +15,7 @@ describe("generateEmojiNameFromFilename", () => { ); }); - test("should replace spaces with underscores", () => { + test("should replace spaces and dashes with underscores", () => { expect(generateEmojiNameFromFilename("party parrot.gif")).toBe( "party_parrot" ); @@ -26,7 +26,7 @@ describe("generateEmojiNameFromFilename", () => { test("should remove invalid characters", () => { expect(generateEmojiNameFromFilename("party-parrot.gif")).toBe( - "partyparrot" + "party_parrot" ); expect(generateEmojiNameFromFilename("happy!@#$%.png")).toBe("happy"); expect(generateEmojiNameFromFilename("emoji(1).png")).toBe("emoji"); @@ -65,7 +65,7 @@ describe("generateEmojiNameFromFilename", () => { "party_parrot" ); expect(generateEmojiNameFromFilename("dumpster-fire-2023.png")).toBe( - "dumpsterfire" + "dumpster_fire" ); }); diff --git a/app/utils/emoji.ts b/app/utils/emoji.ts index 59b8d3e5ea..17ec604186 100644 --- a/app/utils/emoji.ts +++ b/app/utils/emoji.ts @@ -6,7 +6,7 @@ export function emojiToUrl(text: string) { * Generates a valid emoji name from a filename by: * - Removing file extension * - Converting to lowercase - * - Replacing spaces with underscores + * - Replacing spaces and dashes with underscores * - Removing invalid characters (only allowing lowercase letters and underscores) * - Removing numbers * - Removing leading/trailing underscores @@ -18,8 +18,11 @@ export function generateEmojiNameFromFilename(filename: string): string { // Remove file extension const nameWithoutExt = filename.replace(/\.[^.]+$/, ""); - // Convert to lowercase, replace spaces with underscores - let name = nameWithoutExt.toLowerCase().replace(/\s+/g, "_"); + // Convert to lowercase, replace spaces and dashes with underscores + let name = nameWithoutExt + .toLowerCase() + .replace(/\s+/g, "_") + .replace(/-+/g, "_"); // Remove all characters that aren't lowercase letters or underscores (including numbers) name = name.replace(/[^a-z_]/g, "");