@carbon/ibm-products
Version:
Carbon for IBM Products
78 lines (77 loc) • 2.91 kB
TypeScript
/**
* Copyright IBM Corp. 2021, 2023
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
*/
import React, { PropsWithChildren, ReactNode } from 'react';
interface CreateFullPageStepBaseProps extends PropsWithChildren {
/**
* Sets an optional className to be added to the CreateFullPage step
*/
className?: string;
/**
* Sets an optional description on the progress step component
*/
description?: ReactNode;
/**
* This will conditionally disable the submit button in the multi step CreateFullPage
*/
disableSubmit?: boolean;
/**
* This optional prop will render your form content inside of a fieldset html element
*/
hasFieldset?: boolean;
/**
* This prop is used to help track dynamic steps. If this value is `false` then the step is not included in the visible steps or the ProgressIndicator
* steps. If this value is `true` then the step will be included in the list of visible steps, as well as being included in the ProgressIndicator step list
*/
includeStep?: boolean;
/**
* This prop can be used on the first step to mark it as an intro step, which will not render the progress indicator steps
*/
introStep?: boolean;
/**
* This optional prop will indicate an error icon on the progress indicator step item
*/
invalid?: boolean;
/**
* Optional function to be called on initial mount of a step.
* For example, this can be used to fetch data that is required on a particular step.
*/
onMount?: () => void;
/**
* Optional function to be called on a step change.
* For example, this can be used to validate input fields before proceeding to the next step.
* This function can _optionally_ return a promise that is either resolved or rejected and the CreateFullPage will handle the submitting state of the next button.
*/
onNext?: () => void | Promise<any>;
/**
* Optional function to be called when you move to the previous step.
*/
onPrevious?: () => void;
/**
* Sets the optional secondary label on the progress step component
*/
secondaryLabel?: string;
/**
* Sets an optional subtitle on the progress step component
*/
subtitle?: string;
/**
* Sets the title text for a create full page step
*/
title: ReactNode;
}
type CreateFullPageStepFieldsetProps = {
fieldsetLegendText?: string;
} | {
hasFieldset: false;
fieldsetLegendText?: string;
} | {
hasFieldset: true;
fieldsetLegendText: string;
};
export type CreateFullPageStepProps = CreateFullPageStepBaseProps & CreateFullPageStepFieldsetProps;
export declare let CreateFullPageStep: React.ForwardRefExoticComponent<CreateFullPageStepProps & React.RefAttributes<HTMLDivElement>>;
export {};