ra-data-mixer
TypeScript icon, indicating that this package has built-in type declarations

0.6.0 • Public • Published

ra-data-mixer

Travis (.org) branch npm npm bundle size GitHub

React Admin DataProvider Mixer

Installation

npm i --save ra-data-mixer

Usage

// in src/App.tsx
import React from "react";
import { Admin, Resource } from "react-admin";
import mixerProvider, { Mixer } from "ra-data-mixer";

import { PostList } from "./posts";

const provider1 = ...;
const provider2 = ...;

const mixer: Mixer = (resource) =>
    (({
        posts: provider1,
        users: provider2,
    } as any)[resource]);

const App = () => (
    <Admin dataProvider={mixerProvider(mixer)}>
        <Resource name="posts" list={PostList} />
    </Admin>
);

export default App;

Filter

You can mix same resources with different filters on different names:

// in src/App.tsx
import mixerProvider, { Mixer } from "ra-data-mixer";

const myProvider = ...;

const mixer: Mixer = (resource) =>
    (({
        managers: [myProvider, "users", (params) => ({
            ...params,
            filter: {
                ...params.filter,
                role: "manager"
            }
        })],
        reporters: [myProvider, "users", (params) => ({
            ...params,
            filter: {
                ...params.filter,
                role: "reporter"
            }
        })],
    } as any)[resource]);

In this example, managers and reporters resources are using a same resource named users with different filters


Contributors

License

This project is licensed under the MIT license.
Copyright (c) KoLiBer (koliberr136a1@gmail.com)

Package Sidebar

Install

npm i ra-data-mixer

Weekly Downloads

0

Version

0.6.0

License

MIT

Unpacked Size

13.5 kB

Total Files

6

Last publish

Collaborators

  • koliber