feat(view): wire renderer into canvas viewport

This commit is contained in:
syntaxbullet
2026-07-03 09:41:37 +02:00
parent 90897e3993
commit 812db180cd

View File

@@ -1,5 +1,6 @@
import { useEffect, useRef } from "react"; import { useEffect, useRef } from "react";
import type { AppStore } from "@editor/store"; import type { AppStore } from "@editor/store";
import { createRenderer } from "@renderer/index";
export type CanvasViewportProps = { export type CanvasViewportProps = {
store: AppStore; store: AppStore;
@@ -8,6 +9,23 @@ export type CanvasViewportProps = {
export function CanvasViewport({ store }: CanvasViewportProps) { export function CanvasViewport({ store }: CanvasViewportProps) {
const canvasRef = useRef<HTMLCanvasElement | null>(null); const canvasRef = useRef<HTMLCanvasElement | null>(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(() => { useEffect(() => {
const canvas = canvasRef.current; const canvas = canvasRef.current;
if (!canvas) return; if (!canvas) return;