diff --git a/src/components/Accordions/DataViewerAccordion.tsx b/src/components/Accordions/DataViewerAccordion.tsx new file mode 100644 index 00000000..8b576f20 --- /dev/null +++ b/src/components/Accordions/DataViewerAccordion.tsx @@ -0,0 +1,62 @@ +import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; +import { + Accordion, + AccordionDetails, + AccordionSummary, + Grid, +} from '@mui/material'; +import { useState } from 'react'; +import { IData } from '../../interfaces'; +import { DownloadButton } from '../Buttons/DownloadButton'; +import { DownloadJsonButton } from '../Buttons/DownloadJsonButton'; +import { FFJsonViewer } from '../Viewers/FFJsonViewer'; +import { FFAccordionHeader } from './FFAccordionHeader'; +import { FFAccordionText } from './FFAccordionText'; + +interface Props { + header: string; + isOpen?: boolean; + data: IData; +} + +export const DataViewAccordion: React.FC = ({ + header, + isOpen = false, + data, +}) => { + const [expanded, setExpanded] = useState(isOpen); + + return ( + setExpanded(!expanded)} + > + }> + + } + rightContent={ + data.blob ? ( + + ) : ( + + ) + } + /> + + + {/* Basic Data */} + + + + + + + + ); +}; diff --git a/src/components/Accordions/MessageDataAccordion.tsx b/src/components/Accordions/MessageDataAccordion.tsx index 613d96bd..dee34a3b 100644 --- a/src/components/Accordions/MessageDataAccordion.tsx +++ b/src/components/Accordions/MessageDataAccordion.tsx @@ -102,7 +102,7 @@ export const MessageDataAccordion: React.FC = ({ diff --git a/src/components/Slides/DataSlide.tsx b/src/components/Slides/DataSlide.tsx index 3b26431d..9e161f15 100644 --- a/src/components/Slides/DataSlide.tsx +++ b/src/components/Slides/DataSlide.tsx @@ -19,7 +19,7 @@ import React from 'react'; import { useTranslation } from 'react-i18next'; import { IData } from '../../interfaces'; import { DEFAULT_PADDING } from '../../theme'; -import { JsonViewAccordion } from '../Accordions/JsonViewerAccordion'; +import { DataViewAccordion } from '../Accordions/DataViewerAccordion'; import { DataList } from '../Lists/DataList'; import { DisplaySlide } from './DisplaySlide'; import { SlideHeader } from './SlideHeader'; @@ -46,10 +46,10 @@ export const DataSlide: React.FC = ({ data, open, onClose }) => { {/* Value */} {data.value && ( - )} diff --git a/src/components/Viewers/FFJsonViewer.tsx b/src/components/Viewers/FFJsonViewer.tsx index 60667eee..ac10ca9d 100644 --- a/src/components/Viewers/FFJsonViewer.tsx +++ b/src/components/Viewers/FFJsonViewer.tsx @@ -22,7 +22,7 @@ export const FFJsonViewer: React.FC = ({ json }) => { return typeof json === 'object' && isValidJson(json) ? (