/*
* Copyright (c) 2023 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
*/
import React from 'react';
import { OverlayTrigger, Tooltip } from 'react-bootstrap';
import classNames from '../utils/classNames';
import './stepper.scss';
type ActionCaption = StringCaption & {
action: () => void;
};
type TooltipCaption = StringCaption & {
tooltip: string;
};
type StringCaption = {
id: string;
caption: string;
};
type StepState = 'active' | 'success' | 'warning' | 'failure';
type StepCaption = StringCaption | ActionCaption | TooltipCaption;
export type Step = {
id: string;
title: string;
caption?: string | (StepCaption | StepCaption[]);
state?: StepState;
};
export interface Steppers {
title?: string;
steps: Step[];
}
const isToolTipCaption = (caption: StepCaption): caption is ActionCaption =>
(caption as TooltipCaption).tooltip !== undefined;
const isActionCaption = (caption: StepCaption): caption is ActionCaption =>
(caption as ActionCaption).action !== undefined;
const isStringCaption = (
caption: string | StringCaption,
): caption is string | StringCaption =>
typeof caption === 'string' ||
(!isToolTipCaption(caption) && !isActionCaption(caption));
const StepActionCaption = ({ caption }: { caption: ActionCaption }) => (
);
const StepTooltipCaption = ({ caption }: { caption: TooltipCaption }) => (