mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
37 lines
832 B
TypeScript
37 lines
832 B
TypeScript
|
export const renderEmoji = (
|
||
|
emoji:
|
||
|
| string
|
||
|
| {
|
||
|
name: string;
|
||
|
color: string;
|
||
|
}
|
||
|
) => {
|
||
|
if (!emoji) return;
|
||
|
|
||
|
if (typeof emoji === "object")
|
||
|
return (
|
||
|
<span style={{ color: emoji.color }} className="material-symbols-rounded text-lg">
|
||
|
{emoji.name}
|
||
|
</span>
|
||
|
);
|
||
|
else return isNaN(parseInt(emoji)) ? emoji : String.fromCodePoint(parseInt(emoji));
|
||
|
};
|
||
|
|
||
|
export const groupReactions: (reactions: any[], key: string) => { [key: string]: any[] } = (
|
||
|
reactions: any,
|
||
|
key: string
|
||
|
) => {
|
||
|
const groupedReactions = reactions.reduce(
|
||
|
(acc: any, reaction: any) => {
|
||
|
if (!acc[reaction[key]]) {
|
||
|
acc[reaction[key]] = [];
|
||
|
}
|
||
|
acc[reaction[key]].push(reaction);
|
||
|
return acc;
|
||
|
},
|
||
|
{} as { [key: string]: any[] }
|
||
|
);
|
||
|
|
||
|
return groupedReactions;
|
||
|
};
|