import React, { useCallback } from "react"; import AddressDisp from "src/components/Misc/Disp/AddressDisp/AddressDisp"; import { isValidAddr } from "src/utils/Utils"; import { EventParam } from "@zilliqa-js/core/src/types"; import "./EventsTab.css"; interface IProps { data: string; } const OverviewTab: React.FC = ({ data }) => { const parsedData = JSON.parse(data); const tag = parsedData._tag; const params = tag ? parsedData.params : parsedData; const highlightEventParams = useCallback( (params: EventParam[]): React.ReactNode => { if (params.length === 0) return null; return params .map((param, index) => ( {param.type} {param.vname} )) .reduce((acc: React.ReactNode | null, ele) => acc === null ? <>{[ele]} : <>{[acc, ", ", ele]} ); }, [] ); return ( <>
{tag ? ( <> {tag} {" ("} {highlightEventParams(params)} {")"} ) : ( Contract Parameters )}
{params.length > 0 && ( <> {params.map((param: EventParam, index: number) => ( ))} )}
Variable Value
{param.vname} {param.value !== undefined ? (
{typeof param.value === "object" ? (
                            {JSON.stringify(param.value, null, 2)}
                          
) : Array.isArray(param.value) ? ( param.value.toString() ) : isValidAddr(param.value.toString()) ? ( ) : ( param.value )}
) : null}
); }; export default OverviewTab;