From 6ec259a0e71174651bae95d4628138bf6fd68742 Mon Sep 17 00:00:00 2001 From: kj_sh604 Date: Sun, 15 Mar 2026 16:19:35 -0400 Subject: refactor: packages/ --- .../components/canvases/NewElementCanvas.tsx | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 packages/excalidraw/components/canvases/NewElementCanvas.tsx (limited to 'packages/excalidraw/components/canvases/NewElementCanvas.tsx') diff --git a/packages/excalidraw/components/canvases/NewElementCanvas.tsx b/packages/excalidraw/components/canvases/NewElementCanvas.tsx new file mode 100644 index 0000000..1815671 --- /dev/null +++ b/packages/excalidraw/components/canvases/NewElementCanvas.tsx @@ -0,0 +1,56 @@ +import { useEffect, useRef } from "react"; +import type { NonDeletedSceneElementsMap } from "../../element/types"; +import type { AppState } from "../../types"; +import type { + RenderableElementsMap, + StaticCanvasRenderConfig, +} from "../../scene/types"; +import type { RoughCanvas } from "roughjs/bin/canvas"; +import { renderNewElementScene } from "../../renderer/renderNewElementScene"; +import { isRenderThrottlingEnabled } from "../../reactUtils"; + +interface NewElementCanvasProps { + appState: AppState; + elementsMap: RenderableElementsMap; + allElementsMap: NonDeletedSceneElementsMap; + scale: number; + rc: RoughCanvas; + renderConfig: StaticCanvasRenderConfig; +} + +const NewElementCanvas = (props: NewElementCanvasProps) => { + const canvasRef = useRef(null); + useEffect(() => { + if (!canvasRef.current) { + return; + } + renderNewElementScene( + { + canvas: canvasRef.current, + scale: props.scale, + newElement: props.appState.newElement, + elementsMap: props.elementsMap, + allElementsMap: props.allElementsMap, + rc: props.rc, + renderConfig: props.renderConfig, + appState: props.appState, + }, + isRenderThrottlingEnabled(), + ); + }); + + return ( + + ); +}; + +export default NewElementCanvas; -- cgit v1.2.3