| import { useState, useEffect } from "react"; | |
| export default function useTextSize() { | |
| const [textSize, setTextSize] = useState("normal"); | |
| const [textSizeClass, setTextSizeClass] = useState("text-[14px]"); | |
| const getTextSizeClass = (size) => { | |
| switch (size) { | |
| case "small": | |
| return "text-[12px]"; | |
| case "large": | |
| return "text-[18px]"; | |
| default: | |
| return "text-[14px]"; | |
| } | |
| }; | |
| useEffect(() => { | |
| const storedTextSize = window.localStorage.getItem("anythingllm_text_size"); | |
| if (storedTextSize) { | |
| setTextSize(storedTextSize); | |
| setTextSizeClass(getTextSizeClass(storedTextSize)); | |
| } | |
| const handleTextSizeChange = (event) => { | |
| const size = event.detail; | |
| setTextSize(size); | |
| setTextSizeClass(getTextSizeClass(size)); | |
| }; | |
| window.addEventListener("textSizeChange", handleTextSizeChange); | |
| return () => { | |
| window.removeEventListener("textSizeChange", handleTextSizeChange); | |
| }; | |
| }, []); | |
| return { textSize, textSizeClass }; | |
| } | |