diff --git a/src/attributes/components/AttributeDetails/AttributeDetails.tsx b/src/attributes/components/AttributeDetails/AttributeDetails.tsx index b4385501d..26b3ea201 100644 --- a/src/attributes/components/AttributeDetails/AttributeDetails.tsx +++ b/src/attributes/components/AttributeDetails/AttributeDetails.tsx @@ -11,7 +11,7 @@ import FormSpacer from "@saleor/components/FormSpacer"; import SingleSelectField from "@saleor/components/SingleSelectField"; import { commonMessages } from "@saleor/intl"; import { AttributeInputTypeEnum } from "@saleor/types/globalTypes"; -import { getFieldError, getProductErrorMessage } from "@saleor/utils/errors"; +import { getProductErrorMessage, getFormErrors } from "@saleor/utils/errors"; import { ProductErrorFragment } from "@saleor/attributes/types/ProductErrorFragment"; import { AttributePageFormData } from "../AttributePage"; import { getAttributeSlugErrorMessage } from "../../errors"; @@ -49,6 +49,8 @@ const AttributeDetails: React.FC = ({ } ]; + const formErrors = getFormErrors(["name", "slug", "inputType"], errors); + return ( = ({ = ({ placeholder={slugify(data.name).toLowerCase()} fullWidth helperText={ - getAttributeSlugErrorMessage(getFieldError(errors, "slug"), intl) || + getAttributeSlugErrorMessage(formErrors.slug, intl) || intl.formatMessage({ defaultMessage: "This is used internally. Make sure you don’t use spaces", @@ -97,11 +96,8 @@ const AttributeDetails: React.FC = ({ ) => void; } @@ -30,6 +30,8 @@ const AttributeProperties: React.FC = ({ }) => { const intl = useIntl(); + const formErrors = getFormErrors(["storefrontSearchPosition"], errors); + return ( @@ -86,11 +88,12 @@ const AttributeProperties: React.FC = ({ {data.filterableInStorefront && ( = ({ name: maybe(() => attributeValue.name, "") }; const errors = useModalDialogErrors(apiErrors, open); + const formErrors = getFormErrors(["name"], errors); return ( @@ -69,10 +70,10 @@ const AttributeValueEditDialog: React.FC = ({ err.message); } +export function getFormErrors( + fields: TField[], + errors: TError[] +): Record { + return fields.reduce((errs, field) => { + errs[field] = getFieldError(errors, field); + return errs; + }, ({} as unknown) as Record); +} + export { default as getProductErrorMessage } from "./product";