/* eslint-disable no-console */ import React, { useState, useRef } from 'react'; import { createRoot } from 'react-dom/client'; import Mathjax from '..'; const DEFAULT_EXPR = '\\left( \\sum_{k=1}^n a_k b_k \\right)^2 \\leq \\left( \\sum_{k=1}^n a_k^2 \\right) \\left( \\sum_{k=1}^n b_k^2 \\right)'; const App: React.FC = () => { const [expr, setExpr] = useState(DEFAULT_EXPR); const [[fg, bg], setColor] = useState(['black', '#eee']); const ref = useRef(null); const handleChange = (e: React.ChangeEvent): void => { setExpr(e.target.value); }; const handleLight = (): void => { setColor(['black', '#eee']); }; const handleDark = (): void => { setColor(['white', '#111']); }; const handleRed = (): void => { setColor(['red', bg]); }; const handleDownload = (): void => { if (ref.current === null) { return; } const b64 = btoa(unescape(encodeURIComponent(ref.current.innerHTML))); const a = document.createElement('a'); a.download = 'expression.svg'; a.href = 'data:text/html;base64,' + b64; a.dispatchEvent(new MouseEvent('click')); }; return ( <>