diff --git a/packages/frontend/src/components/Chain.css b/packages/frontend/src/components/Chain.css index a10f18f..abc5fa8 100644 --- a/packages/frontend/src/components/Chain.css +++ b/packages/frontend/src/components/Chain.css @@ -69,5 +69,5 @@ .Chain-node-list th, .Chain-node-list td { text-align: left; - padding: 0.8em 1em; + padding: 0.5em 1em; } diff --git a/packages/frontend/src/components/Node.css b/packages/frontend/src/components/Node.css index 50064a9..7e11b43 100644 --- a/packages/frontend/src/components/Node.css +++ b/packages/frontend/src/components/Node.css @@ -1,3 +1,11 @@ +.Node-Row { + color: #999; +} + +.Node-Row-synced { + color: #fff; +} + .Node-Location { width: 6px; height: 6px; diff --git a/packages/frontend/src/components/Node.tsx b/packages/frontend/src/components/Node.tsx index aa0ac12..f578a5d 100644 --- a/packages/frontend/src/components/Node.tsx +++ b/packages/frontend/src/components/Node.tsx @@ -16,6 +16,8 @@ import lastTimeIcon from '../icons/watch.svg'; import './Node.css'; +const SEMVER_PATTERN = /^\d+\.\d+\.\d+/; + export namespace Node { export interface Props { id: Types.NodeId; @@ -56,11 +58,18 @@ export namespace Node { const [name, implementation, version] = props.nodeDetails; const [height, hash, blockTime, blockTimestamp, propagationTime] = props.blockDetails; const [peers, txcount] = props.nodeStats; + const [semver] = version.match(SEMVER_PATTERN) || [version]; + + let className = 'Node-Row'; + + if (propagationTime != null) { + className += ' Node-Row-synced'; + } return ( -