Reset form state after closing it

This commit is contained in:
dominik-zeglen 2019-10-09 12:52:51 +02:00
parent b75ceed7cc
commit 8a2f240719

View file

@ -8,6 +8,8 @@ import { makeStyles } from "@material-ui/styles";
import React from "react"; import React from "react";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
import useModalDialogErrors from "@saleor/hooks/useModalDialogErrors";
import useModalDialogOpen from "@saleor/hooks/useModalDialogOpen";
import { ProductVariantBulkCreateInput } from "../../../types/globalTypes"; import { ProductVariantBulkCreateInput } from "../../../types/globalTypes";
import { createInitialForm, ProductVariantCreateFormData } from "./form"; import { createInitialForm, ProductVariantCreateFormData } from "./form";
import ProductVariantCreateContent, { import ProductVariantCreateContent, {
@ -90,6 +92,7 @@ const ProductVariantCreateDialog: React.FC<
const { const {
attributes, attributes,
defaultPrice, defaultPrice,
errors: apiErrors,
open, open,
onClose, onClose,
onSubmit, onSubmit,
@ -125,14 +128,22 @@ const ProductVariantCreateDialog: React.FC<
createInitialForm(attributes, defaultPrice) createInitialForm(attributes, defaultPrice)
); );
React.useEffect( const reloadForm = () =>
() => dispatchFormDataAction({
dispatchFormDataAction({ data: createInitialForm(attributes, defaultPrice),
data: createInitialForm(attributes, defaultPrice), type: "reload"
type: "reload" });
}),
[attributes.length] React.useEffect(reloadForm, [attributes.length]);
);
useModalDialogOpen(open, {
onClose: () => {
reloadForm();
setStep("values");
}
});
const errors = useModalDialogErrors(apiErrors, open);
return ( return (
<Dialog open={open} maxWidth="md"> <Dialog open={open} maxWidth="md">
@ -148,6 +159,7 @@ const ProductVariantCreateDialog: React.FC<
attributes={attributes} attributes={attributes}
data={data} data={data}
dispatchFormDataAction={dispatchFormDataAction} dispatchFormDataAction={dispatchFormDataAction}
errors={errors}
step={step} step={step}
onStepClick={step => setStep(step)} onStepClick={step => setStep(step)}
/> />