mirror of
https://github.com/outline/outline.git
synced 2025-12-21 10:39:41 -06:00
fix: Remapping gemoji thumbs_up/down
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
},
|
||||
{}
|
||||
|
||||
Reference in New Issue
Block a user