API Reference
Advanced Tutorials
Comparison
FAQ
Contributing
Testing
Migration Guide
Licence
This is documentation for Refine 3.xx.xx, which is no longer actively maintained.
For up-to-date documentation, see the latest version (5.xx.xx).
Version: 3.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 Mantine <Button> component and native html <input> element. It wraps a <label> with a <Button> component and <input> element and accepts it's own properties for separately.
localhost:3000
Live previews only work with the latest documentation.
import { useImport, useNotification } from "@pankod/refine-core";
import {
List,
Table,
Pagination,
ImportButton,
} from "@pankod/refine-mantine";
import { useTable, ColumnDef, flexRender } from "@pankod/refine-react-table";
const PostList: React.FC = () => {
const columns = React.useMemo<ColumnDef<IPost>[]>(
() => [
{
id: "id",
header: "ID",
accessorKey: "id",
},
{
id: "title",
header: "Title",
accessorKey: "title",
},
],
[],
);
const {
getHeaderGroups,
getRowModel,
refineCore: { setCurrent, pageCount, current },
} = useTable({
columns,
});
const { open } = useNotification();
const { inputProps, isLoading } = useImport({
onFinish: () => {
open?.({
message: "Import successfully completed",
type: "success",
});
},
});
return (
<List
headerButtons={
<ImportButton loading={isLoading} inputProps={inputProps} />
}
>
<Table>
<thead>
{getHeaderGroups().map((headerGroup) => (
<tr key={headerGroup.id}>
{headerGroup.headers.map((header) => (
<th key={header.id}>
{header.isPlaceholder
? null
: flexRender(
header.column.columnDef.header,
header.getContext(),
)}
</th>
))}
</tr>
))}
</thead>
<tbody>
{getRowModel().rows.map((row) => (
<tr key={row.id}>
{row.getVisibleCells().map((cell) => (
<td key={cell.id}>
{flexRender(cell.column.columnDef.cell, cell.getContext())}
</td>
))}
</tr>
))}
</tbody>
</Table>
<br />
<Pagination
position="right"
total={pageCount}
page={current}
onChange={setCurrent}
/>
</List>
);
};
interface IPost {
id: number;
title: string;
}
Swizzle
You can swizzle this component to customize it with the refine CLI
Properties
hideText
It is used to show and not show the text of the button. When true, only the button icon is visible.
localhost:3000
Live previews only work with the latest documentation.
import { ImportButton } from "@pankod/refine-mantine";
const MyImportComponent = () => {
return <ImportButton hideText />;
};
Was this helpful?
API Reference
Properties
Was this helpful?