summaryrefslogtreecommitdiff
path: root/packages/prosody-ui/src/fonts/FontChanger.tsx
blob: 15c932eff1e21c0b3ccd138c4cb76832a588e103 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import React, { useEffect, useState, type ReactNode } from "react";
import fontIcon from "../assets/icons/font.svg";
import { getScriptPredictor } from "glotscript";
import ThaiFontLoader from "./Thai";

function FontChanger({ text }: { text: string }) {
  const [script, setScript] = useState<string | null>(null);
  useEffect(() => {
    const predictor = getScriptPredictor();
    const res = predictor(text);
    console.log("script predicted", res);
    setScript(res[0]);
  }, [text]);
  useEffect(() => {
    if (script === "Hani") setFontCount(12);
    else if (script === "Thai") setFontCount(6);
    else if (script === "Jpan") setFontCount(5);
    // else if (script === "Latn") setFontCount(6)
  }, [script]);
  const [fontIdx, setFont] = useState(0);
  const [fontCount, setFontCount] = useState(0);
  function changeFont() {
    if (fontIdx === fontCount) setFont(0);
    else setFont((prev) => prev + 1);
  }
  return (
    <div
      className={`font-changer font-${script}-${fontIdx}`}
      lang={script || ""}
    >
      <img
        className="font-icon cp"
        style={{ width: 25 }}
        onClick={changeFont}
        src={fontIcon}
      />
      {script === "Thai" ? <ThaiFontLoader text={text} /> : null}
    </div>
  );
}
// function FontChanger({
//   lang,
//   children,
// }: {
//   lang: string;
//   children: ReactNode;
// }) {
//   useEffect(() => {}, []);
//   const [script, setScript] = useState("Latn");
//   const [fontIdx, setFont] = useState(0);
//   const fontCount = 6;
//   function changeFont() {
//     if (fontIdx === fontCount) setFont(0);
//     else setFont((prev) => prev + 1);
//   }
//   return (
//     <div className="font-changer" lang={script}>
//       <img className="font-icon cp" onClick={changeFont} src={fontIcon} />
//       {children}
//     </div>
//   );
// }

export default FontChanger;