import { Component, ParentComponent, createMemo } from 'solid-js'; import { BoardInfo } from '../../models/board-info.model'; type ItemProps = { label: string; }; const Item: ParentComponent = (props) => { return (
{props.label}
{props.children}
); }; export const BoardInfoPanel: Component<{ board: BoardInfo }> = (props) => { const ttl = createMemo(() => { if (props.board.connect_status !== 'Connected') { return '--'; } if (props.board.ttl == null) { return 'timeout'; } return ( <> {props.board.ttl.toFixed(0)} ms ); }); const connectStatus = createMemo(() => { if (typeof props.board.connect_status === 'string') { return props.board.connect_status; } if ('Connecting' in props.board.connect_status) { return `Connecting (${props.board.connect_status.Connecting.toFixed(0)})`; } }); const statusBadgeClass = createMemo(() => { const status = connectStatus(); if (status === 'Connected') { return 'badge badge-success badge-sm'; } else if (status?.startsWith('Connecting')) { return 'badge badge-warning badge-sm'; } else { return 'badge badge-error badge-sm'; } }); return (
{props.board.fullname}
{connectStatus()}
{props.board.host} {props.board.address} {props.board.port} {ttl()}
); };