export function useStepResultStatus()

in src/hooks/useTestResult.ts [38:62]


export function useStepResultStatus(
  stepTitle?: string,
  stepName?: string
): ResultCategory | undefined {
  const { result } = useContext(TestContext);
  const [statuses, setStatuses] = useState<Record<string, ResultCategory>>({});

  useEffect(() => {
    if (!result) {
      setStatuses({});
    } else {
      // make a map with key:stepname, val:status
      setStatuses(
        result.journey.steps.reduce((prev, { name, status }) => {
          return { ...prev, [name]: status };
        }, {})
      );
    }
  }, [result, setStatuses]);

  if (stepName && statuses[stepName]) return statuses[stepName];
  if (!stepTitle || !statuses[stepTitle]) return undefined;

  return statuses[stepTitle];
}