@octopusdeploy/design-system-components
Version:
The design systems component library.
38 lines (37 loc) • 1.27 kB
TypeScript
import type { ReactElement, ReactNode } from "react";
import type { ProgressTrackerProps } from "../ProgressTracker";
export interface DialogStep {
content: ReactNode;
progressTracker?: ReactElement<ProgressTrackerProps>;
/** When provided, overrides the dialog-level sidePanel for this step. */
sidePanel?: ReactElement;
onBeforeNext?: () => boolean | Promise<boolean>;
onBeforeBack?: () => boolean | Promise<boolean>;
onEnter?: () => void | Promise<void>;
}
export interface MultiStepDialogOptions {
steps: DialogStep[];
onComplete?: () => void;
completeButtonLabel?: string;
backButtonDisabled?: boolean;
nextButtonDisabled?: boolean;
}
export type DialogStepWithoutSidePanel = Omit<DialogStep, "sidePanel"> & {
sidePanel?: never;
};
export interface MultiStepDialogOptionsWithoutSidePanel extends Omit<MultiStepDialogOptions, "steps"> {
steps: DialogStepWithoutSidePanel[];
}
export interface SingleStepNeverProps {
primaryAction?: never;
secondaryAction?: never;
children?: never;
progressTracker?: never;
}
export interface MultiStepNeverProps {
steps?: never;
onComplete?: never;
completeButtonLabel?: never;
backButtonDisabled?: never;
nextButtonDisabled?: never;
}