import React from 'react' import styled from 'styled-components' import { Colors } from '../../../design' import type { Event } from '../../../providers/events/State' import { formatInteger } from './formatInteger' import { getNetworkColor } from './getNetworkColor' interface Props { event: Event } export function Badge({ event }: Props) { if (event.type === 'BLOCK_FOUND') { return {formatInteger(event.blockNumber)} } else if (event.type === 'NETWORK_CONNECTED') { const networkColor = getNetworkColor(event) return {event.network} } else if (event.type === 'CALLS_UPDATED') { return ( <> {event.added.length > 0 && +{event.added.length}} {event.removed.length > 0 && -{event.removed.length}} ) } else if (event.type === 'STATE_UPDATED') { return {event.updated.length} } else if (event.type === 'ACCOUNT_CONNECTED') { return {event.address.substring(0, 6)}… } else if (event.type === 'ERROR' || event.type === 'FETCH_ERROR') { return Error: } return null } const Bold = styled.div` font-weight: bold; margin-right: 8px; ` const Error = styled.div` font-weight: bold; margin-right: 8px; color: ${Colors.Error}; ` const NetworkBadge = styled.div` font-size: 14px; font-weight: bold; padding: 4px 6px; margin-right: 8px; color: ${Colors.TextInverted}; text-shadow: 0px 1px 2px black; border-radius: 4px; ` const Added = styled.div` font-weight: bold; margin-right: 8px; color: ${Colors.Added}; ` const Removed = styled.div` font-weight: bold; margin-right: 8px; color: ${Colors.Removed}; ${Added} + & { margin-left: -4px; } `