diff --git a/src/collections/components/CollectionDetailsPage/CollectionDetailsPage.tsx b/src/collections/components/CollectionDetailsPage/CollectionDetailsPage.tsx index 3127745b3..d2661ed3a 100644 --- a/src/collections/components/CollectionDetailsPage/CollectionDetailsPage.tsx +++ b/src/collections/components/CollectionDetailsPage/CollectionDetailsPage.tsx @@ -83,6 +83,7 @@ const CollectionDetailsPage: React.FC = ({ onSubmit({ ...data, + isPublished: data.isPublished || !!data.publicationDate, metadata, privateMetadata }); diff --git a/src/pages/components/PageDetailsPage/PageDetailsPage.tsx b/src/pages/components/PageDetailsPage/PageDetailsPage.tsx index 772049b04..3253018d5 100644 --- a/src/pages/components/PageDetailsPage/PageDetailsPage.tsx +++ b/src/pages/components/PageDetailsPage/PageDetailsPage.tsx @@ -70,8 +70,16 @@ const PageDetailsPage: React.FC = ({ slug: maybe(() => page.slug, ""), title: maybe(() => page.title, "") }; + + const handleSubmit = (data: FormData) => onSubmit(getParsedData(data)); + + const getParsedData = (data: FormData) => ({ + ...data, + isPublished: data.isPublished || !!data.publicationDate + }); + return ( -
+ {({ change, data, hasChanged, submit }) => ( diff --git a/src/pages/views/PageCreate.tsx b/src/pages/views/PageCreate.tsx index c9110aaa6..384c80484 100644 --- a/src/pages/views/PageCreate.tsx +++ b/src/pages/views/PageCreate.tsx @@ -53,11 +53,7 @@ export const PageCreate: React.FC = () => { input: { contentJson: JSON.stringify(formData.content), isPublished: formData.isPublished, - publicationDate: formData.isPublished - ? null - : formData.publicationDate === "" - ? null - : formData.publicationDate, + publicationDate: formData.publicationDate, seo: { description: formData.seoDescription, title: formData.seoTitle diff --git a/src/pages/views/PageDetails.tsx b/src/pages/views/PageDetails.tsx index fd9cc58fd..23c1a9c65 100644 --- a/src/pages/views/PageDetails.tsx +++ b/src/pages/views/PageDetails.tsx @@ -23,11 +23,7 @@ export interface PageDetailsProps { const createPageInput = (data: FormData): PageInput => ({ contentJson: JSON.stringify(data.content), isPublished: data.isPublished, - publicationDate: data.isPublished - ? null - : data.publicationDate === "" - ? null - : data.publicationDate, + publicationDate: data.publicationDate, seo: { description: data.seoDescription, title: data.seoTitle diff --git a/src/products/components/ProductUpdatePage/ProductUpdatePage.tsx b/src/products/components/ProductUpdatePage/ProductUpdatePage.tsx index 5e31acecb..a73a7c68a 100644 --- a/src/products/components/ProductUpdatePage/ProductUpdatePage.tsx +++ b/src/products/components/ProductUpdatePage/ProductUpdatePage.tsx @@ -187,9 +187,14 @@ export const ProductUpdatePage: React.FC = ({ value: taxType.taxCode })) || []; - const getAvailabilityData = (data: ProductUpdatePageFormData) => ({ - isAvailableForPurchase: !!data.availableForPurchase, - isPublished: !!data.publicationDate + const getAvailabilityData = ({ + availableForPurchase, + isPublished, + publicationDate + }: ProductUpdatePageFormData) => ({ + isAvailableForPurchase: !!availableForPurchase, + isPublished: isPublished || !!publicationDate, + startDate: availableForPurchase || null }); const getStocksData = () => { @@ -211,22 +216,21 @@ export const ProductUpdatePage: React.FC = ({ }; }; - const getParsedData = (data: ProductUpdatePageFormData) => { - const metadata = isMetadataModified ? data.metadata : undefined; - const privateMetadata = isPrivateMetadataModified + const getMetadata = (data: ProductUpdatePageFormData) => ({ + metadata: isMetadataModified ? data.metadata : undefined, + privateMetadata: isPrivateMetadataModified ? data.privateMetadata - : undefined; + : undefined + }); - return { - ...data, - ...getAvailabilityData(data), - ...getStocksData(), - addStocks: [], - attributes, - metadata, - privateMetadata - }; - }; + const getParsedData = (data: ProductUpdatePageFormData) => ({ + ...data, + ...getAvailabilityData(data), + ...getStocksData(), + ...getMetadata(data), + addStocks: [], + attributes + }); const handleSubmit = (data: ProductUpdatePageFormData) => onSubmit(getParsedData(data));