import DialogContentText from "@material-ui/core/DialogContentText"; import ActionDialog from "@saleor/components/ActionDialog"; import { WindowTitle } from "@saleor/components/WindowTitle"; import useNavigator from "@saleor/hooks/useNavigator"; import useNotifier from "@saleor/hooks/useNotifier"; import { commonMessages } from "@saleor/intl"; import React from "react"; import { FormattedMessage, useIntl } from "react-intl"; import { getStringOrPlaceholder, maybe } from "../../misc"; import { PageInput } from "../../types/globalTypes"; import PageDetailsPage, { FormData } from "../components/PageDetailsPage"; import { TypedPageRemove, TypedPageUpdate } from "../mutations"; import { TypedPageDetailsQuery } from "../queries"; import { PageRemove } from "../types/PageRemove"; import { pageListUrl, pageUrl, PageUrlQueryParams } from "../urls"; export interface PageDetailsProps { id: string; params: PageUrlQueryParams; } const createPageInput = (data: FormData): PageInput => ({ contentJson: JSON.stringify(data.content), isPublished: data.isPublished, publicationDate: data.isPublished ? null : data.publicationDate === "" ? null : data.publicationDate, seo: { description: data.seoDescription, title: data.seoTitle }, slug: data.slug === "" ? null : data.slug, title: data.title }); export const PageDetails: React.FC = ({ id, params }) => { const navigate = useNavigator(); const notify = useNotifier(); const intl = useIntl(); const handlePageRemove = (data: PageRemove) => { if (data.pageDelete.errors.length === 0) { notify({ text: intl.formatMessage(commonMessages.savedChanges) }); navigate(pageListUrl()); } }; return ( {(pageRemove, pageRemoveOpts) => ( {(pageUpdate, pageUpdateOpts) => ( {pageDetails => ( <> pageDetails.data.page.title)} /> navigate(pageListUrl())} onRemove={() => navigate( pageUrl(id, { action: "remove" }) ) } onSubmit={formData => pageUpdate({ variables: { id, input: createPageInput(formData) } }) } /> navigate(pageUrl(id))} onConfirm={pageRemove} variant="delete" > {getStringOrPlaceholder( pageDetails.data?.page?.title )} ) }} /> )} )} )} ); }; PageDetails.displayName = "PageDetails"; export default PageDetails;