bs react admin
1.0.0
Liaisons BuckleScript pour React-admin.
? Il s'agit d'un WIP, tout n'est pas encore pris en charge. ?
N'hésitez pas à créer un problème ou un PR si vous constatez qu'il manque quelque chose.
En outre, de nombreux types sont trop permissifs dans le but de simplement faire travailler React-Admin avec les projets ReasonML. Espérons que ces types seront beaucoup plus stricts dans les prochaines versions.
npm install --save @ctbucha/bs-react-admin
Ajoutez ensuite @ctbucha/bs-react-admin aux bs-dependencies dans votre bsconfig.json :
{
...
"bs-dependencies": ["@ctbucha/bs-react-admin"]
} /* App.re */let composant = ReasonReact.statelessComponent("App");let myHttpClient = (url, _params) => { let headersDict = Js.Dict.empty();
Js.Dict.set(headersDict, "Accepter", "application/json");
laissez les en-têtes =
headersDict |> Fetch.HeadersInit.makeWithDict |> Fetch.Headers.makeWithInit;
BsReactAdmin.FetchUtils.headersSet(params, en-têtes);
BsReactAdmin.FetchUtils.fetchJson(url, params);};let dataProvider =
BsRaDataJsonServer.getRaDataJsonServer(
~apiUrl="http://jsonplaceholder.typicode.com",~httpClient=myHttpClient,(),
);laissez make = _children => {
...composant,
rendu : _self => BsReactAdmin.(
<div>
<Fournisseur de données administrateur>
<Resource name="posts" list=PostList.toReactJs />
</Administrateur>
</div>
),
} ; /* PostList.re */let composant = ReasonReact.statelessComponent("PostList");let make = (props, _children) => {
...composant,
rendu : _self => BsReactAdmin.(
<div>
<Liste des accessoires>
<Grille de données>
<TextField source="id" />
<TextField source="titre" />
<TextField source="corps" />
</Grille de données>
</Liste>
</div>
),};/* Besoin de transmettre ceci à Resource en tant que composant ReactJS au lieu d'un composant ReasonReact * car React-admin gère cela comme un composant ReactJS. */let toReactJs =
ReasonReact.wrapReasonForJs(~component, jsProps => make(jsProps, [||]));