import { Component, ParentComponent, createMemo } from 'solid-js'; import { BoardInfo } from '../../models/board-info.model'; import { useLanguage } from '../../i18n/index'; type ItemProps = { label: string; }; const Item: ParentComponent = (props) => { return (
{props.label}
{props.children}
); }; export const BoardInfoPanel: Component<{ board: BoardInfo }> = (props) => { const { t } = useLanguage(); const ttl = createMemo(() => { if (props.board.connect_status !== 'Connected') { return '--'; } if (props.board.ttl == null) { return t('info.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 `${t('info.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()}
); };