diff --git a/package.json b/package.json index 09d1de9db..43372ae77 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ }, "dependencies": { "@braintree/sanitize-url": "6.0.2", - "@excalidraw/mermaid-to-excalidraw": "0.1.0-firefox", + "@excalidraw/mermaid-to-excalidraw": "0.1.0-types", "@excalidraw/random-username": "1.0.0", "@radix-ui/react-popover": "1.0.3", "@radix-ui/react-tabs": "1.0.2", diff --git a/src/components/MermaidToExcalidraw.tsx b/src/components/MermaidToExcalidraw.tsx index bd42c15f0..53e26f7f9 100644 --- a/src/components/MermaidToExcalidraw.tsx +++ b/src/components/MermaidToExcalidraw.tsx @@ -4,8 +4,6 @@ import { updateActiveTool } from "../utils"; import { useApp, useExcalidrawSetAppState } from "./App"; import { Button } from "./Button"; import { Dialog } from "./Dialog"; - -import "./MermaidToExcalidraw.scss"; import { DEFAULT_EXPORT_PADDING, DEFAULT_FONT_SIZE } from "../constants"; import { convertToExcalidrawElements, @@ -15,6 +13,10 @@ import { NonDeletedExcalidrawElement } from "../element/types"; import { canvasToBlob } from "../data/blob"; import { ArrowRightIcon } from "./icons"; import Spinner from "./Spinner"; +import "./MermaidToExcalidraw.scss"; + +import { MermaidToExcalidrawResult } from "@excalidraw/mermaid-to-excalidraw/dist/interfaces"; +import { MermaidOptions } from "@excalidraw/mermaid-to-excalidraw"; const LOCAL_STORAGE_KEY_MERMAID_TO_EXCALIDRAW = "mermaid-to-excalidraw"; const MERMAID_EXAMPLE = @@ -68,7 +70,12 @@ const MermaidToExcalidraw = ({ appState: AppState; elements: readonly NonDeletedExcalidrawElement[]; }) => { - const mermaidToExcalidrawLib = useRef(null); + const mermaidToExcalidrawLib = useRef<{ + parseMermaidToExcalidraw: ( + defination: string, + options: MermaidOptions, + ) => Promise; + } | null>(null); const [text, setText] = useState(""); const deferredText = useDeferredValue(text); const [loading, setLoading] = useState(true); @@ -117,7 +124,7 @@ const MermaidToExcalidraw = ({ useEffect(() => { const renderExcalidrawPreview = async () => { const canvasNode = canvasRef.current; - if (!canvasNode) { + if (!canvasNode || !mermaidToExcalidrawLib.current) { return; } try { diff --git a/yarn.lock b/yarn.lock index 0a7698d54..43aaf1a49 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1532,10 +1532,10 @@ resolved "https://registry.yarnpkg.com/@excalidraw/markdown-to-text/-/markdown-to-text-0.1.2.tgz#1703705e7da608cf478f17bfe96fb295f55a23eb" integrity sha512-1nDXBNAojfi3oSFwJswKREkFm5wrSjqay81QlyRv2pkITG/XYB5v+oChENVBQLcxQwX4IUATWvXM5BcaNhPiIg== -"@excalidraw/mermaid-to-excalidraw@0.1.0-firefox": - version "0.1.0-firefox" - resolved "https://registry.yarnpkg.com/@excalidraw/mermaid-to-excalidraw/-/mermaid-to-excalidraw-0.1.0-firefox.tgz#6b0581fa7b9e3121ff59499782c76f812e9626f5" - integrity sha512-9PVUK2yg9gUavAVFHV4M3ZUBlki4ZcV1Ah/UMd2sdIk4/JPDxXLFKgOeHCuYaxB3cDoilq8sqJGJBLTgk/qIsA== +"@excalidraw/mermaid-to-excalidraw@0.1.0-types": + version "0.1.0-types" + resolved "https://registry.yarnpkg.com/@excalidraw/mermaid-to-excalidraw/-/mermaid-to-excalidraw-0.1.0-types.tgz#dda78a51dbec291bea578ab0c8e95963043bd1ea" + integrity sha512-RGyuh4ZpITZymin1mfYOuHRUw4W3hanDQ6HUJ5B25/cThW0ZAijE65rF+zt87ICe+nbeYBvnbXHsvBMj0Nkh0w== dependencies: "@excalidraw/markdown-to-text" "0.1.2" mermaid "10.2.3"