Back to Vendure

Page

docs/docs/reference/dashboard/page-layout/page.mdx

3.6.42.2 KB
Original Source

Page

<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="98" packageName="@vendure/dashboard" since="3.3.0" />

This component should be used to wrap all pages in the dashboard. It provides a consistent layout as well as a context for the slot-based PageBlock system.

The typical hierarchy of a page is as follows:

Example

tsx
import { Page, PageTitle, PageActionBar, PageLayout, PageBlock, Button } from '@vendure/dashboard';

const pageId = 'my-page';

export function MyPage() {
 return (
   <Page pageId={pageId} form={form} submitHandler={submitHandler} entity={entity}>
     <PageTitle>My Page</PageTitle>
     <PageActionBar>
       <PageActionBarRight>
         <Button>Save</Button>
       </PageActionBarRight>
     </PageActionBar>
     <PageLayout>
       <PageBlock column="main" blockId="my-block">
         <div>My Block</div>
       </PageBlock>
     </PageLayout>
   </Page>
 )
}
ts
function Page(props: Readonly<PageProps>): void

Parameters

props

<MemberInfo kind="parameter" type={Readonly<<a href='/reference/dashboard/page-layout/page#pageprops'>PageProps</a>>} />

PageProps

<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="45" packageName="@vendure/dashboard" since="3.3.0" />

The props used to configure the Page component.

ts
interface PageProps extends ComponentProps<'div'> {
    pageId?: string;
    entity?: any;
    form?: UseFormReturn<any>;
    submitHandler?: any;
}
  • Extends: ComponentProps<'div'>
<div className="members-wrapper">

pageId

<MemberInfo kind="property" type={string} />

A string identifier for the page, e.g. "product-list", "review-detail", etc.

entity

<MemberInfo kind="property" type={any} />

form

<MemberInfo kind="property" type={UseFormReturn<any>} />

submitHandler

<MemberInfo kind="property" type={any} />

</div>