Skip to main content
Version: 4.xx.xx
Swizzle Ready

Import

<ImportButton> is compatible with the useImport hook and is meant to be used as it's upload button.

It uses Ant Design's <Button> and <Upload> components. It wraps a <Button> component with an <Upload> component and accepts properties for <Button> and <Upload> components separately.

Good to know:

You can swizzle this component to customize it with the Refine CLI

Usageโ€‹

import {
List,
useTable,
useImport,
ImportButton,
} from "@refinedev/antd";
import { Table } from "antd";

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

const importProps = useImport<IPostFile>();

return (
<List
headerButtons={
<ImportButton {...importProps} />
}
>
<Table {...tableProps} rowKey="id">
<Table.Column dataIndex="id" title="ID" />
<Table.Column dataIndex="title" title="Title" />
</Table>
</List>
);
};

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

interface IPostFile {
title: string;
categoryId: number;
}
// visible-block-end

render(
<RefineAntdDemo
resources={[
{
name: "posts",
list: PostList,
},
]}
/>,
);

Propertiesโ€‹

hideTextโ€‹

hideText is used to hide the text of the button. When its true, only the button icon will be visible.

const { useRouterContext } = RefineCore;

// visible-block-start
import { ImportButton, useImport } from "@refinedev/antd";

const MyImportComponent = () => {
const importProps = useImport();

return (
<ImportButton
{...importProps}
hideText
/>
);
};

// visible-block-end

render(
<RefineAntdDemo
initialRoutes={["/"]}
resources={[
{
name: "posts",
list: MyImportComponent,
},
]}
/>,
);

API Referenceโ€‹

Propertiesโ€‹