import React, { type ReactNode, useEffect, useState } from "react"; import { TerminalCanvasContextProvider } from "~/context/TerminalCanvasContext"; import { TerminalRenderer } from "~/utils/terminal/renderer"; export const TerminalCanvas = (props: { width: number; height: number; children?: Array | ReactNode; }) => { const [canvas] = useState(new TerminalRenderer(props.width, props.height)); const [render, setRender] = useState>([]); useEffect(() => { setRender(canvas.render()); }, [canvas, props.children]); return ( {props.children} {render} ); };