import React, { Fragment } from "react" import { Timeline, Icon, Span, Stack, Alert, List } from '@chakra-ui/react'; import { ErrorAlert } from "./ErrorAlert"; import { HiOutlineCloudUpload, HiOutlineCloudDownload } from "react-icons/hi"; import { ChakraCodeBlockShort } from "./CodeBlock"; import { capitalizeWords } from "../../core/StringUtils"; import { MSCollapsible, type MSCollapsibleExternalProps } from "./MSCollapsible"; import { TimelineErrorIcon } from "./timeline/TimelineIcon"; import type {ScrobbleResult} from "../../core/Atomic"; import { TimelineItemSummaryText } from "../utils/ComponentUtils"; import { Muted } from "./Typography"; export interface ScrobbleActionResultProps extends MSCollapsibleExternalProps { result: ScrobbleResult, scrobbler?: string, componentName?: string } export const ScrobbleActionResult = (props: ScrobbleActionResultProps) => { const { result: { error, warnings = [], payload, response, } = {}, collapsibleOpen, componentName = 'downstream service' } = props; let responseSuffix: React.JSX.Element, warningsElm: React.JSX.Element, errorElm: React.JSX.Element | null; if (warnings.length > 0) { warningsElm = warnings } if (error !== undefined) { errorElm = an error } if (warningsElm !== undefined && errorElm !== undefined) { responseSuffix = with {warningsElm} and {errorElm}; } else if (warningsElm !== undefined || errorElm !== undefined) { responseSuffix = with {warningsElm ?? errorElm}; } //{capitalizeWords(componentName)} return ( Sent Scrobble Payload to {capitalizeWords(componentName)}} defaultOpen={collapsibleOpen} disableUntil="md" timeline> {response !== undefined || error !== undefined ? ( {error !== undefined ? : ( )} Received Response from {capitalizeWords(componentName)}{responseSuffix !== undefined ? {responseSuffix} : null}} timeline defaultOpen={collapsibleOpen} disableUntil="md"> {error !== undefined ? : null} {response !== undefined ? : null} {warnings.length > 0 ? ( Warnings in Response {warnings.map((x) => {x})} ) : null} ) : null} ) }