import { allureIcons } from "@allurereport/web-components"; import type { FunctionalComponent } from "preact"; import { useState } from "preact/hooks"; import type { ClassicTestResult, ClassicTestStepResult } from "types"; import { TestResultDropdown } from "@/components/TestResult/TestResultDropdown"; import { TestResultAttachment } from "@/components/TestResult/TestResultSteps/testResultAttachment"; import { TestResultStep } from "@/components/TestResult/TestResultSteps/testResultStep"; import { useI18n } from "@/stores/locale"; import * as styles from "./styles.scss"; const typeMap = { step: TestResultStep, attachment: TestResultAttachment, } as const; export type TestResultStepsProps = { steps: ClassicTestResult["steps"]; }; type StepComponentProps = FunctionalComponent<{ item?: ClassicTestStepResult; stepIndex?: number; }>; export const TestResultSteps: FunctionalComponent = ({ steps }) => { const [isOpened, setIsOpen] = useState(true); const { t } = useI18n("execution"); return (
{isOpened && (
{steps?.map((item: ClassicTestStepResult, index) => { const { type } = item; const StepComponent: StepComponentProps = typeMap[type]; return StepComponent ? : null; })}
)}
); };