Merge pull request #286 from mirumee/fix/product-variant-errors

Fix error cleanup when switching product variants
This commit is contained in:
Marcin Gębala 2019-12-03 13:48:34 +01:00 committed by GitHub
commit 20cf7f12e6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,4 +1,4 @@
import React from "react"; import React, { useEffect, useState } from "react";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import placeholderImg from "@assets/images/placeholder255x255.png"; import placeholderImg from "@assets/images/placeholder255x255.png";
@ -35,6 +35,10 @@ export const ProductVariant: React.FC<ProductUpdateProps> = ({
const navigate = useNavigator(); const navigate = useNavigator();
const notify = useNotifier(); const notify = useNotifier();
const intl = useIntl(); const intl = useIntl();
const [errors, setErrors] = useState([]);
useEffect(() => {
setErrors([]);
}, [variantId]);
return ( return (
<TypedProductVariantQuery <TypedProductVariantQuery
@ -54,8 +58,10 @@ export const ProductVariant: React.FC<ProductUpdateProps> = ({
navigate(productUrl(productId)); navigate(productUrl(productId));
}; };
const handleUpdate = (data: VariantUpdate) => { const handleUpdate = (data: VariantUpdate) => {
if (!maybe(() => data.productVariantUpdate.productErrors.length)) { if (!data.productVariantUpdate.productErrors.length) {
notify({ text: intl.formatMessage(commonMessages.savedChanges) }); notify({ text: intl.formatMessage(commonMessages.savedChanges) });
} else {
setErrors(data.productVariantUpdate.productErrors);
} }
}; };
@ -107,12 +113,7 @@ export const ProductVariant: React.FC<ProductUpdateProps> = ({
<> <>
<WindowTitle title={maybe(() => data.productVariant.name)} /> <WindowTitle title={maybe(() => data.productVariant.name)} />
<ProductVariantPage <ProductVariantPage
errors={maybe( errors={errors}
() =>
updateVariant.opts.data.productVariantUpdate
.productErrors,
[]
)}
saveButtonBarState={formTransitionState} saveButtonBarState={formTransitionState}
loading={disableFormSave} loading={disableFormSave}
placeholderImage={placeholderImg} placeholderImage={placeholderImg}