Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemathinc
GitHub Repository: sagemathinc/cocalc
Path: blob/master/src/packages/frontend/editors/slate/elements/emoji/index.tsx
1702 views
1
/*
2
* This file is part of CoCalc: Copyright © 2020 Sagemath, Inc.
3
* License: MS-RSL – see LICENSE.md for details
4
*/
5
6
import { SlateElement, register } from "../register";
7
8
export interface Emoji extends SlateElement {
9
type: "emoji";
10
content: string;
11
}
12
13
export function createEmoji(content: string, markup: string): Emoji {
14
return {
15
type: "emoji",
16
isVoid: true,
17
isInline: true,
18
content,
19
children: [{ text: "" }],
20
markup,
21
} as Emoji;
22
}
23
24
register({
25
slateType: "emoji",
26
27
StaticElement: ({ attributes, element }) => {
28
if (element.type != "emoji") throw Error("bug");
29
return <span {...attributes}>{element.content}</span>;
30
},
31
32
toSlate: ({ token }) => createEmoji(token.content, token.markup),
33
});
34
35