Skip to main content
Version: 3.xx.xx

Create

<CreateButton> uses Material UI <Button> component. It uses the create method from useNavigation under the hood. It can be useful to redirect the app to the create page route of resource.

Usage

src/pages/posts/list.tsx
import { useTable } from "@pankod/refine-core";

import {
List,
Table,
CreateButton,
TableHead,
TableRow,
TableCell,
TableBody,
} from "@pankod/refine-mui";

export const PostList: React.FC = () => {
const { tableQueryResult } = useTable<IPost>();

const { data } = tableQueryResult;

return (
<List cardHeaderProps={{ action: <CreateButton /> }}>
<Table aria-label="simple table">
<TableHead>
<TableRow>
<TableCell>ID</TableCell>
<TableCell>Title</TableCell>
</TableRow>
</TableHead>
<TableBody>
{data?.data.map((row) => (
<TableRow key={row.title}>
<TableCell>{row.id}</TableCell>
<TableCell component="th" scope="row">
{row.title}
</TableCell>
</TableRow>
))}
</TableBody>
</Table>
</List>
);
};

interface IPost {
id: number;
title: string;
}

Will look like this:

Default create button

Properties

resourceNameOrRouteName

It is used to redirect the app to the /create endpoint of the given resource name. By default, the app redirects to a URL with /create defined by the name property of resource object.

import { CreateButton } from "@pankod/refine-mui";

export const MyCreateComponent = () => {
return <CreateButton resourceNameOrRouteName="posts" />;
};

Clicking the button will trigger the create method of useNavigation and then redirect to /posts/create.

hideText

It is used to show and not show the text of the button. When true, only the button icon is visible.

import { CreateButton } from "@pankod/refine-mui";

export const MyCreateComponent = () => {
return <CreateButton hideText />;
};

ignoreAccessControlProvider

It is used to skip access control for the button so that it doesn't check for access control. This is relevant only when an accessControlProvider is provided to <Refine/>

import { CreateButton } from "@pankod/refine-mui";

export const MyListComponent = () => {
return <CreateButton ignoreAccessControlProvider />;
};

API Reference

Properties

PropertyDescriptionTypeDefault
propsMaterial UI button propsButtonProps
resourceNameOrRouteNameDetermines which resource to use for redirectionstringResource name that it reads from route
hideTextAllows to hide button textbooleanfalse
ignoreAccessControlProviderSkip access controlbooleanfalse
childrenSets the button textReactNode"Create"
startIconSets the icon component of buttonReactNode<AddBoxOutlinedIcon />
svgIconPropsAllows to set icon propsSvgIconProps
onClickSets the handler to handle click event(event) => voidTriggers navigation for redirect to the create page of resource