@oniti/datatable-material

1.7.8 • Public • Published

Datatable Material-Ui

N|Solid

Installation

$ npm install @oniti/datatable-material --save

Exemple

import React, {Component} from 'react';
import {DataTable, Cell} from '@oniti/datatable-material';
import {withStyles} from '@material-ui/core/styles';
import { Grid } from '@material-ui/core';

class Test extends Component {
  state = {
    datas:[
      {
        "_id": "5b1804dd6556c8a70e9198c9",
        "balance": "$1,421.97",
        "picture": "http://placehold.it/32x32",
        "age": 38,
        "name": "Moss Clemons",
        "gender": "male",
        "email": "mossclemons@earthplex.com",
        "phone": "+1 (863) 517-3635"
      },
      {
        "_id": "5b1804dd0dc499695c8f50a3",
        "balance": "$1,203.60",
        "picture": "http://placehold.it/32x32",
        "age": 25,
        "name": "Burton Lane",
        "gender": "male",
        "email": "burtonlane@earthplex.com",
        "phone": "+1 (838) 461-3237"
      },
      {
        "_id": "5b1804dd204f86c6f0fdbe3a",
        "balance": "$3,692.59",
        "picture": "http://placehold.it/32x32",
        "age": 34,
        "name": "Susanne Whitley",
        "gender": "female",
        "email": "susannewhitley@earthplex.com",
        "phone": "+1 (829) 551-2760"
      },
      {
        "_id": "5b1804dd3beda89b69fc0858",
        "balance": "$3,337.96",
        "picture": "http://placehold.it/32x32",
        "age": 20,
        "name": "Marquez Roman",
        "gender": "male",
        "email": "marquezroman@earthplex.com",
        "phone": "+1 (955) 542-3013"
      },
      {
        "_id": "5b1804dd111b3914d3305175",
        "balance": "$1,860.26",
        "picture": "http://placehold.it/32x32",
        "age": 30,
        "name": "Veronica Schwartz",
        "gender": "female",
        "email": "veronicaschwartz@earthplex.com",
        "phone": "+1 (825) 561-2393"
      }
    ]
  }

  formatPicture(user){
    return <img src={user.picture} alt={user.name} />;
  }
  render() {
    const {classes} = this.props

    return (
      <div className={classes.root}>
        <Grid container spacing={2}>
          <Grid item xs={12}>
            <DataTable
            datas={this.state.datas}
            showPagination={true}
            showSearch={true}
            defaultSort="name"

            >
              <Cell
                title="Picture"
                format={this.formatPicture}
              />
              <Cell
              datakey="name"
              title="Name"
              sortable={true}
              searchable={true}
              />
              <Cell
              datakey="gender"
              title="Gender"
              sortable={true}
              searchable={true}
              />
              <Cell
              datakey="email"
              title="Email"
              sortable={true}
              searchable={true}
              />

            </DataTable>
          </Grid>
        </Grid>
      </div>
    );
  }
}
const style = theme => ({
  root: {
    flexGrow: 1
  },
})
export default withStyles()(Test)

Props

DataTable

Name Type Description
datas Array
showPagination Bool Show pagination
showSearch Bool Show search input
sortType String 'asc' or 'desc'
defaultSort String defaut key for sorting
searchlabel String Label for search input, default : "Rechercher"
nodatalabel String text for no data , default : "Aucune donnée"
className String
labelRowsPerPage String text before select row per page, default : "Lignes par page"
labelDisplayedRows Func function for pagination information, (data) => return data.from + ' - ' + data.to + ' sur ' + data.count
rowsPerPageOptions Array default [5, 10, 25]
rowsPerPage Int default select rowsPerPageOptions
getStateOnUnmount Func callback function call on componentWillUnmount return datatable state
initialValues Object initial value to initialize datatable (previous state)
extraNodes Array Element to insert ex : [{ element: this.getBtnAdd(), position: 'top-right'}], positions aviables 'top-right', 'top-left'
rowClassName Func Function to return className (obj, key) => className
cancelUpdateCheck Bool Cancel shouldUpdate verification
asynchrone Bool Switch to Async mode
updateDataAsync Func Async mode - Call to update data should return a promise
totalAsyncResult Number Async mode - Total of result
loading Bool Async mode - loading

Cell

Name Type Description
datakey String key of object
title String Title of collumn
format Func function to render Cell (obj, key) =>
sortable Bool Col sortable
searchable Bool Col searchable
isDate Bool Value is a date
className String
useDataKeyOnSearch Bool To search with datakey value

License

MIT

Package Sidebar

Install

npm i @oniti/datatable-material

Weekly Downloads

18

Version

1.7.8

License

MIT

Unpacked Size

85.2 kB

Total Files

18

Last publish

Collaborators

  • maxime_oniti
  • fbouyer
  • jlollivier
  • minitosh