* Bump API, cater for new OpenTip structure * Simplify assignment * Cleanups after latest typescript-eslint breakages * More... * Last-ish round
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
// Copyright 2017-2020 @polkadot/react-components 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 { Event } from '@polkadot/types/interfaces';
|
|
import { Codec, TypeDef } from '@polkadot/types/types';
|
|
|
|
import React from 'react';
|
|
import { getTypeDef } from '@polkadot/types';
|
|
import Params from '@polkadot/react-params';
|
|
|
|
import { classes } from './util';
|
|
|
|
export interface Props {
|
|
children?: React.ReactNode;
|
|
className?: string;
|
|
value: Event;
|
|
}
|
|
|
|
function EventDisplay ({ children, className = '', value }: Props): React.ReactElement<Props> {
|
|
const params = value.typeDef.map(({ type }): { type: TypeDef } => ({
|
|
type: getTypeDef(type)
|
|
}));
|
|
const values = value.data.map((value): { isValid: boolean; value: Codec } => ({
|
|
isValid: true,
|
|
value
|
|
}));
|
|
|
|
return (
|
|
<div className={classes('ui--Event', className)}>
|
|
{children}
|
|
<Params
|
|
isDisabled
|
|
params={params}
|
|
values={values}
|
|
/>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
export default React.memo(EventDisplay);
|