import React from 'react'; import { Grid, Flex, H5 } from 'indigo-react'; import { formatDotsWithTime } from 'lib/dateFormat'; import { segmentNetworkKey } from 'lib/keys'; import { usePointCache } from 'store/pointCache'; import { useRollerStore } from 'store/rollerStore'; const renderNetworkKey = key => { const segments = segmentNetworkKey(key); if (!segments) { return 'Not set'; } return segments.join('\n'); }; export default function NetworkKeys() { const { getRekeyDate } = usePointCache(); const { point } = useRollerStore(); const { networkKeysSet, keyRevisionNumber, continuityNumber, cryptoSuiteVersion, authenticationKey, encryptionKey, } = point; const renderNetworkKeySection = (title, key) => ( <> {title} {key ? ( <> 0x {renderNetworkKey(key)} ) : ( Not set )} ); const renderDetail = (title, value) => ( {title} {value === 'Not set' ? ( Not set ) : ( {value} )} ); const revisionTime = networkKeysSet ? ` at ${getRekeyDate(point.value) .map(date => date.matchWith({ Ok: r => formatDotsWithTime(r.value), Error: () => 'No date available', }) ) .matchWith({ Nothing: () => null, Just: ({ value }) => value, })}` : ''; return ( <>
Network Keys
Revision {keyRevisionNumber} {revisionTime}
{renderNetworkKeySection('Authentication Key', authenticationKey)} {renderNetworkKeySection('Encryption Key', encryptionKey)} {renderDetail('Continuity Era', continuityNumber)} {renderDetail('Crypto Suite Version', cryptoSuiteVersion)} ); }