mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-14 02:24:03 +00:00
39 lines
978 B
JavaScript
39 lines
978 B
JavaScript
|
import emojis from '../../../assets/emoji.json';
|
||
|
|
||
|
const {StaticUrlPrefix} = window.config;
|
||
|
|
||
|
const tempMap = {gitea: ':gitea:'};
|
||
|
for (const {emoji, aliases} of emojis) {
|
||
|
for (const alias of aliases || []) {
|
||
|
tempMap[alias] = emoji;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export const emojiKeys = Object.keys(tempMap).sort((a, b) => {
|
||
|
if (a === '+1' || a === '-1') return -1;
|
||
|
if (b === '+1' || b === '-1') return 1;
|
||
|
return a.localeCompare(b);
|
||
|
});
|
||
|
|
||
|
export const emojiMap = {};
|
||
|
for (const key of emojiKeys) {
|
||
|
emojiMap[key] = tempMap[key];
|
||
|
}
|
||
|
|
||
|
// retrieve HTML for given emoji name
|
||
|
export function emojiHTML(name) {
|
||
|
let inner;
|
||
|
if (name === 'gitea') {
|
||
|
inner = `<img class="emoji" alt=":${name}:" src="${StaticUrlPrefix}/img/emoji/gitea.png" align="absmiddle">`;
|
||
|
} else {
|
||
|
inner = emojiString(name);
|
||
|
}
|
||
|
|
||
|
return `<span class="emoji" title=":${name}:">${inner}</span>`;
|
||
|
}
|
||
|
|
||
|
// retrieve string for given emoji name
|
||
|
export function emojiString(name) {
|
||
|
return emojiMap[name] || `:${name}:`;
|
||
|
}
|