Skip to content

Commit

Permalink
fix(FormRenderer): Include values in the Wizard onNavigating event (#980
Browse files Browse the repository at this point in the history
)
  • Loading branch information
jessieweiyi authored Sep 27, 2023
1 parent 27653f0 commit 0dfccab
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
******************************************************************************************************************** */
import { ComponentMeta } from '@storybook/react';
import Box from '@cloudscape-design/components/box';
import { WizardProps as WizardComponentProps } from '@cloudscape-design/components/wizard';
import { NonCancelableCustomEvent } from '@cloudscape-design/components/internal/events';
import FormRenderer, { componentTypes, validatorTypes } from '../..';
import { NavigatingEventDetail } from '.';
import { Template, DEFAULT_ARGS } from '../../index.stories';

export default {
Expand Down Expand Up @@ -169,7 +169,7 @@ NavigatingEvent.args = {
fields: [
{
...Default.args.schema!.fields[0],
onNavigating: (event: NonCancelableCustomEvent<WizardComponentProps.NavigateDetail>) => {
onNavigating: (event: NonCancelableCustomEvent<NavigatingEventDetail>) => {
return new Promise((resolve) => {
window.setTimeout(() => {
if (event.detail.requestedStepIndex >= 2) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ import { Field } from '../../types';
import WizardSteps from './components/WizardSteps';
import { useFormRendererContext } from '../../formRendererContext';

export type NavigatingEventDetail = WizardComponentProps.NavigateDetail & { values: Record<string, any> };

export interface NavigatingEventResponse {
continued: boolean;
errorText?: string;
Expand All @@ -33,9 +35,7 @@ export interface WizardProps {
activeStepIndex: WizardComponentProps['activeStepIndex'];
isReadOnly?: boolean;
isDisabled?: boolean;
onNavigating?: (
event: NonCancelableCustomEvent<WizardComponentProps.NavigateDetail>
) => Promise<NavigatingEventResponse>;
onNavigating?: (event: NonCancelableCustomEvent<NavigatingEventDetail>) => Promise<NavigatingEventResponse>;
isLoadingNextStep?: WizardComponentProps['isLoadingNextStep'];
}

Expand Down Expand Up @@ -108,7 +108,13 @@ const Wizard: FC<WizardProps> = ({
async (event: NonCancelableCustomEvent<WizardComponentProps.NavigateDetail>) => {
if (onNavigating) {
setIsLoadingNextStep(true);
const response = await onNavigating(event);
const response = await onNavigating({
...event,
detail: {
...event.detail,
values: formOptions.getState().values,
},
});
setIsLoadingNextStep(false);
return response;
}
Expand All @@ -118,7 +124,7 @@ const Wizard: FC<WizardProps> = ({
errorText: undefined,
};
},
[onNavigating]
[onNavigating, formOptions]
);

const processNavigate = useCallback(
Expand Down

0 comments on commit 0dfccab

Please sign in to comment.