import { RawDraftContentState } from "draft-js"; import React from "react"; import { useIntl } from "react-intl"; import AppHeader from "@saleor/components/AppHeader"; import { CardSpacer } from "@saleor/components/CardSpacer"; import { ConfirmButtonTransitionState } from "@saleor/components/ConfirmButton"; import { Container } from "@saleor/components/Container"; import ControlledCheckbox from "@saleor/components/ControlledCheckbox"; import Form from "@saleor/components/Form"; import FormSpacer from "@saleor/components/FormSpacer"; import Grid from "@saleor/components/Grid"; import Hr from "@saleor/components/Hr"; import PageHeader from "@saleor/components/PageHeader"; import SaveButtonBar from "@saleor/components/SaveButtonBar"; import SeoForm from "@saleor/components/SeoForm"; import VisibilityCard from "@saleor/components/VisibilityCard"; import useDateLocalize from "@saleor/hooks/useDateLocalize"; import { sectionNames } from "@saleor/intl"; import { maybe } from "../../../misc"; import { ListActions, PageListProps } from "../../../types"; import { CollectionDetails_collection } from "../../types/CollectionDetails"; import CollectionDetails from "../CollectionDetails/CollectionDetails"; import { CollectionImage } from "../CollectionImage/CollectionImage"; import CollectionProducts from "../CollectionProducts/CollectionProducts"; export interface CollectionDetailsPageFormData { backgroundImageAlt: string; description: RawDraftContentState; name: string; publicationDate: string; seoDescription: string; seoTitle: string; isFeatured: boolean; isPublished: boolean; } export interface CollectionDetailsPageProps extends PageListProps, ListActions { collection: CollectionDetails_collection; isFeatured: boolean; saveButtonBarState: ConfirmButtonTransitionState; onBack: () => void; onCollectionRemove: () => void; onImageDelete: () => void; onImageUpload: (file: File) => void; onProductUnassign: (id: string, event: React.MouseEvent) => void; onSubmit: (data: CollectionDetailsPageFormData) => void; } const CollectionDetailsPage: React.StatelessComponent< CollectionDetailsPageProps > = ({ collection, disabled, isFeatured, saveButtonBarState, onBack, onCollectionRemove, onImageDelete, onImageUpload, onSubmit, ...collectionProductsProps }: CollectionDetailsPageProps) => { const intl = useIntl(); const localizeDate = useDateLocalize(); return (
collection.backgroundImage.alt, ""), description: maybe(() => JSON.parse(collection.descriptionJson)), isFeatured, isPublished: maybe(() => collection.isPublished, false), name: maybe(() => collection.name, ""), publicationDate: maybe(() => collection.publicationDate, ""), seoDescription: maybe(() => collection.seoDescription, ""), seoTitle: maybe(() => collection.seoTitle, "") }} onSubmit={onSubmit} confirmLeave > {({ change, data, errors: formErrors, hasChanged, submit }) => ( {intl.formatMessage(sectionNames.collections)} collection.name)} />
collection.backgroundImage)} onImageDelete={onImageDelete} onImageUpload={onImageUpload} onChange={change} /> collection.name)} onChange={change} />

)}
); }; CollectionDetailsPage.displayName = "CollectionDetailsPage"; export default CollectionDetailsPage;