import { useCallback } from "react"; import { faCircle } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; const REGEX = /([$]{.*?})/g; export const useSyntaxHighlight = () => { const syntaxHighlight = useCallback((text: string, isHidden?: boolean) => { if (isHidden) { if (!text) { return "EMPTY"; } return text .split("") .slice(0, 200) .map((el, i) => el === "\n" ? ( el ) : ( ) ); } // append a space on last new line this to show new line in ui for code component const val = text.at(-1) === "\n" ? text.concat(" ") : text; if (val?.length === 0) return EMPTY; return val?.split(REGEX).map((word, i) => word.match(REGEX) !== null ? ( ${ {word.slice(2, word.length - 1)} } ) : ( {word} ) ); }, []); return syntaxHighlight; };