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

File

This field is used to display files and it uses the <Link> component of <Typography> from Material UI.

Good to know:

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

Usage

Let's see how we can use <FileField> with the example in the edit page:

localhost:3000/posts
import {
useDataGrid,
List,
FileField,
} from "@refinedev/mui";
import { DataGrid, GridColDef } from "@mui/x-data-grid";

const columns: GridColDef[] = [
{ field: "id", headerName: "ID", type: "number" },
{ field: "title", headerName: "Title", minWidth: 100, flex: 1 },
{
field: "image",
headerName: "Image",
display: "flex",
renderCell: function render({ row }) {
return (
<FileField src={row.image[0].url} target="_blank" rel="noopener" />
);
},
minWidth: 100,
flex: 2,
},
];

const PostsList: React.FC = () => {
const { dataGridProps } = useDataGrid<IPost>();

return (
<List>
<DataGrid {...dataGridProps} columns={columns} />
</List>
);
};

interface IPost {
id: number;
title: string;
image: [
{
url: string;
},
];
}
Implementation Tips:

If you don't use title prop it will use src as title

API Reference

Properties

PropertyTypeDescriptionDefault
title

string

Used for file title

The src property

src

string

Used for file path

External Props:

It also accepts all props of Material UI Link.