From 154574295097c6d1f1a9616d1f9bdc4590a4df8b Mon Sep 17 00:00:00 2001 From: Majd_dk Date: Sun, 28 Sep 2025 11:20:45 +0300 Subject: [PATCH] respect \n --- src/Components/LatextInput/LaTeXInputMemo.tsx | 104 +++++++++++------- 1 file changed, 65 insertions(+), 39 deletions(-) diff --git a/src/Components/LatextInput/LaTeXInputMemo.tsx b/src/Components/LatextInput/LaTeXInputMemo.tsx index 59a361f..30551e4 100644 --- a/src/Components/LatextInput/LaTeXInputMemo.tsx +++ b/src/Components/LatextInput/LaTeXInputMemo.tsx @@ -10,10 +10,16 @@ import { useObjectToEdit } from "../../zustand/ObjectToEditState"; import SpinContainer from "../Layout/SpinContainer"; import { areFieldPropsEqual } from "./areFieldPropsEqual"; import { useHandlePasteKeyDown } from "../../Hooks/useHandlePasteKeyDown"; -import { getLatexOnCustomShortCut } from "../../utils/keyDownUtils"; +import { getLatexOnCtrlShiftQkeyDown, getLatexOnCtrlShiftThKeyDown } from "../../utils/keyDownUtils"; +import { InlineMath } from "react-katex"; +import 'katex/dist/katex.min.css'; + + +const AddLazyLatexModal = React.lazy(() => import("./AddLaTexModal")); +const EditLazyLatexModal = React.lazy(() => import("./EditLaTexModal")); + +const AddLazyImageModal = React.lazy(() => import("./AddImageModal")); -const AddLazyModal = React.lazy(() => import("./AddLaTexModal")); -const EditLazyModal = React.lazy(() => import("./EditLaTexModal")); const LaTeXInputMemo: React.FC = React.memo( ({ field, form, label, ...props }) => { @@ -31,14 +37,21 @@ const LaTeXInputMemo: React.FC = React.memo( const [t] = useTranslation(); - const [isModalOpen, setIsModalOpen] = useState(false); - const [isEditModalOpen, setIsEditModalOpen] = useState(false); + const [isLatexModalOpen, setIsLatexModalOpen] = useState(false); + const [isLatexEditModalOpen, setIsLatexEditModalOpen] = useState(false); const [Latex, setLatex] = useState(""); + + const [isImageModalOpen, setIsImageModalOpen] = useState(false); - const showModal = () => { - setIsModalOpen(true); + const showLatexModal = () => { + setIsLatexModalOpen(true); }; + const showImageModal = () => { + setIsImageModalOpen(true); + }; + + const handleEditModal = (item: any) => { // console.log(item); // setLatex(item); @@ -93,11 +106,15 @@ const LaTeXInputMemo: React.FC = React.memo( setFieldValue(metaName, { ...(meta ?? {}), direction: "ltr" }); } }; + const handlePaste = useHandlePasteKeyDown(); const handleOnKeyDown = (e: React.KeyboardEvent) =>{ if(!ShowLatexOption) return ; handlePaste(e,name) - getLatexOnCustomShortCut(e) && setFieldValue(name,getLatexOnCustomShortCut(e)) + const latexOnCtrlSHiftQClick = getLatexOnCtrlShiftQkeyDown(e) + // const latexOnCtrlSHiftThClick = getLatexOnCtrlShiftThKeyDown(e) + latexOnCtrlSHiftQClick && document.execCommand('insertText', false,latexOnCtrlSHiftQClick); + // latexOnCtrlSHiftThClick && document.execCommand('insertText', false,latexOnCtrlSHiftThClick); } return (
@@ -133,56 +150,65 @@ const LaTeXInputMemo: React.FC = React.memo( {t("header.show_preview")} - + )}
- {showPreview && ( -
- {Preview?.map((item: any, index: number,items) => { - if (item?.isLatex) { +{showPreview && ( +
+ {Preview.map((item, idx) => { + if (item.isLatex) { + return {item.text}; + }else if(item.isImage){ + return img + } + else { + const lines = item.text.split('\n'); + return ( + + {lines.map((line, i) => ( + + {line} + {i < lines.length - 1 &&
} +
+ ))} +
+ ); + } + })} +
+)} - return ( -
- -
- ); - } - return
1 ? "100%" : undefined, - whiteSpace: "pre-wrap", - }} - >{ items[index -1]?.isLatex ? item?.text?.replace(/\n/, ""):item?.text}
; - })} -
- )} }> - - + );