export type RenderCallback = (ctx: CanvasRenderingContext2D) => void; export const useRender = (callback: RenderCallback) => { const registerRenderCallback = inject< (callback: RenderCallback) => () => void >("registerRenderCallback"); onMounted(() => { if (!registerRenderCallback) { throw new Error( "Missing registerRenderCallback - useRender must be used within a Screen component", ); } const unregister = registerRenderCallback(callback); onUnmounted(unregister); }); };