|
1 | 1 | import React from "react" |
2 | 2 | import { IRichText } from "./UtilsInterfaces" |
3 | 3 |
|
| 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 | + |
4 | 60 | const TextRenderer = (text: Array<IRichText>) => { |
5 | 61 | return React.Children.toArray( |
6 | 62 | text.map((textItem) => { |
| 63 | + |
7 | 64 | if (textItem.href) { |
8 | 65 | 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) |
11 | 69 | } |
12 | 70 | }) |
13 | 71 | ) |
|
0 commit comments