UNPKG

@awsui/components-react

Version:

On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en

40 lines 2.82 kB
import { __rest } from "tslib"; // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import React, { useEffect } from 'react'; import { AnalyticsFunnel } from '../internal/analytics/components/analytics-funnel'; import { useFunnel } from '../internal/analytics/hooks/use-funnel'; import { getAnalyticsMetadataProps } from '../internal/base-component'; import useBaseComponent from '../internal/hooks/use-base-component'; import { applyDisplayName } from '../internal/utils/apply-display-name'; import { getExternalProps } from '../internal/utils/external-props'; import { getStepConfiguration } from './analytics'; import InternalWizard from './internal'; function Wizard(_a) { var { isLoadingNextStep = false, allowSkipTo = false } = _a, props = __rest(_a, ["isLoadingNextStep", "allowSkipTo"]); const analyticsMetadata = getAnalyticsMetadataProps(props); const baseComponentProps = useBaseComponent('Wizard', { props: { allowSkipTo, flowType: analyticsMetadata.flowType, }, metadata: { hasInstanceIdentifier: Boolean(analyticsMetadata === null || analyticsMetadata === void 0 ? void 0 : analyticsMetadata.instanceIdentifier), hasResourceType: Boolean(analyticsMetadata === null || analyticsMetadata === void 0 ? void 0 : analyticsMetadata.resourceType), }, }, analyticsMetadata); const { wizardCount } = useFunnel(); const externalProps = getExternalProps(props); useEffect(() => { wizardCount.current++; // eslint-disable-next-line react-hooks/exhaustive-deps return () => void wizardCount.current--; }, [wizardCount]); return (React.createElement(AnalyticsFunnel, { funnelIdentifier: analyticsMetadata === null || analyticsMetadata === void 0 ? void 0 : analyticsMetadata.instanceIdentifier, funnelFlowType: analyticsMetadata === null || analyticsMetadata === void 0 ? void 0 : analyticsMetadata.flowType, funnelErrorContext: analyticsMetadata === null || analyticsMetadata === void 0 ? void 0 : analyticsMetadata.errorContext, funnelResourceType: analyticsMetadata === null || analyticsMetadata === void 0 ? void 0 : analyticsMetadata.resourceType, funnelType: "multi-page", optionalStepNumbers: props.steps .map((step, index) => (step.isOptional ? index + 1 : -1)) .filter(step => step !== -1), totalFunnelSteps: props.steps.length, stepConfiguration: getStepConfiguration(props.steps) }, React.createElement(InternalWizard, Object.assign({ isLoadingNextStep: isLoadingNextStep, allowSkipTo: allowSkipTo }, externalProps, baseComponentProps, { __injectAnalyticsComponentMetadata: true })))); } applyDisplayName(Wizard, 'Wizard'); export default Wizard; //# sourceMappingURL=index.js.map