@dnb/eufemia 10.69.0 → 10.69.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/cjs/components/global-error/GlobalError.d.ts +1 -1
- package/cjs/components/global-error/GlobalError.js +1 -1
- package/cjs/components/global-error/GlobalError.js.map +1 -1
- package/cjs/components/global-error/GlobalErrorDocs.d.ts +2 -0
- package/cjs/components/global-error/GlobalErrorDocs.js +64 -0
- package/cjs/components/global-error/GlobalErrorDocs.js.map +1 -0
- package/cjs/components/info-card/InfoCardDocs.d.ts +3 -0
- package/cjs/components/info-card/InfoCardDocs.js +101 -0
- package/cjs/components/info-card/InfoCardDocs.js.map +1 -0
- package/cjs/components/tabs/Tabs.js +2 -2
- package/cjs/components/tabs/Tabs.js.map +1 -1
- package/cjs/components/upload/UploadFileList.js +2 -3
- package/cjs/components/upload/UploadFileList.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +2 -2
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +35 -41
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +2 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/Isolation.js +3 -4
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
- package/cjs/extensions/forms/Form/Visibility/Visibility.js +1 -0
- package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
- package/cjs/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js +1 -1
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
- package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
- package/cjs/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js +6 -5
- package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js +36 -35
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +104 -57
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
- package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js +66 -0
- package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -4
- package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/types.d.ts +9 -6
- package/cjs/extensions/forms/Wizard/Context/types.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.d.ts +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.js +65 -22
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js +2 -2
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useStep.js +10 -18
- package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +16 -8
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/hooks/useValueProps.js +1 -1
- package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/component-helper.js +1 -1
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/components/global-error/GlobalError.d.ts +1 -1
- package/components/global-error/GlobalError.js +1 -1
- package/components/global-error/GlobalError.js.map +1 -1
- package/components/global-error/GlobalErrorDocs.d.ts +2 -0
- package/components/global-error/GlobalErrorDocs.js +58 -0
- package/components/global-error/GlobalErrorDocs.js.map +1 -0
- package/components/info-card/InfoCardDocs.d.ts +3 -0
- package/components/info-card/InfoCardDocs.js +95 -0
- package/components/info-card/InfoCardDocs.js.map +1 -0
- package/components/tabs/Tabs.js +2 -2
- package/components/tabs/Tabs.js.map +1 -1
- package/components/upload/UploadFileList.js +2 -3
- package/components/upload/UploadFileList.js.map +1 -1
- package/es/components/global-error/GlobalError.d.ts +1 -1
- package/es/components/global-error/GlobalError.js +1 -1
- package/es/components/global-error/GlobalError.js.map +1 -1
- package/es/components/global-error/GlobalErrorDocs.d.ts +2 -0
- package/es/components/global-error/GlobalErrorDocs.js +58 -0
- package/es/components/global-error/GlobalErrorDocs.js.map +1 -0
- package/es/components/info-card/InfoCardDocs.d.ts +3 -0
- package/es/components/info-card/InfoCardDocs.js +95 -0
- package/es/components/info-card/InfoCardDocs.js.map +1 -0
- package/es/components/tabs/Tabs.js +2 -2
- package/es/components/tabs/Tabs.js.map +1 -1
- package/es/components/upload/UploadFileList.js +2 -3
- package/es/components/upload/UploadFileList.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +2 -2
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +21 -29
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/es/extensions/forms/FieldBlock/FieldBlock.js +2 -2
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/Isolation.js +3 -4
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
- package/es/extensions/forms/Form/Visibility/Visibility.js +1 -0
- package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
- package/es/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/useVisibility.js +1 -1
- package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
- package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
- package/es/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
- package/es/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
- package/es/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/DisplaySteps.js +6 -5
- package/es/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.js +35 -34
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +101 -58
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
- package/es/extensions/forms/Wizard/Container/useCollectStepsData.js +59 -0
- package/es/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -4
- package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/types.d.ts +9 -6
- package/es/extensions/forms/Wizard/Context/types.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/Step.d.ts +1 -1
- package/es/extensions/forms/Wizard/Step/Step.js +64 -22
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/StepDocs.js +2 -2
- package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useStep.js +10 -18
- package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +16 -8
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/hooks/useValueProps.js +1 -1
- package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/component-helper.js +1 -1
- package/es/shared/component-helper.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +1 -1
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +2 -2
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +35 -41
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/extensions/forms/FieldBlock/FieldBlock.js +2 -2
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/extensions/forms/Form/Isolation/Isolation.js +3 -4
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
- package/extensions/forms/Form/Visibility/Visibility.js +1 -0
- package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
- package/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
- package/extensions/forms/Form/Visibility/useVisibility.js +1 -1
- package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
- package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
- package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
- package/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
- package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
- package/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
- package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
- package/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
- package/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
- package/extensions/forms/Wizard/Container/DisplaySteps.js +6 -5
- package/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
- package/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
- package/extensions/forms/Wizard/Container/IterateOverSteps.js +36 -34
- package/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js +105 -58
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
- package/extensions/forms/Wizard/Container/useCollectStepsData.js +60 -0
- package/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -4
- package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/extensions/forms/Wizard/Context/types.d.ts +9 -6
- package/extensions/forms/Wizard/Context/types.js.map +1 -1
- package/extensions/forms/Wizard/Step/Step.d.ts +1 -1
- package/extensions/forms/Wizard/Step/Step.js +66 -22
- package/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/extensions/forms/Wizard/Step/StepDocs.js +2 -2
- package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useStep.js +10 -18
- package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +16 -8
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/hooks/useValueProps.js +1 -1
- package/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/component-helper.js +1 -1
- package/shared/component-helper.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import React, { useContext } from 'react';
|
|
4
|
-
import { useTranslation } from '../../hooks';
|
|
5
|
-
import { convertJsxToString } from '../../../../shared/component-helper';
|
|
6
4
|
import WizardContext from '../Context/WizardContext';
|
|
5
|
+
import WizardStepContext from '../Step/StepContext';
|
|
7
6
|
import Step, { handleDeprecatedProps as handleDeprecatedStepProps } from '../Step/Step';
|
|
7
|
+
import { useCollectStepsData } from './useCollectStepsData';
|
|
8
8
|
export function IterateOverSteps({
|
|
9
9
|
children
|
|
10
10
|
}) {
|
|
@@ -13,15 +13,19 @@ export function IterateOverSteps({
|
|
|
13
13
|
stepsRef,
|
|
14
14
|
activeIndexRef,
|
|
15
15
|
totalStepsRef,
|
|
16
|
-
|
|
16
|
+
stepIndexRef,
|
|
17
17
|
prerenderFieldProps,
|
|
18
18
|
prerenderFieldPropsRef,
|
|
19
|
-
hasErrorInOtherStepRef
|
|
19
|
+
hasErrorInOtherStepRef,
|
|
20
|
+
mapOverChildrenRef
|
|
20
21
|
} = useContext(WizardContext);
|
|
22
|
+
const {
|
|
23
|
+
collectStepsData
|
|
24
|
+
} = useCollectStepsData();
|
|
25
|
+
stepsRef.current = new Map();
|
|
21
26
|
hasErrorInOtherStepRef.current = false;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const translations = useTranslation();
|
|
27
|
+
stepIndexRef.current = -1;
|
|
28
|
+
totalStepsRef.current = 0;
|
|
25
29
|
const childrenArray = React.Children.map(children, child => {
|
|
26
30
|
if (React.isValidElement(child)) {
|
|
27
31
|
var _child, _child2;
|
|
@@ -35,7 +39,7 @@ export function IterateOverSteps({
|
|
|
35
39
|
}
|
|
36
40
|
if (((_child2 = child) === null || _child2 === void 0 ? void 0 : _child2.type) === Step) {
|
|
37
41
|
const {
|
|
38
|
-
title
|
|
42
|
+
title,
|
|
39
43
|
inactive,
|
|
40
44
|
include,
|
|
41
45
|
includeWhen,
|
|
@@ -49,45 +53,42 @@ export function IterateOverSteps({
|
|
|
49
53
|
})) {
|
|
50
54
|
return null;
|
|
51
55
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
const state = stepStatusRef.current[index];
|
|
56
|
-
const status = index !== activeIndexRef.current ? state === 'error' ? translations.Step.stepHasError : state === 'unknown' ? 'Unknown state' : undefined : undefined;
|
|
57
|
-
const statusState = state === 'error' ? 'error' : undefined;
|
|
58
|
-
const key = `${index}-${activeIndexRef.current}`;
|
|
59
|
-
if (status) {
|
|
60
|
-
hasErrorInOtherStepRef.current = true;
|
|
61
|
-
}
|
|
62
|
-
stepsRef.current[index] = {
|
|
56
|
+
const index = totalStepsRef.current;
|
|
57
|
+
totalStepsRef.current = totalStepsRef.current + 1;
|
|
58
|
+
collectStepsData({
|
|
63
59
|
id,
|
|
64
|
-
|
|
60
|
+
index,
|
|
65
61
|
inactive,
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
};
|
|
69
|
-
const clone = props => React.cloneElement(child, props);
|
|
62
|
+
title
|
|
63
|
+
});
|
|
70
64
|
if (prerenderFieldProps && typeof document !== 'undefined' && index !== activeIndexRef.current && typeof prerenderFieldPropsRef.current['step-' + index] === 'undefined') {
|
|
71
|
-
|
|
65
|
+
const key = `${index}-${activeIndexRef.current}`;
|
|
66
|
+
prerenderFieldPropsRef.current['step-' + index] = () => React.cloneElement(child, {
|
|
72
67
|
key,
|
|
73
68
|
index,
|
|
74
69
|
prerenderFieldProps: true
|
|
75
70
|
});
|
|
76
71
|
}
|
|
77
|
-
return
|
|
78
|
-
key,
|
|
79
|
-
index
|
|
80
|
-
});
|
|
72
|
+
return child;
|
|
81
73
|
}
|
|
82
74
|
}
|
|
83
75
|
return child;
|
|
84
76
|
});
|
|
85
|
-
if (
|
|
77
|
+
if (totalStepsRef.current === 0) {
|
|
86
78
|
activeIndexRef.current = 0;
|
|
87
|
-
} else if (
|
|
88
|
-
activeIndexRef.current =
|
|
79
|
+
} else if (totalStepsRef.current < activeIndexRef.current + 1) {
|
|
80
|
+
activeIndexRef.current = totalStepsRef.current - 1;
|
|
81
|
+
}
|
|
82
|
+
if (mapOverChildrenRef.current) {
|
|
83
|
+
return childrenArray.map((child, index) => {
|
|
84
|
+
return React.createElement(WizardStepContext.Provider, {
|
|
85
|
+
key: index,
|
|
86
|
+
value: {
|
|
87
|
+
index
|
|
88
|
+
}
|
|
89
|
+
}, child);
|
|
90
|
+
});
|
|
89
91
|
}
|
|
90
|
-
|
|
91
|
-
return childrenArray;
|
|
92
|
+
return children;
|
|
92
93
|
}
|
|
93
94
|
//# sourceMappingURL=IterateOverSteps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IterateOverSteps.js","names":["React","useContext","
|
|
1
|
+
{"version":3,"file":"IterateOverSteps.js","names":["React","useContext","WizardContext","WizardStepContext","Step","handleDeprecatedProps","handleDeprecatedStepProps","useCollectStepsData","IterateOverSteps","children","check","stepsRef","activeIndexRef","totalStepsRef","stepIndexRef","prerenderFieldProps","prerenderFieldPropsRef","hasErrorInOtherStepRef","mapOverChildrenRef","collectStepsData","current","Map","childrenArray","Children","map","child","isValidElement","_child","_child2","step","type","_step","apply","props","title","inactive","include","includeWhen","id","visibleWhen","index","document","key","cloneElement","createElement","Provider","value"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/IterateOverSteps.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport WizardContext from '../Context/WizardContext'\nimport WizardStepContext from '../Step/StepContext'\nimport Step, {\n Props as StepProps,\n handleDeprecatedProps as handleDeprecatedStepProps,\n} from '../Step/Step'\nimport { useCollectStepsData } from './useCollectStepsData'\n\nexport function IterateOverSteps({\n children,\n}: {\n children: React.ReactNode\n}): React.ReactNode {\n const {\n check,\n stepsRef,\n activeIndexRef,\n totalStepsRef,\n stepIndexRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n hasErrorInOtherStepRef,\n mapOverChildrenRef,\n } = useContext(WizardContext)\n\n const { collectStepsData } = useCollectStepsData()\n\n // Reset before iterating and calling \"collectStepsData\" and other variables are collected.\n stepsRef.current = new Map()\n hasErrorInOtherStepRef.current = false\n stepIndexRef.current = -1\n totalStepsRef.current = 0\n\n const childrenArray = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n let step = child\n\n if (child?.type !== Step && typeof child.type === 'function') {\n step = child.type.apply(child.type, [\n child.props,\n ]) as React.ReactElement\n\n if (step?.type === Step) {\n child = step\n }\n }\n\n if (child?.type === Step) {\n const { title, inactive, include, includeWhen, id } =\n handleDeprecatedStepProps(child.props)\n\n if (include === false) {\n return null\n }\n\n if (\n includeWhen &&\n !check({\n visibleWhen: includeWhen,\n })\n ) {\n return null\n }\n\n const index = totalStepsRef.current\n totalStepsRef.current = totalStepsRef.current + 1\n\n collectStepsData({\n id,\n index,\n inactive,\n title,\n })\n\n if (\n prerenderFieldProps &&\n typeof document !== 'undefined' &&\n index !== activeIndexRef.current &&\n typeof prerenderFieldPropsRef.current['step-' + index] ===\n 'undefined'\n ) {\n const key = `${index}-${activeIndexRef.current}`\n prerenderFieldPropsRef.current['step-' + index] = () =>\n React.cloneElement(child as React.ReactElement<StepProps>, {\n key,\n index,\n prerenderFieldProps: true,\n })\n }\n\n return child\n }\n }\n\n return child\n })\n\n // Ensure we never have a higher index than the available children\n // else we get a white screen\n if (totalStepsRef.current === 0) {\n activeIndexRef.current = 0\n } else if (totalStepsRef.current < activeIndexRef.current + 1) {\n activeIndexRef.current = totalStepsRef.current - 1\n }\n\n if (mapOverChildrenRef.current) {\n return childrenArray.map((child, index) => {\n return (\n <WizardStepContext.Provider key={index} value={{ index }}>\n {child}\n </WizardStepContext.Provider>\n )\n })\n }\n\n return children\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,7 +6,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
|
|
|
6
6
|
const _excluded = ["className", "id", "mode", "initialActiveIndex", "omitScrollManagement", "omitFocusManagement", "onStepChange", "children", "noAnimation", "prerenderFieldProps", "keepInDOM", "validationMode", "variant", "sidebarId"];
|
|
7
7
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
8
8
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
9
|
-
import React, { useContext, useCallback, useRef, useReducer, useMemo } from 'react';
|
|
9
|
+
import React, { useContext, useCallback, useRef, useReducer, useMemo, useEffect } from 'react';
|
|
10
10
|
import classnames from 'classnames';
|
|
11
11
|
import { Space } from '../../../../components';
|
|
12
12
|
import { warn } from '../../../../shared/component-helper';
|
|
@@ -54,56 +54,96 @@ function WizardContainer(props) {
|
|
|
54
54
|
const [, forceUpdate] = useReducer(() => ({}), {});
|
|
55
55
|
const activeIndexRef = useRef(initialActiveIndex);
|
|
56
56
|
const totalStepsRef = useRef(NaN);
|
|
57
|
-
const
|
|
58
|
-
const
|
|
57
|
+
const submitCountRef = useRef(0);
|
|
58
|
+
const visitedStepsRef = useRef(new Map());
|
|
59
|
+
const fieldErrorRef = useRef(new Map());
|
|
60
|
+
const storeStepStateRef = useRef(new Map());
|
|
59
61
|
const hasErrorInOtherStepRef = useRef(false);
|
|
60
|
-
const visitedStepsRef = useRef({});
|
|
61
62
|
const elementRef = useRef();
|
|
62
63
|
const stepElementRef = useRef();
|
|
63
64
|
const preventNextStepRef = useRef(false);
|
|
64
|
-
const stepsRef = useRef(
|
|
65
|
-
const tmpStepsRef = useRef(
|
|
65
|
+
const stepsRef = useRef(new Map());
|
|
66
|
+
const tmpStepsRef = useRef();
|
|
67
|
+
const stepIndexRef = useRef(-1);
|
|
66
68
|
const updateTitlesRef = useRef();
|
|
67
69
|
const prerenderFieldPropsRef = useRef({});
|
|
68
70
|
const bypassOnNavigation = validationMode === 'bypassOnNavigation';
|
|
69
71
|
const sharedStateRef = useRef();
|
|
70
72
|
sharedStateRef.current = useSharedState(hasContext && id ? createReferenceKey(id, 'wizard') : undefined);
|
|
71
|
-
visitedStepsRef.current[activeIndexRef.current] = true;
|
|
72
|
-
const setStepState = useCallback((index, state) => {
|
|
73
|
-
stepStatusRef.current[index] = state;
|
|
74
|
-
}, []);
|
|
75
73
|
const hasFieldErrorInStep = useCallback(index => {
|
|
76
|
-
return
|
|
74
|
+
return Array.from(fieldErrorRef.current.values()).some(({
|
|
77
75
|
index: i,
|
|
78
76
|
hasError
|
|
79
77
|
}) => {
|
|
80
78
|
return i === index && hasError;
|
|
81
79
|
});
|
|
82
80
|
}, []);
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
setStepState(index, 'error');
|
|
81
|
+
const setStepAsVisited = useCallback(index => {
|
|
82
|
+
visitedStepsRef.current.set(index, true);
|
|
83
|
+
}, []);
|
|
84
|
+
useEffect(() => {
|
|
85
|
+
if (!initialActiveIndex) {
|
|
86
|
+
setStepAsVisited(activeIndexRef.current);
|
|
90
87
|
}
|
|
91
|
-
}, [
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
88
|
+
}, [initialActiveIndex, setStepAsVisited]);
|
|
89
|
+
const writeStepsState = useCallback((index = undefined, forStates = ['unknown', 'error']) => {
|
|
90
|
+
for (let i = 0; i < totalStepsRef.current; i++) {
|
|
91
|
+
if (index !== undefined && index !== i) {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
let result = undefined;
|
|
95
|
+
const existingState = storeStepStateRef.current.get(i);
|
|
96
|
+
if (forStates.includes('unknown')) {
|
|
97
|
+
const state = i < activeIndexRef.current && visitedStepsRef.current.get(i) === undefined;
|
|
98
|
+
if (state) {
|
|
99
|
+
result = 'unknown';
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (forStates.includes('error')) {
|
|
103
|
+
const state = hasFieldErrorInStep(i);
|
|
104
|
+
if (state) {
|
|
105
|
+
result = 'error';
|
|
106
|
+
} else if (existingState === 'error') {
|
|
107
|
+
if (i === activeIndexRef.current) {
|
|
108
|
+
result = undefined;
|
|
109
|
+
} else {
|
|
110
|
+
result = existingState;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
storeStepStateRef.current.set(i, result);
|
|
115
|
+
}
|
|
116
|
+
}, [hasFieldErrorInStep]);
|
|
117
|
+
const hasInvalidStepsState = useCallback((index = undefined, forStates = ['unknown', 'error']) => {
|
|
118
|
+
for (let i = 0; i < totalStepsRef.current; i++) {
|
|
119
|
+
if (index !== undefined && index !== i) {
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
const state = storeStepStateRef.current.get(i);
|
|
123
|
+
if (forStates.includes('unknown')) {
|
|
124
|
+
if (state === 'unknown') {
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (forStates.includes('error')) {
|
|
129
|
+
if (state === 'error') {
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
100
133
|
}
|
|
101
|
-
|
|
134
|
+
return false;
|
|
135
|
+
}, []);
|
|
136
|
+
const setFieldError = useCallback((index, path, hasError) => {
|
|
137
|
+
fieldErrorRef.current.set(path, {
|
|
138
|
+
index,
|
|
139
|
+
hasError
|
|
140
|
+
});
|
|
141
|
+
}, []);
|
|
102
142
|
const preventNavigation = useCallback((shouldPrevent = true) => {
|
|
103
143
|
preventNextStepRef.current = shouldPrevent;
|
|
104
144
|
}, []);
|
|
105
145
|
const getStepChangeOptions = useCallback(index => {
|
|
106
|
-
var _stepsRef$current$
|
|
146
|
+
var _stepsRef$current$get;
|
|
107
147
|
const previousIndex = activeIndexRef.current;
|
|
108
148
|
const options = {
|
|
109
149
|
preventNavigation,
|
|
@@ -111,10 +151,10 @@ function WizardContainer(props) {
|
|
|
111
151
|
index: previousIndex
|
|
112
152
|
}
|
|
113
153
|
};
|
|
114
|
-
const id = (_stepsRef$current$
|
|
154
|
+
const id = (_stepsRef$current$get = stepsRef.current.get(index)) === null || _stepsRef$current$get === void 0 ? void 0 : _stepsRef$current$get.id;
|
|
115
155
|
if (id) {
|
|
116
|
-
var _stepsRef$current$
|
|
117
|
-
const previousId = (_stepsRef$current$
|
|
156
|
+
var _stepsRef$current$get2;
|
|
157
|
+
const previousId = (_stepsRef$current$get2 = stepsRef.current.get(previousIndex)) === null || _stepsRef$current$get2 === void 0 ? void 0 : _stepsRef$current$get2.id;
|
|
118
158
|
Object.assign(options, {
|
|
119
159
|
id
|
|
120
160
|
});
|
|
@@ -171,10 +211,11 @@ function WizardContainer(props) {
|
|
|
171
211
|
result = await callOnStepChange(index, mode);
|
|
172
212
|
}
|
|
173
213
|
setFormState('abort');
|
|
174
|
-
setShowAllErrors(bypassOnNavigation ? false :
|
|
214
|
+
setShowAllErrors(bypassOnNavigation ? false : hasInvalidStepsState(index, ['error']));
|
|
175
215
|
if (!preventNextStepRef.current && !(result instanceof Error)) {
|
|
176
216
|
handleLayoutEffect();
|
|
177
217
|
activeIndexRef.current = index;
|
|
218
|
+
setStepAsVisited(activeIndexRef.current);
|
|
178
219
|
forceUpdate();
|
|
179
220
|
}
|
|
180
221
|
preventNextStepRef.current = false;
|
|
@@ -191,13 +232,15 @@ function WizardContainer(props) {
|
|
|
191
232
|
if (bypassOnNavigation) {
|
|
192
233
|
await onSubmit();
|
|
193
234
|
} else {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
235
|
+
if (mode === 'next') {
|
|
236
|
+
writeStepsState(activeIndexRef.current, ['error']);
|
|
237
|
+
if (!hasInvalidStepsState(activeIndexRef.current)) {
|
|
238
|
+
await onSubmit();
|
|
239
|
+
}
|
|
197
240
|
}
|
|
198
241
|
}
|
|
199
242
|
}
|
|
200
|
-
}, [bypassOnNavigation, callOnStepChange, getStepChangeOptions, handleLayoutEffect, handleSubmitCall, isInteractionRef, onStepChange, setFormState, setShowAllErrors]);
|
|
243
|
+
}, [bypassOnNavigation, callOnStepChange, getStepChangeOptions, handleLayoutEffect, handleSubmitCall, hasInvalidStepsState, isInteractionRef, onStepChange, setFormState, setShowAllErrors, setStepAsVisited, writeStepsState]);
|
|
201
244
|
const setActiveIndex = useCallback((index, options) => {
|
|
202
245
|
if (index === activeIndexRef.current) {
|
|
203
246
|
return;
|
|
@@ -227,22 +270,10 @@ function WizardContainer(props) {
|
|
|
227
270
|
error
|
|
228
271
|
});
|
|
229
272
|
}, [setSubmitState]);
|
|
230
|
-
const handleUnknownStepsState = useCallback(() => {
|
|
231
|
-
const index = activeIndexRef.current;
|
|
232
|
-
for (let i = 0; i < totalStepsRef.current; i++) {
|
|
233
|
-
if (!visitedStepsRef.current[i] && stepStatusRef.current[i] === undefined && i < index && i !== index) {
|
|
234
|
-
setStepState(i, 'unknown');
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}, [setStepState]);
|
|
238
|
-
const hasInvalidStepsState = useCallback(forStates => {
|
|
239
|
-
const steps = Object.values(stepStatusRef.current);
|
|
240
|
-
return (forStates || ['unknown', 'error']).some(state => steps.includes(state));
|
|
241
|
-
}, []);
|
|
242
273
|
const handleSubmit = useCallback(({
|
|
243
274
|
preventSubmit
|
|
244
275
|
}) => {
|
|
245
|
-
|
|
276
|
+
submitCountRef.current += 1;
|
|
246
277
|
if (hasInvalidStepsState()) {
|
|
247
278
|
return preventSubmit();
|
|
248
279
|
}
|
|
@@ -250,11 +281,16 @@ function WizardContainer(props) {
|
|
|
250
281
|
handleNext();
|
|
251
282
|
preventSubmit();
|
|
252
283
|
}
|
|
253
|
-
}, [
|
|
284
|
+
}, [hasInvalidStepsState, handleNext]);
|
|
254
285
|
(_dataContext$setHandl = dataContext.setHandleSubmit) === null || _dataContext$setHandl === void 0 ? void 0 : _dataContext$setHandl.call(dataContext, handleSubmit);
|
|
255
286
|
const {
|
|
256
287
|
check
|
|
257
288
|
} = useVisibility();
|
|
289
|
+
const mapOverChildrenRef = useRef(false);
|
|
290
|
+
const enableMapOverChildren = useCallback(() => {
|
|
291
|
+
mapOverChildrenRef.current = true;
|
|
292
|
+
}, []);
|
|
293
|
+
const activeIndex = activeIndexRef.current;
|
|
258
294
|
const providerValue = useMemo(() => {
|
|
259
295
|
return {
|
|
260
296
|
id,
|
|
@@ -264,21 +300,25 @@ function WizardContainer(props) {
|
|
|
264
300
|
stepsRef,
|
|
265
301
|
updateTitlesRef,
|
|
266
302
|
activeIndexRef,
|
|
303
|
+
stepIndexRef,
|
|
267
304
|
totalStepsRef,
|
|
268
|
-
|
|
305
|
+
submitCountRef,
|
|
269
306
|
prerenderFieldProps,
|
|
270
307
|
prerenderFieldPropsRef,
|
|
271
308
|
hasErrorInOtherStepRef,
|
|
272
309
|
keepInDOM,
|
|
310
|
+
enableMapOverChildren,
|
|
311
|
+
mapOverChildrenRef,
|
|
273
312
|
check,
|
|
274
313
|
setActiveIndex,
|
|
275
314
|
handlePrevious,
|
|
276
315
|
hasInvalidStepsState,
|
|
277
|
-
|
|
316
|
+
writeStepsState,
|
|
317
|
+
setFieldError,
|
|
278
318
|
handleNext,
|
|
279
319
|
setFormError
|
|
280
320
|
};
|
|
281
|
-
}, [id, activeIndex, initialActiveIndex, prerenderFieldProps, keepInDOM, check, setActiveIndex, handlePrevious, hasInvalidStepsState,
|
|
321
|
+
}, [id, activeIndex, initialActiveIndex, prerenderFieldProps, keepInDOM, enableMapOverChildren, check, setActiveIndex, handlePrevious, hasInvalidStepsState, writeStepsState, setFieldError, handleNext, setFormError]);
|
|
282
322
|
useLayoutEffect(() => {
|
|
283
323
|
if (id && hasContext) {
|
|
284
324
|
sharedStateRef.current.extend(providerValue);
|
|
@@ -289,8 +329,11 @@ function WizardContainer(props) {
|
|
|
289
329
|
(_updateTitlesRef$curr = updateTitlesRef.current) === null || _updateTitlesRef$curr === void 0 ? void 0 : _updateTitlesRef$curr.call(updateTitlesRef);
|
|
290
330
|
}, [stepsRef.current]);
|
|
291
331
|
const stepsLengthDidChange = useCallback(() => {
|
|
292
|
-
const
|
|
293
|
-
|
|
332
|
+
const tmpCount = tmpStepsRef.current;
|
|
333
|
+
if (tmpCount === undefined) {
|
|
334
|
+
return false;
|
|
335
|
+
}
|
|
336
|
+
const count = totalStepsRef.current;
|
|
294
337
|
return count !== 0 && tmpCount !== 0 && count !== tmpCount;
|
|
295
338
|
}, []);
|
|
296
339
|
useLayoutEffect(() => {
|
|
@@ -299,8 +342,8 @@ function WizardContainer(props) {
|
|
|
299
342
|
callOnStepChange(activeIndexRef.current, 'stepListModified');
|
|
300
343
|
(_executeLayoutAnimati = executeLayoutAnimationRef.current) === null || _executeLayoutAnimati === void 0 ? void 0 : _executeLayoutAnimati.call(executeLayoutAnimationRef);
|
|
301
344
|
}
|
|
302
|
-
tmpStepsRef.current =
|
|
303
|
-
}, [
|
|
345
|
+
tmpStepsRef.current = totalStepsRef.current;
|
|
346
|
+
}, [totalStepsRef.current, callOnStepChange, stepsLengthDidChange]);
|
|
304
347
|
if (!hasContext) {
|
|
305
348
|
warn('You may wrap Wizard.Container in Form.Handler');
|
|
306
349
|
return React.createElement(Handler, null, React.createElement(WizardContainer, _extends({}, props, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WizardContainer.js","names":["React","useContext","useCallback","useRef","useReducer","useMemo","classnames","Space","warn","isAsync","useId","WizardContext","DataContext","Handler","createReferenceKey","useSharedState","useHandleLayoutEffect","useStepAnimation","useVisibility","DisplaySteps","IterateOverSteps","PrerenderFieldPropsOfOtherSteps","useLayoutEffect","window","useEffect","WizardContainer","props","_dataContext$setHandl","className","id","idProp","mode","initialActiveIndex","omitScrollManagement","omitFocusManagement","onStepChange","children","noAnimation","prerenderFieldProps","keepInDOM","validationMode","variant","sidebarId","rest","_objectWithoutProperties","_excluded","dataContext","hasContext","setFormState","handleSubmitCall","setShowAllErrors","setSubmitState","forceUpdate","activeIndexRef","totalStepsRef","NaN","stepStatusRef","hasVisibleErrorRef","hasErrorInOtherStepRef","visitedStepsRef","elementRef","stepElementRef","preventNextStepRef","stepsRef","tmpStepsRef","updateTitlesRef","prerenderFieldPropsRef","bypassOnNavigation","sharedStateRef","current","undefined","setStepState","index","state","hasFieldErrorInStep","Object","values","some","i","hasError","revealError","path","activeIndex","hasErrorInActiveStep","currentState","includes","preventNavigation","shouldPrevent","getStepChangeOptions","_stepsRef$current$ind","previousIndex","options","previousStep","_stepsRef$current$pre","previousId","assign","callOnStepChange","setFocus","scrollToTop","isInteractionRef","executeLayoutAnimationRef","handleLayoutEffect","handleStepChange","skipErrorCheck","skipStepChangeCall","skipStepChangeCallBeforeMounted","skipStepChangeCallFromHook","didSubmit","onSubmit","_sharedStateRef$curre","_sharedStateRef$curre2","_sharedStateRef$curre3","data","call","result","Error","skipFieldValidation","enableAsyncBehavior","setActiveIndex","_objectSpread","handlePrevious","handleNext","handleChange","current_step","setFormError","error","handleUnknownStepsState","hasInvalidStepsState","forStates","steps","handleSubmit","preventSubmit","setHandleSubmit","check","providerValue","extend","_updateTitlesRef$curr","stepsLengthDidChange","count","keys","length","tmpCount","_executeLayoutAnimati","createElement","_extends","Provider","value","innerRef","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/WizardContainer.tsx"],"sourcesContent":["import React, {\n useContext,\n useCallback,\n useRef,\n useReducer,\n useMemo,\n} from 'react'\nimport classnames from 'classnames'\nimport { Space } from '../../../../components'\nimport { warn } from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useId from '../../../../shared/helpers/useId'\nimport WizardContext, {\n WizardContextState,\n} from '../Context/WizardContext'\nimport type {\n OnStepChange,\n OnStepChangeOptions,\n OnStepsChangeMode,\n SetActiveIndexOptions,\n StepIndex,\n Steps,\n InternalFieldError,\n InternalStepStatus,\n InternalStepStatuses,\n InternalVisitedSteps,\n} from '../Context/types'\nimport DataContext from '../../DataContext/Context'\nimport Handler from '../../Form/Handler/Handler'\nimport {\n SharedStateReturn,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useHandleLayoutEffect from './useHandleLayoutEffect'\nimport useStepAnimation from './useStepAnimation'\nimport { ComponentProps } from '../../types'\nimport useVisibility from '../../Form/Visibility/useVisibility'\nimport { DisplaySteps } from './DisplaySteps'\nimport { IterateOverSteps } from './IterateOverSteps'\nimport { PrerenderFieldPropsOfOtherSteps } from './PrerenderFieldPropsOfOtherSteps'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type Props = ComponentProps & {\n id?: string\n\n /**\n * The mode of the wizard.\n */\n mode?: 'static' | 'strict' | 'loose'\n\n /**\n * If set to `true`, the wizard will not scroll to the first step when the user clicks on the next button.\n */\n omitScrollManagement?: boolean\n\n /**\n * If set to `true`, the wizard will not focus on the next step when the user clicks on the next button.\n */\n omitFocusManagement?: boolean\n\n /**\n * The index of the first step to be rendered.\n */\n initialActiveIndex?: StepIndex\n\n /**\n * The callback function that will be called when the user clicks on the next button.\n */\n onStepChange?: OnStepChange\n\n /**\n * The sidebar variant.\n */\n variant?: 'sidebar' | 'drawer'\n sidebarId?: string\n\n /**\n * If set to `true`, the wizard will not animate the steps.\n */\n noAnimation?: boolean\n\n /**\n * If set to `true`, the wizard will not unmount the steps when navigating back and forth.\n */\n keepInDOM?: boolean\n\n /**\n * If set to `true`, the wizard pre-render all steps so the props of each field is available in the data context.\n * Defaults to `true`.\n */\n prerenderFieldProps?: boolean\n\n /**\n * Determines if and how the validation will be bypassed.\n */\n validationMode?: 'bypassOnNavigation'\n\n /**\n * The children of the wizard container.\n */\n children: React.ReactNode\n\n /**\n * @deprecated Is enabled by default. You can disable it with \"omitScrollManagement\"\n */\n scrollTopOnStepChange?: boolean\n}\n\nfunction WizardContainer(props: Props) {\n const {\n className,\n id: idProp,\n mode = 'strict',\n initialActiveIndex = 0,\n omitScrollManagement,\n omitFocusManagement,\n onStepChange,\n children,\n noAnimation = true,\n prerenderFieldProps = true,\n keepInDOM,\n validationMode,\n variant = 'sidebar',\n sidebarId,\n ...rest\n } = props\n\n const dataContext = useContext(DataContext)\n const {\n hasContext,\n setFormState,\n handleSubmitCall,\n setShowAllErrors,\n setSubmitState,\n } = dataContext\n\n const id = useId(idProp)\n const [, forceUpdate] = useReducer(() => ({}), {})\n const activeIndexRef = useRef<StepIndex>(initialActiveIndex)\n const totalStepsRef = useRef<number>(NaN)\n const stepStatusRef = useRef<InternalStepStatuses>({})\n const hasVisibleErrorRef = useRef<InternalFieldError>({})\n const hasErrorInOtherStepRef = useRef<boolean>(false)\n const visitedStepsRef = useRef<InternalVisitedSteps>({})\n const elementRef = useRef<HTMLElement>()\n const stepElementRef = useRef<HTMLElement>()\n const preventNextStepRef = useRef(false)\n const stepsRef = useRef<Steps>({})\n const tmpStepsRef = useRef<Steps>({})\n const updateTitlesRef = useRef<() => void>()\n const prerenderFieldPropsRef = useRef<\n Record<string, () => React.ReactElement>\n >({})\n\n const bypassOnNavigation = validationMode === 'bypassOnNavigation'\n\n // - Handle shared state\n const sharedStateRef =\n useRef<\n SharedStateReturn<\n WizardContextState & { onStepChange?: OnStepChange }\n >\n >()\n sharedStateRef.current = useSharedState<WizardContextState>(\n hasContext && id ? createReferenceKey(id, 'wizard') : undefined\n )\n\n visitedStepsRef.current[activeIndexRef.current] = true\n\n const setStepState = useCallback(\n (index: number, state: InternalStepStatus) => {\n stepStatusRef.current[index] = state\n },\n []\n )\n const hasFieldErrorInStep = useCallback((index: StepIndex) => {\n return Object.values(hasVisibleErrorRef.current).some(\n ({ index: i, hasError }) => {\n return i === index && hasError\n }\n )\n }, [])\n const revealError: WizardContextState['revealError'] = useCallback(\n (index, path, hasError) => {\n hasVisibleErrorRef.current[path] = { index, hasError }\n\n if (hasFieldErrorInStep(index)) {\n setStepState(index, 'error')\n }\n },\n [hasFieldErrorInStep, setStepState]\n )\n\n const activeIndex = activeIndexRef.current\n const hasErrorInActiveStep = hasFieldErrorInStep(activeIndex)\n useMemo(() => {\n const currentState = stepStatusRef.current[activeIndex]\n if (\n !hasErrorInActiveStep &&\n ['error', 'valid'].includes(currentState)\n ) {\n setStepState(activeIndex, 'valid')\n } else {\n setStepState(activeIndex, hasErrorInActiveStep ? 'error' : undefined)\n }\n }, [activeIndex, hasErrorInActiveStep, setStepState])\n\n const preventNavigation = useCallback((shouldPrevent = true) => {\n preventNextStepRef.current = shouldPrevent\n }, [])\n\n const getStepChangeOptions: (index: StepIndex) => OnStepChangeOptions =\n useCallback(\n (index) => {\n const previousIndex = activeIndexRef.current\n const options = {\n preventNavigation,\n previousStep: { index: previousIndex },\n }\n\n const id = stepsRef.current[index]?.id\n if (id) {\n const previousId = stepsRef.current[previousIndex]?.id\n Object.assign(options, { id })\n Object.assign(options.previousStep, { id: previousId })\n }\n\n return options\n },\n [preventNavigation]\n )\n\n const callOnStepChange = useCallback(\n async (index: StepIndex, mode: OnStepsChangeMode) => {\n if (isAsync(onStepChange)) {\n return await onStepChange(index, mode, getStepChangeOptions(index))\n }\n\n return onStepChange?.(index, mode, getStepChangeOptions(index))\n },\n [getStepChangeOptions, onStepChange]\n )\n\n const { setFocus, scrollToTop, isInteractionRef } =\n useHandleLayoutEffect({ elementRef, stepElementRef })\n\n const executeLayoutAnimationRef = useRef<() => void>()\n useStepAnimation({\n activeIndexRef,\n stepElementRef,\n executeLayoutAnimationRef,\n })\n\n const handleLayoutEffect = useCallback(() => {\n if (!omitFocusManagement) {\n setFocus()\n }\n if (!omitScrollManagement) {\n scrollToTop()\n }\n }, [omitScrollManagement, omitFocusManagement, setFocus, scrollToTop])\n\n const handleStepChange = useCallback(\n async ({\n index,\n skipErrorCheck,\n skipStepChangeCall,\n skipStepChangeCallBeforeMounted,\n skipStepChangeCallFromHook,\n mode,\n }: {\n index: StepIndex\n mode: OnStepsChangeMode\n } & SetActiveIndexOptions) => {\n let didSubmit = false\n const onSubmit = async () => {\n if (!skipStepChangeCallFromHook) {\n sharedStateRef.current?.data?.onStepChange?.(\n index,\n mode,\n getStepChangeOptions(index)\n )\n }\n\n let result = undefined\n\n if (\n !skipStepChangeCall &&\n !(skipStepChangeCallBeforeMounted && !isInteractionRef.current)\n ) {\n result = await callOnStepChange(index, mode)\n }\n\n // Hide async indicator\n setFormState('abort')\n\n // Set the \"showAllErrors\" to the step we got to\n setShowAllErrors(\n bypassOnNavigation\n ? false\n : stepStatusRef.current[index] === 'error'\n )\n\n if (!preventNextStepRef.current && !(result instanceof Error)) {\n handleLayoutEffect()\n\n activeIndexRef.current = index\n forceUpdate()\n }\n\n preventNextStepRef.current = false\n didSubmit = true\n\n return result\n }\n\n await handleSubmitCall({\n skipErrorCheck,\n skipFieldValidation: skipErrorCheck,\n enableAsyncBehavior: isAsync(onStepChange),\n onSubmit: bypassOnNavigation ? () => null : onSubmit,\n })\n\n if (!didSubmit) {\n if (bypassOnNavigation) {\n await onSubmit()\n } else {\n // In case steps were visited before, or they use the \"keepInDOM\" prop,\n // we need to check the step status, because other steps may report an error,\n // so the user will not be able to navigate to the next step,\n // because the form contains errors. Thats why onSubmit will not be called via handleSubmitCall.\n const state = stepStatusRef.current[activeIndexRef.current]\n if (mode === 'next' && state === 'valid') {\n await onSubmit()\n }\n }\n }\n },\n [\n bypassOnNavigation,\n callOnStepChange,\n getStepChangeOptions,\n handleLayoutEffect,\n handleSubmitCall,\n isInteractionRef,\n onStepChange,\n setFormState,\n setShowAllErrors,\n ]\n )\n\n const setActiveIndex = useCallback(\n (index: StepIndex, options?: SetActiveIndexOptions) => {\n if (index === activeIndexRef.current) {\n return\n }\n\n const mode = index > activeIndexRef.current ? 'next' : 'previous'\n\n handleStepChange({\n index,\n skipErrorCheck: mode === 'previous',\n mode,\n ...options,\n })\n },\n [handleStepChange]\n )\n\n const handlePrevious = useCallback(() => {\n setActiveIndex(activeIndexRef.current - 1)\n }, [setActiveIndex])\n\n const handleNext = useCallback(() => {\n setActiveIndex(activeIndexRef.current + 1)\n }, [setActiveIndex])\n\n const handleChange = useCallback(\n ({ current_step }) => {\n setActiveIndex(\n current_step,\n mode === 'loose' ? { skipErrorCheck: true } : undefined\n )\n },\n [mode, setActiveIndex]\n )\n\n const setFormError = useCallback(\n (error: Error) => {\n setSubmitState?.({ error })\n },\n [setSubmitState]\n )\n\n const handleUnknownStepsState = useCallback(() => {\n const index = activeIndexRef.current\n for (let i = 0; i < totalStepsRef.current; i++) {\n // - Check if the step was visited before,\n // - if, not check if the step has already an state,\n // - if, not check if the step is before the active step and and below.\n // - Only then set the state to \"unknown\"\n if (\n !visitedStepsRef.current[i] &&\n stepStatusRef.current[i] === undefined &&\n i < index &&\n i !== index\n ) {\n setStepState(i, 'unknown')\n }\n }\n }, [setStepState])\n\n const hasInvalidStepsState: WizardContextState['hasInvalidStepsState'] =\n useCallback((forStates) => {\n const steps = Object.values(stepStatusRef.current)\n return (forStates || ['unknown', 'error']).some((state) =>\n steps.includes(state)\n )\n }, [])\n\n const handleSubmit = useCallback(\n ({ preventSubmit }) => {\n handleUnknownStepsState()\n\n // - If there is an unknown step state, we need to prevent the submit\n if (hasInvalidStepsState()) {\n return preventSubmit()\n }\n\n if (activeIndexRef.current + 1 < totalStepsRef.current) {\n handleNext()\n preventSubmit()\n }\n },\n [handleUnknownStepsState, hasInvalidStepsState, handleNext]\n )\n dataContext.setHandleSubmit?.(handleSubmit)\n\n const { check } = useVisibility()\n\n const providerValue = useMemo<WizardContextState>(() => {\n return {\n id,\n activeIndex,\n initialActiveIndex,\n stepElementRef,\n stepsRef,\n updateTitlesRef,\n activeIndexRef,\n totalStepsRef,\n stepStatusRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n hasErrorInOtherStepRef,\n keepInDOM,\n check,\n setActiveIndex,\n handlePrevious,\n hasInvalidStepsState,\n revealError,\n handleNext,\n setFormError,\n }\n }, [\n id,\n activeIndex,\n initialActiveIndex,\n prerenderFieldProps,\n keepInDOM,\n check,\n setActiveIndex,\n handlePrevious,\n hasInvalidStepsState,\n revealError,\n handleNext,\n setFormError,\n ])\n\n // - Handle shared state\n useLayoutEffect(() => {\n if (id && hasContext) {\n sharedStateRef.current.extend(providerValue)\n }\n }, [hasContext, id, providerValue])\n\n useLayoutEffect(() => {\n updateTitlesRef.current?.()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stepsRef.current])\n\n const stepsLengthDidChange = useCallback(() => {\n const count = Object.keys(stepsRef.current).length\n const tmpCount = Object.keys(tmpStepsRef.current).length\n return count !== 0 && tmpCount !== 0 && count !== tmpCount\n }, [])\n\n // - Call onStepChange when step gets replaced or added (e.g. via includeWhen)\n useLayoutEffect(() => {\n if (stepsLengthDidChange()) {\n callOnStepChange(activeIndexRef.current, 'stepListModified')\n executeLayoutAnimationRef.current?.()\n }\n tmpStepsRef.current = stepsRef.current\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stepsRef.current, callOnStepChange, stepsLengthDidChange])\n\n if (!hasContext) {\n warn('You may wrap Wizard.Container in Form.Handler')\n return (\n <Handler>\n <WizardContainer {...props} id={id} />\n </Handler>\n )\n }\n\n return (\n <WizardContext.Provider value={providerValue}>\n <Space\n className={classnames(\n 'dnb-forms-wizard-layout',\n `dnb-forms-wizard-layout--${variant}`,\n className\n )}\n innerRef={elementRef}\n {...rest}\n >\n <DisplaySteps\n mode={mode}\n variant={variant}\n noAnimation={noAnimation}\n handleChange={handleChange}\n sidebarId={sidebarId}\n />\n\n <div className=\"dnb-forms-wizard-layout__contents\">\n <IterateOverSteps>{children}</IterateOverSteps>\n </div>\n </Space>\n\n {prerenderFieldProps && !keepInDOM && (\n <PrerenderFieldPropsOfOtherSteps\n prerenderFieldPropsRef={prerenderFieldPropsRef}\n />\n )}\n </WizardContext.Provider>\n )\n}\n\nWizardContainer._supportsSpacingProps = true\n\nexport default WizardContainer\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"WizardContainer.js","names":["React","useContext","useCallback","useRef","useReducer","useMemo","useEffect","classnames","Space","warn","isAsync","useId","WizardContext","DataContext","Handler","createReferenceKey","useSharedState","useHandleLayoutEffect","useStepAnimation","useVisibility","DisplaySteps","IterateOverSteps","PrerenderFieldPropsOfOtherSteps","useLayoutEffect","window","WizardContainer","props","_dataContext$setHandl","className","id","idProp","mode","initialActiveIndex","omitScrollManagement","omitFocusManagement","onStepChange","children","noAnimation","prerenderFieldProps","keepInDOM","validationMode","variant","sidebarId","rest","_objectWithoutProperties","_excluded","dataContext","hasContext","setFormState","handleSubmitCall","setShowAllErrors","setSubmitState","forceUpdate","activeIndexRef","totalStepsRef","NaN","submitCountRef","visitedStepsRef","Map","fieldErrorRef","storeStepStateRef","hasErrorInOtherStepRef","elementRef","stepElementRef","preventNextStepRef","stepsRef","tmpStepsRef","stepIndexRef","updateTitlesRef","prerenderFieldPropsRef","bypassOnNavigation","sharedStateRef","current","undefined","hasFieldErrorInStep","index","Array","from","values","some","i","hasError","setStepAsVisited","set","writeStepsState","forStates","result","existingState","get","includes","state","hasInvalidStepsState","setFieldError","path","preventNavigation","shouldPrevent","getStepChangeOptions","_stepsRef$current$get","previousIndex","options","previousStep","_stepsRef$current$get2","previousId","Object","assign","callOnStepChange","setFocus","scrollToTop","isInteractionRef","executeLayoutAnimationRef","handleLayoutEffect","handleStepChange","skipErrorCheck","skipStepChangeCall","skipStepChangeCallBeforeMounted","skipStepChangeCallFromHook","didSubmit","onSubmit","_sharedStateRef$curre","_sharedStateRef$curre2","_sharedStateRef$curre3","data","call","Error","skipFieldValidation","enableAsyncBehavior","setActiveIndex","_objectSpread","handlePrevious","handleNext","handleChange","current_step","setFormError","error","handleSubmit","preventSubmit","setHandleSubmit","check","mapOverChildrenRef","enableMapOverChildren","activeIndex","providerValue","extend","_updateTitlesRef$curr","stepsLengthDidChange","tmpCount","count","_executeLayoutAnimati","createElement","_extends","Provider","value","innerRef","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/WizardContainer.tsx"],"sourcesContent":["import React, {\n useContext,\n useCallback,\n useRef,\n useReducer,\n useMemo,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\nimport { Space } from '../../../../components'\nimport { warn } from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useId from '../../../../shared/helpers/useId'\nimport WizardContext, {\n WizardContextState,\n} from '../Context/WizardContext'\nimport type {\n OnStepChange,\n OnStepChangeOptions,\n OnStepsChangeMode,\n SetActiveIndexOptions,\n StepIndex,\n Steps,\n InternalFieldError,\n InternalVisitedSteps,\n InternalStepStatus,\n InternalStepStatuses,\n} from '../Context/types'\nimport DataContext from '../../DataContext/Context'\nimport Handler from '../../Form/Handler/Handler'\nimport {\n SharedStateReturn,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useHandleLayoutEffect from './useHandleLayoutEffect'\nimport useStepAnimation from './useStepAnimation'\nimport { ComponentProps } from '../../types'\nimport useVisibility from '../../Form/Visibility/useVisibility'\nimport { DisplaySteps } from './DisplaySteps'\nimport { IterateOverSteps } from './IterateOverSteps'\nimport { PrerenderFieldPropsOfOtherSteps } from './PrerenderFieldPropsOfOtherSteps'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type Props = ComponentProps & {\n id?: string\n\n /**\n * The mode of the wizard.\n */\n mode?: 'static' | 'strict' | 'loose'\n\n /**\n * If set to `true`, the wizard will not scroll to the first step when the user clicks on the next button.\n */\n omitScrollManagement?: boolean\n\n /**\n * If set to `true`, the wizard will not focus on the next step when the user clicks on the next button.\n */\n omitFocusManagement?: boolean\n\n /**\n * The index of the first step to be rendered.\n */\n initialActiveIndex?: StepIndex\n\n /**\n * The callback function that will be called when the user clicks on the next button.\n */\n onStepChange?: OnStepChange\n\n /**\n * The sidebar variant.\n */\n variant?: 'sidebar' | 'drawer'\n sidebarId?: string\n\n /**\n * If set to `true`, the wizard will not animate the steps.\n */\n noAnimation?: boolean\n\n /**\n * If set to `true`, the wizard will not unmount the steps when navigating back and forth.\n */\n keepInDOM?: boolean\n\n /**\n * If set to `true`, the wizard pre-render all steps so the props of each field is available in the data context.\n * Defaults to `true`.\n */\n prerenderFieldProps?: boolean\n\n /**\n * Determines if and how the validation will be bypassed.\n */\n validationMode?: 'bypassOnNavigation'\n\n /**\n * The children of the wizard container.\n */\n children: React.ReactNode\n\n /**\n * @deprecated Is enabled by default. You can disable it with \"omitScrollManagement\"\n */\n scrollTopOnStepChange?: boolean\n}\n\nfunction WizardContainer(props: Props) {\n const {\n className,\n id: idProp,\n mode = 'strict',\n initialActiveIndex = 0,\n omitScrollManagement,\n omitFocusManagement,\n onStepChange,\n children,\n noAnimation = true,\n prerenderFieldProps = true,\n keepInDOM,\n validationMode,\n variant = 'sidebar',\n sidebarId,\n ...rest\n } = props\n\n const dataContext = useContext(DataContext)\n const {\n hasContext,\n setFormState,\n handleSubmitCall,\n setShowAllErrors,\n setSubmitState,\n } = dataContext\n\n const id = useId(idProp)\n const [, forceUpdate] = useReducer(() => ({}), {})\n const activeIndexRef = useRef<StepIndex>(initialActiveIndex)\n const totalStepsRef = useRef<number>(NaN)\n const submitCountRef = useRef(0)\n const visitedStepsRef = useRef<InternalVisitedSteps>(new Map())\n const fieldErrorRef = useRef<InternalFieldError>(new Map())\n const storeStepStateRef = useRef<InternalStepStatuses>(new Map())\n const hasErrorInOtherStepRef = useRef<boolean>(false)\n const elementRef = useRef<HTMLElement>()\n const stepElementRef = useRef<HTMLElement>()\n const preventNextStepRef = useRef(false)\n const stepsRef = useRef<Steps>(new Map())\n const tmpStepsRef = useRef<number>()\n const stepIndexRef = useRef<number>(-1)\n const updateTitlesRef = useRef<() => void>()\n const prerenderFieldPropsRef = useRef<\n Record<string, () => React.ReactElement>\n >({})\n\n const bypassOnNavigation = validationMode === 'bypassOnNavigation'\n\n // - Handle shared state\n const sharedStateRef =\n useRef<\n SharedStateReturn<\n WizardContextState & { onStepChange?: OnStepChange }\n >\n >()\n sharedStateRef.current = useSharedState<WizardContextState>(\n hasContext && id ? createReferenceKey(id, 'wizard') : undefined\n )\n\n const hasFieldErrorInStep = useCallback((index: StepIndex) => {\n return Array.from(fieldErrorRef.current.values()).some(\n ({ index: i, hasError }) => {\n return i === index && hasError\n }\n )\n }, [])\n\n const setStepAsVisited = useCallback((index: StepIndex) => {\n visitedStepsRef.current.set(index, true)\n }, [])\n\n useEffect(() => {\n if (!initialActiveIndex) {\n setStepAsVisited(activeIndexRef.current)\n }\n }, [initialActiveIndex, setStepAsVisited])\n\n /**\n * - This method is used to check if a step (or any step) has an invalid state.\n *\n * If a step was not visited before, it will be set to \"unknown\".\n * If a step was visited before, but has an invalid state, it will be set to \"error\".\n * If an index is given, it will check if the step, with the given index, has an invalid state.\n */\n const writeStepsState: WizardContextState['writeStepsState'] =\n useCallback(\n (index = undefined, forStates = ['unknown', 'error']) => {\n for (let i = 0; i < totalStepsRef.current; i++) {\n if (index !== undefined && index !== i) {\n continue\n }\n\n let result: InternalStepStatus = undefined\n const existingState = storeStepStateRef.current.get(i)\n\n if (forStates.includes('unknown')) {\n const state =\n i < activeIndexRef.current &&\n visitedStepsRef.current.get(i) === undefined\n if (state) {\n result = 'unknown'\n }\n }\n\n if (forStates.includes('error')) {\n const state = hasFieldErrorInStep(i)\n if (state) {\n result = 'error'\n } else if (existingState === 'error') {\n if (i === activeIndexRef.current) {\n result = undefined\n } else {\n result = existingState\n }\n }\n }\n\n storeStepStateRef.current.set(i, result)\n }\n },\n [hasFieldErrorInStep]\n )\n\n const hasInvalidStepsState: WizardContextState['hasInvalidStepsState'] =\n useCallback((index = undefined, forStates = ['unknown', 'error']) => {\n for (let i = 0; i < totalStepsRef.current; i++) {\n if (index !== undefined && index !== i) {\n continue\n }\n\n const state = storeStepStateRef.current.get(i)\n\n if (forStates.includes('unknown')) {\n if (state === 'unknown') {\n return true\n }\n }\n\n if (forStates.includes('error')) {\n if (state === 'error') {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n const setFieldError: WizardContextState['setFieldError'] = useCallback(\n (index, path, hasError) => {\n fieldErrorRef.current.set(path, { index, hasError })\n },\n []\n )\n\n const preventNavigation = useCallback((shouldPrevent = true) => {\n preventNextStepRef.current = shouldPrevent\n }, [])\n\n const getStepChangeOptions: (index: StepIndex) => OnStepChangeOptions =\n useCallback(\n (index) => {\n const previousIndex = activeIndexRef.current\n const options = {\n preventNavigation,\n previousStep: { index: previousIndex },\n }\n\n const id = stepsRef.current.get(index)?.id\n if (id) {\n const previousId = stepsRef.current.get(previousIndex)?.id\n Object.assign(options, { id })\n Object.assign(options.previousStep, { id: previousId })\n }\n\n return options\n },\n [preventNavigation]\n )\n\n const callOnStepChange = useCallback(\n async (index: StepIndex, mode: OnStepsChangeMode) => {\n if (isAsync(onStepChange)) {\n return await onStepChange(index, mode, getStepChangeOptions(index))\n }\n\n return onStepChange?.(index, mode, getStepChangeOptions(index))\n },\n [getStepChangeOptions, onStepChange]\n )\n\n const { setFocus, scrollToTop, isInteractionRef } =\n useHandleLayoutEffect({ elementRef, stepElementRef })\n\n const executeLayoutAnimationRef = useRef<() => void>()\n useStepAnimation({\n activeIndexRef,\n stepElementRef,\n executeLayoutAnimationRef,\n })\n\n const handleLayoutEffect = useCallback(() => {\n if (!omitFocusManagement) {\n setFocus()\n }\n if (!omitScrollManagement) {\n scrollToTop()\n }\n }, [omitScrollManagement, omitFocusManagement, setFocus, scrollToTop])\n\n const handleStepChange = useCallback(\n async ({\n index,\n skipErrorCheck,\n skipStepChangeCall,\n skipStepChangeCallBeforeMounted,\n skipStepChangeCallFromHook,\n mode,\n }: {\n index: StepIndex\n mode: OnStepsChangeMode\n } & SetActiveIndexOptions) => {\n let didSubmit = false\n const onSubmit = async () => {\n if (!skipStepChangeCallFromHook) {\n sharedStateRef.current?.data?.onStepChange?.(\n index,\n mode,\n getStepChangeOptions(index)\n )\n }\n\n let result = undefined\n\n if (\n !skipStepChangeCall &&\n !(skipStepChangeCallBeforeMounted && !isInteractionRef.current)\n ) {\n result = await callOnStepChange(index, mode)\n }\n\n // Hide async indicator\n setFormState('abort')\n\n // Set the \"showAllErrors\" to the step we got to\n setShowAllErrors(\n bypassOnNavigation\n ? false\n : hasInvalidStepsState(index, ['error'])\n )\n\n if (!preventNextStepRef.current && !(result instanceof Error)) {\n handleLayoutEffect()\n\n activeIndexRef.current = index\n setStepAsVisited(activeIndexRef.current)\n forceUpdate()\n }\n\n preventNextStepRef.current = false\n didSubmit = true\n\n return result\n }\n\n await handleSubmitCall({\n skipErrorCheck,\n skipFieldValidation: skipErrorCheck,\n enableAsyncBehavior: isAsync(onStepChange),\n onSubmit: bypassOnNavigation ? () => null : onSubmit,\n })\n\n if (!didSubmit) {\n if (bypassOnNavigation) {\n await onSubmit()\n } else {\n if (mode === 'next') {\n // First we need to write the steps state for the current active index.\n writeStepsState(activeIndexRef.current, ['error'])\n\n // In case steps were visited before, or they use the \"keepInDOM\" prop,\n // we need to check the step status, because other steps may report an error,\n // so the user will not be able to navigate to the next step,\n // because the form contains errors. Thats why onSubmit will not be called via handleSubmitCall.\n if (!hasInvalidStepsState(activeIndexRef.current)) {\n await onSubmit()\n }\n }\n }\n }\n },\n [\n bypassOnNavigation,\n callOnStepChange,\n getStepChangeOptions,\n handleLayoutEffect,\n handleSubmitCall,\n hasInvalidStepsState,\n isInteractionRef,\n onStepChange,\n setFormState,\n setShowAllErrors,\n setStepAsVisited,\n writeStepsState,\n ]\n )\n\n const setActiveIndex = useCallback(\n (index: StepIndex, options?: SetActiveIndexOptions) => {\n if (index === activeIndexRef.current) {\n return\n }\n\n const mode = index > activeIndexRef.current ? 'next' : 'previous'\n\n handleStepChange({\n index,\n skipErrorCheck: mode === 'previous',\n mode,\n ...options,\n })\n },\n [handleStepChange]\n )\n\n const handlePrevious = useCallback(() => {\n setActiveIndex(activeIndexRef.current - 1)\n }, [setActiveIndex])\n\n const handleNext = useCallback(() => {\n setActiveIndex(activeIndexRef.current + 1)\n }, [setActiveIndex])\n\n const handleChange = useCallback(\n ({ current_step }) => {\n setActiveIndex(\n current_step,\n mode === 'loose' ? { skipErrorCheck: true } : undefined\n )\n },\n [mode, setActiveIndex]\n )\n\n const setFormError = useCallback(\n (error: Error) => {\n setSubmitState?.({ error })\n },\n [setSubmitState]\n )\n\n const handleSubmit = useCallback(\n ({ preventSubmit }) => {\n submitCountRef.current += 1\n\n // - If there is an unknown step state, we need to prevent the submit\n if (hasInvalidStepsState()) {\n return preventSubmit()\n }\n\n if (activeIndexRef.current + 1 < totalStepsRef.current) {\n handleNext()\n preventSubmit()\n }\n },\n [hasInvalidStepsState, handleNext]\n )\n dataContext.setHandleSubmit?.(handleSubmit)\n\n // NB: useVisibility needs to be imported here,\n // because it need the outer context to be available.\n const { check } = useVisibility()\n\n // This is used to map over the children and to give them the correct index,\n // in case it could be given properly, like if no id or title was given in React.StrictMode.\n const mapOverChildrenRef = useRef(false)\n const enableMapOverChildren = useCallback(() => {\n mapOverChildrenRef.current = true\n }, [])\n\n const activeIndex = activeIndexRef.current\n const providerValue = useMemo<WizardContextState>(() => {\n return {\n id,\n activeIndex,\n initialActiveIndex,\n stepElementRef,\n stepsRef,\n updateTitlesRef,\n activeIndexRef,\n stepIndexRef,\n totalStepsRef,\n submitCountRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n hasErrorInOtherStepRef,\n keepInDOM,\n enableMapOverChildren,\n mapOverChildrenRef,\n check,\n setActiveIndex,\n handlePrevious,\n hasInvalidStepsState,\n writeStepsState,\n setFieldError,\n handleNext,\n setFormError,\n } satisfies WizardContextState\n }, [\n id,\n activeIndex,\n initialActiveIndex,\n prerenderFieldProps,\n keepInDOM,\n enableMapOverChildren,\n check,\n setActiveIndex,\n handlePrevious,\n hasInvalidStepsState,\n writeStepsState,\n setFieldError,\n handleNext,\n setFormError,\n ])\n\n // - Handle shared state\n useLayoutEffect(() => {\n if (id && hasContext) {\n sharedStateRef.current.extend(providerValue)\n }\n }, [hasContext, id, providerValue])\n\n useLayoutEffect(() => {\n updateTitlesRef.current?.()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stepsRef.current])\n\n const stepsLengthDidChange = useCallback(() => {\n const tmpCount = tmpStepsRef.current\n if (tmpCount === undefined) {\n return false\n }\n const count = totalStepsRef.current\n return count !== 0 && tmpCount !== 0 && count !== tmpCount\n }, [])\n\n // - Call onStepChange when step gets replaced or added (e.g. via includeWhen)\n useLayoutEffect(() => {\n if (stepsLengthDidChange()) {\n callOnStepChange(activeIndexRef.current, 'stepListModified')\n executeLayoutAnimationRef.current?.()\n }\n\n tmpStepsRef.current = totalStepsRef.current\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n totalStepsRef.current, // Include the totalStepsRef.current to trigger the useEffect on change\n callOnStepChange,\n stepsLengthDidChange,\n ])\n\n if (!hasContext) {\n warn('You may wrap Wizard.Container in Form.Handler')\n return (\n <Handler>\n <WizardContainer {...props} id={id} />\n </Handler>\n )\n }\n\n return (\n <WizardContext.Provider value={providerValue}>\n <Space\n className={classnames(\n 'dnb-forms-wizard-layout',\n `dnb-forms-wizard-layout--${variant}`,\n className\n )}\n innerRef={elementRef}\n {...rest}\n >\n <DisplaySteps\n mode={mode}\n variant={variant}\n noAnimation={noAnimation}\n handleChange={handleChange}\n sidebarId={sidebarId}\n />\n\n <div className=\"dnb-forms-wizard-layout__contents\">\n <IterateOverSteps>{children}</IterateOverSteps>\n </div>\n </Space>\n\n {prerenderFieldProps && !keepInDOM && (\n <PrerenderFieldPropsOfOtherSteps\n prerenderFieldPropsRef={prerenderFieldPropsRef}\n />\n )}\n </WizardContext.Provider>\n )\n}\n\nWizardContainer._supportsSpacingProps = true\n\nexport default WizardContainer\n"],"mappings":"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","ignoreList":[]}
|