Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@theapexlab/ra-data-blitz

Package Overview
Dependencies
Maintainers
3
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@theapexlab/ra-data-blitz

A react-admin data provider for Blitz.js.

  • 0.0.9
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
3
Weekly downloads
 
Created
Source

ra-data-blitz

Easily build fullstack backoffice apps with blitz-js and react-admin!

Check-out our official Demo app

Installation

npm install --save @theapexlab/ra-data-blitz

or

yarn add @theapexlab/ra-data-blitz

Usage

Add a new data model to your blitzjs project's prisma schema:

// in schema.prisma
model Post {
  id        Int      @id @default(autoincrement())
  title     String
  content   String
}

Generate CRUD resolvers for the model by running the following command:

blitz generate crud post

Import blitzDataProvider from @theapexlab/ra-data-blitz and optionally define a searchEntities function:

// in App.js
import React from 'react';
import { Admin, Resource } from 'react-admin';
import blitzDataProvider from '@theapexlab/ra-data-blitz';
import { PostList } from './PostList';
import { PostEdit } from './PostEdit';
import { PostCreate } from './PostCreate';
import { invoke } from 'blitz';
import { Prisma } from "db"

// specifies search functionality of postFilters
const searchEntities = (
  q: string
): { user: Prisma.PostWhereInput } => ({
  // / NOTE: you can provide [prismaEnitityName]:  PrismaWhereInput pairs here
  post: {
    title: {
      contains: q
    }
  }
})

// invoke is neccasary to call blitzjs RPC api
const dataProvider = blitzDataProvider({ invoke, searchEntities });

const ReactAdmin = () => {
  return (
    <Admin dataProvider={dataProvider}>
      <Resource name="posts" list={PostList} edit={PostEdit} create={PostCreate} />
    </Admin>
  );
};

export default ReactAdmin;
// in PostList.tsx
import {
  List,
  Datagrid,
  TextField,
  TextInput,
} from "react-admin"

// NOTE: source must be "q" inorder to make search functionality work
const postFilters = [
  <TextInput key="search" source="q" label="Search" alwaysOn />,
]

export const PostList = (props) => (
  <List filters={postFilters} {...props} exporter={false}>
    <Datagrid rowClick="edit">
      <TextField source="id" />
      <TextField source="title" />
      <TextField source="content" />
    </Datagrid>
  </List>
)

License

This data provider is licensed under the MIT License.

Keywords

FAQs

Package last updated on 06 Dec 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc