import { AccordionButton, AccordionIcon, AccordionPanel, Flex } from '@chakra-ui/react'; import React from 'react'; import MetadataAccordionItem from './MetadataAccordionItem'; import MetadataAccordionItemTitle from './MetadataAccordionItemTitle'; import MetadataItemPrimitive from './MetadataItemPrimitive'; interface Props { name: string; value: Array; level: number; } const MetadataItemArray = ({ name, value, level }: Props) => { return ( { value.map((item, index) => { const content = (() => { switch (typeof item) { case 'string': case 'number': case 'boolean': { return ; } case 'object': { if (item) { if (Array.isArray(item)) { return { JSON.stringify(item, undefined, 2) }; } else { return Object.entries(item).map(([ name, value ], index) => { return ( ); }); } } else { return { String(item) }; } } default: { return { String(item) }; } } })(); return ( { content } ); }) } ); }; export default React.memo(MetadataItemArray);