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 Form from "@saleor/components/Form"; import Grid from "@saleor/components/Grid"; import Metadata, { MetadataFormData } from "@saleor/components/Metadata"; 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 { ProductErrorFragment } from "@saleor/fragments/types/ProductErrorFragment"; import useDateLocalize from "@saleor/hooks/useDateLocalize"; import { sectionNames } from "@saleor/intl"; import useMetadataChangeTrigger from "@saleor/utils/metadata/useMetadataChangeTrigger"; import { ContentState, convertToRaw, RawDraftContentState } from "draft-js"; import React from "react"; import { useIntl } from "react-intl"; import CollectionDetails from "../CollectionDetails/CollectionDetails"; import { CollectionImage } from "../CollectionImage/CollectionImage"; export interface CollectionCreatePageFormData extends MetadataFormData { backgroundImage: { url: string; value: string; }; backgroundImageAlt: string; description: RawDraftContentState; name: string; publicationDate: string; isPublished: boolean; seoDescription: string; seoTitle: string; } export interface CollectionCreatePageProps { disabled: boolean; errors: ProductErrorFragment[]; saveButtonBarState: ConfirmButtonTransitionState; onBack: () => void; onSubmit: (data: CollectionCreatePageFormData) => void; } const initialForm: CollectionCreatePageFormData = { backgroundImage: { url: null, value: null }, backgroundImageAlt: "", description: convertToRaw(ContentState.createFromText("")), isPublished: false, metadata: [], name: "", privateMetadata: [], publicationDate: "", seoDescription: "", seoTitle: "" }; const CollectionCreatePage: React.FC = ({ disabled, errors, saveButtonBarState, onBack, onSubmit }: CollectionCreatePageProps) => { const intl = useIntl(); const localizeDate = useDateLocalize(); const { makeChangeHandler: makeMetadataChangeHandler } = useMetadataChangeTrigger(); return (
{({ change, data, hasChanged, submit }) => { const changeMetadata = makeMetadataChangeHandler(change); return ( {intl.formatMessage(sectionNames.collections)}
change({ target: { name: "backgroundImage", value: { url: null, value: null } } } as any) } onImageUpload={file => change({ target: { name: "backgroundImage", value: { url: URL.createObjectURL(file), value: file } } } as any) } onChange={change} data={data} />
); }}
); }; CollectionCreatePage.displayName = "CollectionCreatePage"; export default CollectionCreatePage;