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;
}
`