// Copyright 2017-2020 @polkadot/app-explorer authors & contributors // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. import { KeyedEvent } from '@polkadot/react-query/types'; import React, { useMemo } from 'react'; import { Link } from 'react-router-dom'; import styled from 'styled-components'; import { Table } from '@polkadot/react-components'; import { formatNumber } from '@polkadot/util'; import Event from './Event'; import { useTranslation } from './translate'; interface Props { className?: string; emptyLabel?: React.ReactNode; events?: KeyedEvent[]; eventClassName?: string; label?: React.ReactNode; } function Events ({ className = '', emptyLabel, eventClassName, events, label }: Props): React.ReactElement { const { t } = useTranslation(); const header = useMemo(() => [ [label || t('recent events'), 'start'] ], [label, t]); return ( ('No events available')} header={header} > {events && events.map(({ blockHash, blockNumber, indexes, key, record }): React.ReactNode => ( ))}
{blockNumber && (
{indexes.length !== 1 && ({formatNumber(indexes.length)}x) } {formatNumber(blockNumber)}-{indexes[0]}
)}
); } export default React.memo(styled(Events)` td.overflow { position: relative; .event-link { position: absolute; right: 0.75rem; top: 0.5rem; } } `);