fix: Remapping gemoji thumbs_up/down

This commit is contained in:
Tom Moor
2023-09-08 17:58:19 -04:00
parent 76845a3308
commit 7270e65f0c
2 changed files with 14 additions and 9 deletions

View File

@@ -2,7 +2,7 @@ import data, { type Emoji as TEmoji, EmojiMartData } from "@emoji-mart/data";
import FuzzySearch from "fuzzy-search";
import capitalize from "lodash/capitalize";
import React from "react";
import { snakeCase } from "@shared/editor/lib/emoji";
import { emojiMartToGemoji, snakeCase } from "@shared/editor/lib/emoji";
import EmojiMenuItem from "./EmojiMenuItem";
import SuggestionsMenu, {
Props as SuggestionsMenuProps,
@@ -38,7 +38,7 @@ const EmojiMenu = (props: Props) => {
const result = searcher.search(n).map((item) => {
// We snake_case the shortcode for backwards compatability with gemoji to
// avoid multiple formats being written into documents.
const shortcode = snakeCase(item.id);
const shortcode = snakeCase(emojiMartToGemoji[item.id] || item.id);
const emoji = item.skins[0].native;
return {

View File

@@ -1,12 +1,17 @@
import data, { type EmojiMartData } from "@emoji-mart/data";
const gemojiToEmojiMart = {
thumbs_up: "+1",
thumbs_down: "-1",
export const emojiMartToGemoji = {
"+1": "thumbs_up",
"-1": "thumbs_down",
};
export const snakeCase = (str: string) =>
str.replace(/(\w)(-)(\w)/g, "$1_$2").toLowerCase();
/**
* Convert kebab case to snake case.
*
* @param str The string to convert
* @returns The converted string
*/
export const snakeCase = (str: string) => str.replace(/(\w)(-)(\w)/g, "$1_$2");
/**
* A map of emoji shortcode to emoji character. The shortcode is snake cased
@@ -14,8 +19,8 @@ export const snakeCase = (str: string) =>
*/
export const nameToEmoji = Object.values((data as EmojiMartData).emojis).reduce(
(acc, emoji) => {
const normalizedId = gemojiToEmojiMart[emoji.id] || emoji.id;
acc[snakeCase(normalizedId)] = emoji.skins[0].native;
const convertedId = snakeCase(emoji.id);
acc[emojiMartToGemoji[convertedId] ?? convertedId] = emoji.skins[0].native;
return acc;
},
{}