From 812db180cdb9a0a8e0ca572b0fad6934c8643b7e Mon Sep 17 00:00:00 2001 From: syntaxbullet Date: Fri, 3 Jul 2026 09:41:37 +0200 Subject: [PATCH] feat(view): wire renderer into canvas viewport --- view/CanvasViewport.tsx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/view/CanvasViewport.tsx b/view/CanvasViewport.tsx index 17ad154..23ffe9f 100644 --- a/view/CanvasViewport.tsx +++ b/view/CanvasViewport.tsx @@ -1,5 +1,6 @@ import { useEffect, useRef } from "react"; import type { AppStore } from "@editor/store"; +import { createRenderer } from "@renderer/index"; export type CanvasViewportProps = { store: AppStore; @@ -8,6 +9,23 @@ export type CanvasViewportProps = { export function CanvasViewport({ store }: CanvasViewportProps) { const canvasRef = useRef(null); + useEffect(() => { + const canvas = canvasRef.current; + if (!canvas) return; + + const renderer = createRenderer(canvas); + renderer.render(store.getState()); + + const unsubscribe = store.subscribe((state) => { + renderer.render(state); + }); + + return () => { + unsubscribe(); + renderer.dispose(); + }; + }, [store]); + useEffect(() => { const canvas = canvasRef.current; if (!canvas) return;