import type { ResidualNode } from "../types"; import "./ResidualNode.css"; export interface ResidualNodeProps { node: ResidualNode; } function OperatorLabel({ children }: { children: string }) { return {children}; } function Wrapped({ node }: { node: ResidualNode }) { return ( () ); } function ResidualNodeView({ node }: ResidualNodeProps) { switch (node.op) { case "true": return true; case "false": return false; case "predicate": return ( pred {node.name ? <>({node.name}) : null} ); case "error": return ( error {node.message} ); case "always": case "now": case "next": case "not": return ( {node.op} ); case "eventually": return ( eventually {node.within ? ( within {node.within.amount} {node.within.unit} ) : null} ); case "and": case "or": return ( {node.op} ); case "implies": return ( {"=>"} ); } } export default function ResidualNodeRoot({ node }: ResidualNodeProps) { return ( ); }