import { Dispatch, useCallback, useEffect } from "react"; import { VisualEditorState } from "../VisualEditor/VisualEditor"; import { usePersistentState } from "@/hooks/usePersistentState"; import CloseIcon from '@mui/icons-material/Close'; import SwapHorizIcon from '@mui/icons-material/SwapHoriz'; import { useShortcuts } from "@/hooks/useShortcuts"; type FindReplaceProps = { setCS: Dispatch<(oldState: VisualEditorState) => VisualEditorState>, // setModal: (modal: null) => void; hide: () => void, }; export function FindReplace({setCS, hide}: FindReplaceProps) { const [findTxt, setFindText] = usePersistentState("findTxt", ""); const [replaceTxt, setReplaceTxt] = usePersistentState("replaceTxt", ""); const onReplace = useCallback(() => { setCS(cs => { return { ...cs, texts: cs.texts.map(txt => ({ ...txt, text: txt.text.replaceAll(findTxt, replaceTxt) })), }; }); }, [findTxt, replaceTxt]); useShortcuts([ {keys: ["Enter"], action: onReplace}, ]) const onSwap = useCallback(() => { setReplaceTxt(findTxt); setFindText(replaceTxt); }, [findTxt, replaceTxt]); return
setFindText(e.target.value)} style={{width:300}}/> setReplaceTxt(e.target.value))} style={{width:300}}/>  
; }