refactor(view): extract canvas viewport hooks

This commit is contained in:
syntaxbullet
2026-07-03 10:16:34 +02:00
parent c7730518ad
commit b5c7f87a20
6 changed files with 168 additions and 125 deletions

View File

@@ -0,0 +1,22 @@
import { useEffect, type RefObject } from "react";
import type { AppStore } from "@editor/store";
import { createRenderer } from "@renderer/index";
export function useCanvasRenderer(canvasRef: RefObject<HTMLCanvasElement | null>, store: AppStore) {
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();
};
}, [canvasRef, store]);
}