import * as React from "react"; import * as ReactDOM from "react-dom"; import { IElement } from "./basic"; type ILog = IElement & { items: React.ReactNode[]; }; export class Log extends React.Component { readonly log = React.createRef(); readonly entries: React.ReactNode[]; constructor(props: ILog) { super(props); this.entries = props.items; } render() { return (
{this.props.items.map((x) => (
{x}
))}
); } append(x: React.ReactNode) { this.entries.push(x); const root = document.createElement("div"); root.className = "crochet-ui--log-entry crochet-ui--log-dynamic-entry"; ReactDOM.render({x}, root); this.log.current?.appendChild(root); root.scrollIntoView(); } }