conventional-blackC
Refine3y ago
15 replies
conventional-black

how to pass additional "meta" for resources to dataProvider?

I'm writing a new dataProfider for the WordPress REST API.
I need to pass additional parameters for the resource to the dataProvider.
Thans to the help of kapa.ai in this thread: https://discord.com/channels/837692625737613362/1093124784801468487
I tried to add them as
meta
in <Refine resources{}> but I can't get it in the dataProvider.
What I'm doing wrong?

here the relevant code, the parameter I need to get in dataProvider is :namespace
function App() {
  return (
    <BrowserRouter>
      <GitHubBanner />
      <RefineKbarProvider>
        <Refine
          dataProvider={dataProvider("{mysite}/wp-json")}
          routerProvider={routerBindings}
          authProvider={authProvider}
          resources={[
            {
              name: "posts",
              list: "/blog-posts",
              create: "/blog-posts/create",
              edit: "/blog-posts/edit/:id",
              show: "/blog-posts/show/:id",
              meta: {
                canDelete: true,
                namespace: 'wp/v2/'
              },
            },
          ]}
          options={{
            syncWithLocation: true,
            warnWhenUnsavedChanges: true,
          }}
        >
...
...

and in dataProvider:
export const dataProvider = (
  apiUrl: string,
  httpClient: AxiosInstance = axiosInstance
): Omit<
  Required<DataProvider>,
  "createMany" | "updateMany" | "deleteMany"
> => ({
 
  getList: async ({ resource, pagination, filters, sorters, meta }) => {
    const { namespace } = meta;
    console.log('namespace', namespace);

    const url = `${apiUrl}/${namespace}/${resource}`;

    const { current = 1, pageSize = 10, mode = "server" } = pagination ?? {};
...
...
Was this page helpful?