Inferencer
You can automatically generate views for your resources using @refinedev/inferencer
. Inferencer exports HeadlessListInferencer
, HeadlessShowInferencer
, HeadlessEditInferencer
, HeadlessCreateInferencer
, and finally HeadlessInferencer
components, the last of which combines all in one place.
- Headless elements of
@refinedev/inferencer
uses@refinedev/react-hook-form
and@refinedev/react-table
to create views. These dependencies should be installed in your project in order to use inferencer components. - To learn more about the
@refinedev/inferencer
package, please check out Inferencer docs.
Usage
Inferencer components can be imported from @refinedev/inferencer/headless
. You can directly use the components in your routes without passing any props. If you use a routerProvider
, it will infer the resource
, action
and id
from the current route.
- Without Props
- With Explicit Props
import routerProvider from "@refinedev/react-router-v6";
import { BrowserRouter } from "react-router-dom";
import { HeadlessInferencer } from "@refinedev/inferencer/headless";
const App = () => {
return (
<BrowserRouter>
<Refine
routerProvider={routerProvider}
resources={[
{
name: "samples",
list: "/posts",
},
]}
>
<Routes>
<Route path="/posts" element={<HeadlessInferencer />} />
</Routes>
</Refine>
</BrowserRouter>
);
};
import { HeadlessInferencer } from "@refinedev/inferencer/headless";
const SampleList = () => {
return (
<HeadlessInferencer resource="samples" action="list" />
);
};
const SampleShow = () => {
return (
<HeadlessInferencer resource="samples" action="show" id="1" />
);
};
const SampleCreate = () => {
return (
<HeadlessInferencer resource="samples" action="create" />
);
};
const SampleEdit = () => {
return (
<HeadlessInferencer resource="samples" action="edit" id="1" />
);
};
Views
List
Generates a sample list view for your resources according to the API response. It uses the useTable
hook from @refinedev/react-table
.
Show
Generates a sample show view for your resources according to the API response. It uses the useShow
hook from @refinedev/core
.
Create
Generates a sample create view for your resources according to the first record in list API response. It uses the useForm
hook from @refinedev/react-hook-form
.
Edit
Generates a sample edit view for your resources according to the API response. It uses the useForm
hook from @refinedev/react-hook-form
.
Example
Below you'll find a Live CodeSandbox Example displaying a fully setup Refine app with @refinedev/inferencer/headless
components.
npm create refine-app@latest -- --example inferencer-headless