Skip to content
This repository was archived by the owner on Mar 24, 2025. It is now read-only.

Commit 06cd886

Browse files
committed
feat: Add support for annotations
1 parent d64589f commit 06cd886

File tree

1 file changed

+60
-2
lines changed

1 file changed

+60
-2
lines changed

src/utils/TextRenderer.tsx

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,71 @@
11
import React from "react"
22
import { IRichText } from "./UtilsInterfaces"
33

4+
const mapAnnotations = (textItem:IRichText) => {
5+
const { bold, italic, underline, code, strikethrough } = textItem.annotations
6+
7+
if(bold && italic && underline && strikethrough){
8+
return <b><i><u><del>{textItem.text.content}</del></u></i></b>
9+
}
10+
else if(bold && italic && underline){
11+
return <b><i><u>{textItem.text.content}</u></i></b>
12+
}
13+
else if(bold && italic && strikethrough){
14+
return <b><i><del>{textItem.text.content}</del></i></b>
15+
}
16+
else if(bold && underline && strikethrough){
17+
return <b><u><del>{textItem.text.content}</del></u></b>
18+
}
19+
else if(italic && underline && strikethrough){
20+
return <i><u><del>{textItem.text.content}</del></u></i>
21+
}
22+
else if(bold && italic){
23+
return <b><i>{textItem.text.content}</i></b>
24+
}
25+
else if(bold && underline){
26+
return <b><u>{textItem.text.content}</u></b>
27+
}
28+
else if(bold && strikethrough){
29+
return <b><del>{textItem.text.content}</del></b>
30+
}
31+
else if(italic && underline){
32+
return <i><u>{textItem.text.content}</u></i>
33+
}
34+
else if(italic && strikethrough){
35+
return <i><del>{textItem.text.content}</del></i>
36+
}
37+
else if(underline && strikethrough){
38+
return <u><del>{textItem.text.content}</del></u>
39+
}
40+
else if(bold){
41+
return <b>{textItem.text.content}</b>
42+
}
43+
else if(italic){
44+
return <i>{textItem.text.content}</i>
45+
}
46+
else if(underline){
47+
return <u>{textItem.text.content}</u>
48+
}
49+
else if(strikethrough){
50+
return <del>{textItem.text.content}</del>
51+
}
52+
else if(code){
53+
return <code>{textItem.text.content}</code>
54+
}
55+
else{
56+
return <span>{textItem.text.content}</span>
57+
}
58+
}
59+
460
const TextRenderer = (text: Array<IRichText>) => {
561
return React.Children.toArray(
662
text.map((textItem) => {
63+
764
if (textItem.href) {
865
return <a href={textItem.href}>{textItem.text.content}</a>
9-
} else {
10-
return <span>{textItem.text.content}</span>
66+
}
67+
else {
68+
return mapAnnotations(textItem)
1169
}
1270
})
1371
)

0 commit comments

Comments
 (0)