import { PropsWithChildren, useEffect, useMemo, useState } from 'react'; import { IoCheckmarkCircle } from '@react-icons/all-files/io5/IoCheckmarkCircle'; import { IoCloseCircle } from '@react-icons/all-files/io5/IoCloseCircle'; import { IoRadioButtonOffOutline } from '@react-icons/all-files/io5/IoRadioButtonOffOutline'; import style from './Step.module.scss'; interface StepProps { title: string; disabled: boolean; completed: boolean; error?: string; } export default function Step(props: PropsWithChildren) { const { title, disabled, completed, error, children } = props; const [collapsed, setCollapsed] = useState(disabled); const handleCollapse = () => setCollapsed((prev) => !prev); const icon = useMemo(() => { if (completed) return ; if (error) return ; return ; }, [completed, error]); useEffect(() => { if (completed) { setCollapsed(true); } }, [completed]); return (
{icon} {title}
{!collapsed && ( <> {error &&
{error}
} {children} )}
); }