import React from "react"; import { Card, Space, Spin } from "antd"; import { useResourceWithRoute, useMutationMode, useNavigation, useTranslate, useRouterContext, userFriendlyResourceName, ResourceRouterParams, useRefineContext, } from "@pankod/refine-core"; import { DeleteButton, RefreshButton, ListButton, SaveButton, Breadcrumb, PageHeader, } from "@components"; import { EditProps } from "../types"; /** * `` provides us a layout for displaying the page. * It does not contain any logic but adds extra functionalities like a refresh button. * * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/edit} for more details. */ export const Edit: React.FC = ({ title, saveButtonProps, mutationMode: mutationModeProp, recordItemId, children, deleteButtonProps, canDelete, resource: resourceFromProps, isLoading = false, dataProviderName, breadcrumb: breadcrumbFromProps, wrapperProps, headerProps, contentProps, headerButtonProps, headerButtons, footerButtonProps, footerButtons, goBack: goBackFromProps, }) => { const translate = useTranslate(); const { goBack, list } = useNavigation(); const resourceWithRoute = useResourceWithRoute(); const { mutationMode: mutationModeContext } = useMutationMode(); const mutationMode = mutationModeProp ?? mutationModeContext; const { useParams } = useRouterContext(); const { resource: routeResourceName, action: routeFromAction, id: idFromRoute, } = useParams(); const resource = resourceWithRoute(resourceFromProps ?? routeResourceName); const isDeleteButtonVisible = canDelete ?? (resource.canDelete || deleteButtonProps); const { options } = useRefineContext(); const breadcrumb = typeof breadcrumbFromProps === "undefined" ? options?.breadcrumb : breadcrumbFromProps; const id = recordItemId ?? idFromRoute; const defaultHeaderButtons = ( <> {!recordItemId && ( )} ); const defaultFooterButtons = ( <> {isDeleteButtonVisible && ( { list(resource.route ?? resource.name); }} dataProviderName={dataProviderName} {...deleteButtonProps} /> )} ); return (
{headerButtons ? typeof headerButtons === "function" ? headerButtons({ defaultButtons: defaultHeaderButtons, }) : headerButtons : defaultHeaderButtons} } breadcrumb={ typeof breadcrumb !== "undefined" ? ( <>{breadcrumb} ?? undefined ) : ( ) } {...(headerProps ?? {})} > {footerButtons ? typeof footerButtons === "function" ? footerButtons({ defaultButtons: defaultFooterButtons, }) : footerButtons : defaultFooterButtons} , ]} {...(contentProps ?? {})} > {children}
); };