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.87 kB
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 'use client'; 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'; import analyticsSelectors from './analytics-metadata/styles.css.js'; function Wizard({ isLoadingNextStep = false, allowSkipTo = false, ...props }) { 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), componentSelectors: () => [`.${analyticsSelectors.root}`] }, React.createElement(InternalWizard, { isLoadingNextStep: isLoadingNextStep, allowSkipTo: allowSkipTo, ...externalProps, ...baseComponentProps, __injectAnalyticsComponentMetadata: true }))); } applyDisplayName(Wizard, 'Wizard'); export default Wizard; //# sourceMappingURL=internal-do-not-use-core.js.map