import React from "react"; import { Card, Space, Spin } from "antd"; import { useNavigation, useResourceWithRoute, useRouterContext, useTranslate, ResourceRouterParams, userFriendlyResourceName, useRefineContext, } from "@pankod/refine-core"; import { EditButton, DeleteButton, RefreshButton, ListButton, Breadcrumb, PageHeader, } from "@components"; import { ShowProps } 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/show} for more details. */ export const Show: React.FC = ({ title, canEdit, canDelete, isLoading = false, children, resource: resourceFromProps, recordItemId, dataProviderName, breadcrumb: breadcrumbFromProps, contentProps, headerProps, wrapperProps, headerButtons, footerButtons, footerButtonProps, headerButtonProps, goBack: goBackFromProps, }) => { const translate = useTranslate(); const { goBack, list } = useNavigation(); const resourceWithRoute = useResourceWithRoute(); const { useParams } = useRouterContext(); const { resource: routeResourceName, action: routeFromAction, id: idFromRoute, } = useParams(); const resource = resourceWithRoute(resourceFromProps ?? routeResourceName); const isDeleteButtonVisible = canDelete ?? resource.canDelete; const isEditButtonVisible = canEdit ?? resource.canEdit; const { options } = useRefineContext(); const breadcrumb = typeof breadcrumbFromProps === "undefined" ? options?.breadcrumb : breadcrumbFromProps; const id = recordItemId ?? idFromRoute; const defaultHeaderButtons = ( <> {!recordItemId && ( )} {isEditButtonVisible && ( )} {isDeleteButtonVisible && ( list(resource.route ?? resource.name)} dataProviderName={dataProviderName} /> )} ); return (
{headerButtons ? typeof headerButtons === "function" ? headerButtons({ defaultButtons: defaultHeaderButtons, }) : headerButtons : defaultHeaderButtons} } breadcrumb={ typeof breadcrumb !== "undefined" ? ( <>{breadcrumb} ?? undefined ) : ( ) } {...(headerProps ?? {})} > {typeof footerButtons === "function" ? footerButtons({ defaultButtons: null, }) : footerButtons} , ] : undefined } {...(contentProps ?? {})} > {children}
); };