[build] upgrade eslint to 9.37.0 (#88)
Co-authored-by: tobi <tobi.smethurst@protonmail.com> Reviewed-on: https://codeberg.org/superseriousbusiness/masto-fe-standalone/pulls/88 Co-authored-by: Zoë Bijl <moiety@noreply.codeberg.org> Co-committed-by: Zoë Bijl <moiety@noreply.codeberg.org>
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
import Trie from 'substring-trie';
|
||||
import Trie from "substring-trie";
|
||||
|
||||
import { assetHost } from 'mastodon/utils/config';
|
||||
import { assetHost } from "mastodon/utils/config";
|
||||
|
||||
import { autoPlayGif } from '../../initial_state';
|
||||
import { autoPlayGif } from "../../initial_state";
|
||||
|
||||
import unicodeMapping from './emoji_unicode_mapping_light';
|
||||
import unicodeMapping from "./emoji_unicode_mapping_light";
|
||||
|
||||
const trie = new Trie(Object.keys(unicodeMapping));
|
||||
|
||||
@@ -14,12 +14,12 @@ const emojiFilenames = (emojis) => {
|
||||
};
|
||||
|
||||
// Emoji requiring extra borders depending on theme
|
||||
const darkEmoji = emojiFilenames(['🎱', '🐜', '⚫', '🖤', '⬛', '◼️', '◾', '◼️', '✒️', '▪️', '💣', '🎳', '📷', '📸', '♣️', '🕶️', '✴️', '🔌', '💂♀️', '📽️', '🍳', '🦍', '💂', '🔪', '🕳️', '🕹️', '🕋', '🖊️', '🖋️', '💂♂️', '🎤', '🎓', '🎥', '🎼', '♠️', '🎩', '🦃', '📼', '📹', '🎮', '🐃', '🏴', '🐞', '🕺', '📱', '📲', '🚲']);
|
||||
const lightEmoji = emojiFilenames(['👽', '⚾', '🐔', '☁️', '💨', '🕊️', '👀', '🍥', '👻', '🐐', '❕', '❔', '⛸️', '🌩️', '🔊', '🔇', '📃', '🌧️', '🐏', '🍚', '🍙', '🐓', '🐑', '💀', '☠️', '🌨️', '🔉', '🔈', '💬', '💭', '🏐', '🏳️', '⚪', '⬜', '◽', '◻️', '▫️']);
|
||||
const darkEmoji = emojiFilenames(["🎱", "🐜", "⚫", "🖤", "⬛", "◼️", "◾", "◼️", "✒️", "▪️", "💣", "🎳", "📷", "📸", "♣️", "🕶️", "✴️", "🔌", "💂♀️", "📽️", "🍳", "🦍", "💂", "🔪", "🕳️", "🕹️", "🕋", "🖊️", "🖋️", "💂♂️", "🎤", "🎓", "🎥", "🎼", "♠️", "🎩", "🦃", "📼", "📹", "🎮", "🐃", "🏴", "🐞", "🕺", "📱", "📲", "🚲"]);
|
||||
const lightEmoji = emojiFilenames(["👽", "⚾", "🐔", "☁️", "💨", "🕊️", "👀", "🍥", "👻", "🐐", "❕", "❔", "⛸️", "🌩️", "🔊", "🔇", "📃", "🌧️", "🐏", "🍚", "🍙", "🐓", "🐑", "💀", "☠️", "🌨️", "🔉", "🔈", "💬", "💭", "🏐", "🏳️", "⚪", "⬜", "◽", "◻️", "▫️"]);
|
||||
|
||||
const emojiFilename = (filename) => {
|
||||
const borderedEmoji = (document.body && document.body.classList.contains('theme-mastodon-light')) ? lightEmoji : darkEmoji;
|
||||
return borderedEmoji.includes(filename) ? (filename + '_border') : filename;
|
||||
const borderedEmoji = (document.body && document.body.classList.contains("theme-mastodon-light")) ? lightEmoji : darkEmoji;
|
||||
return borderedEmoji.includes(filename) ? (filename + "_border") : filename;
|
||||
};
|
||||
|
||||
const emojifyTextNode = (node, customEmojis) => {
|
||||
@@ -40,7 +40,7 @@ const emojifyTextNode = (node, customEmojis) => {
|
||||
i += str.codePointAt(i) < 65536 ? 1 : 2;
|
||||
}
|
||||
} else {
|
||||
while (i < str.length && str[i] !== ':' && !(unicode_emoji = trie.search(str.slice(i)))) {
|
||||
while (i < str.length && str[i] !== ":" && !(unicode_emoji = trie.search(str.slice(i)))) {
|
||||
i += str.codePointAt(i) < 65536 ? 1 : 2;
|
||||
}
|
||||
}
|
||||
@@ -51,8 +51,8 @@ const emojifyTextNode = (node, customEmojis) => {
|
||||
}
|
||||
|
||||
let rend, replacement = null;
|
||||
if (str[i] === ':') { // Potentially the start of a custom emoji :shortcode:
|
||||
rend = str.indexOf(':', i + 1) + 1;
|
||||
if (str[i] === ":") { // Potentially the start of a custom emoji :shortcode:
|
||||
rend = str.indexOf(":", i + 1) + 1;
|
||||
|
||||
// no matching ending ':', skip
|
||||
if (!rend) {
|
||||
@@ -72,14 +72,14 @@ const emojifyTextNode = (node, customEmojis) => {
|
||||
// now got a replacee as ':shortcode:'
|
||||
// if you want additional emoji handler, add statements below which set replacement and return true.
|
||||
const filename = autoPlayGif ? custom_emoji.url : custom_emoji.static_url;
|
||||
replacement = document.createElement('img');
|
||||
replacement.setAttribute('draggable', 'false');
|
||||
replacement.setAttribute('class', 'emojione custom-emoji');
|
||||
replacement.setAttribute('alt', shortcode);
|
||||
replacement.setAttribute('title', shortcode);
|
||||
replacement.setAttribute('src', filename);
|
||||
replacement.setAttribute('data-original', custom_emoji.url);
|
||||
replacement.setAttribute('data-static', custom_emoji.static_url);
|
||||
replacement = document.createElement("img");
|
||||
replacement.setAttribute("draggable", "false");
|
||||
replacement.setAttribute("class", "emojione custom-emoji");
|
||||
replacement.setAttribute("alt", shortcode);
|
||||
replacement.setAttribute("title", shortcode);
|
||||
replacement.setAttribute("src", filename);
|
||||
replacement.setAttribute("data-original", custom_emoji.url);
|
||||
replacement.setAttribute("data-static", custom_emoji.static_url);
|
||||
} else { // start of an unicode emoji
|
||||
rend = i + unicode_emoji.length;
|
||||
|
||||
@@ -90,14 +90,14 @@ const emojifyTextNode = (node, customEmojis) => {
|
||||
}
|
||||
|
||||
const { filename, shortCode } = unicodeMapping[unicode_emoji];
|
||||
const title = shortCode ? `:${shortCode}:` : '';
|
||||
const title = shortCode ? `:${shortCode}:` : "";
|
||||
|
||||
replacement = document.createElement('img');
|
||||
replacement.setAttribute('draggable', 'false');
|
||||
replacement.setAttribute('class', 'emojione');
|
||||
replacement.setAttribute('alt', unicode_emoji);
|
||||
replacement.setAttribute('title', title);
|
||||
replacement.setAttribute('src', `${assetHost}/emoji/${emojiFilename(filename)}.svg`);
|
||||
replacement = document.createElement("img");
|
||||
replacement.setAttribute("draggable", "false");
|
||||
replacement.setAttribute("class", "emojione");
|
||||
replacement.setAttribute("alt", unicode_emoji);
|
||||
replacement.setAttribute("title", title);
|
||||
replacement.setAttribute("src", `${assetHost}/emoji/${emojiFilename(filename)}.svg`);
|
||||
}
|
||||
|
||||
// Add the processed-up-to-now string and the emoji replacement
|
||||
@@ -114,23 +114,25 @@ const emojifyTextNode = (node, customEmojis) => {
|
||||
const emojifyNode = (node, customEmojis) => {
|
||||
for (const child of node.childNodes) {
|
||||
switch(child.nodeType) {
|
||||
case Node.TEXT_NODE:
|
||||
emojifyTextNode(child, customEmojis);
|
||||
break;
|
||||
case Node.ELEMENT_NODE:
|
||||
if (!child.classList.contains('invisible'))
|
||||
emojifyNode(child, customEmojis);
|
||||
break;
|
||||
case Node.TEXT_NODE:
|
||||
emojifyTextNode(child, customEmojis);
|
||||
break;
|
||||
case Node.ELEMENT_NODE:
|
||||
if (!child.classList.contains("invisible")) {
|
||||
emojifyNode(child, customEmojis);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const emojify = (str, customEmojis = {}) => {
|
||||
const wrapper = document.createElement('div');
|
||||
const wrapper = document.createElement("div");
|
||||
wrapper.innerHTML = str;
|
||||
|
||||
if (!Object.keys(customEmojis).length)
|
||||
if (!Object.keys(customEmojis).length) {
|
||||
customEmojis = null;
|
||||
}
|
||||
|
||||
emojifyNode(wrapper, customEmojis);
|
||||
|
||||
@@ -143,24 +145,24 @@ export const buildCustomEmojis = (customEmojis) => {
|
||||
const emojis = [];
|
||||
|
||||
customEmojis.forEach(emoji => {
|
||||
const shortcode = emoji.get('shortcode');
|
||||
const url = autoPlayGif ? emoji.get('url') : emoji.get('static_url');
|
||||
const name = shortcode.replace(':', '');
|
||||
const shortcode = emoji.get("shortcode");
|
||||
const url = autoPlayGif ? emoji.get("url") : emoji.get("static_url");
|
||||
const name = shortcode.replace(":", "");
|
||||
|
||||
emojis.push({
|
||||
id: name,
|
||||
name,
|
||||
short_names: [name],
|
||||
text: '',
|
||||
text: "",
|
||||
emoticons: [],
|
||||
keywords: [name],
|
||||
imageUrl: url,
|
||||
custom: true,
|
||||
customCategory: emoji.get('category'),
|
||||
customCategory: emoji.get("category"),
|
||||
});
|
||||
});
|
||||
|
||||
return emojis;
|
||||
};
|
||||
|
||||
export const categoriesFromEmojis = customEmojis => customEmojis.reduce((set, emoji) => set.add(emoji.get('category') ? `custom-${emoji.get('category')}` : 'custom'), new Set(['custom']));
|
||||
export const categoriesFromEmojis = customEmojis => customEmojis.reduce((set, emoji) => set.add(emoji.get("category") ? `custom-${emoji.get("category")}` : "custom"), new Set(["custom"]));
|
||||
|
||||
Reference in New Issue
Block a user