0.1.22 • Published 4 years ago

react-watertable v0.1.22

Weekly downloads
96
License
-
Repository
github
Last release
4 years ago

React Watertable

npm version

screenshot

A table with advanced editable controls. Great for admin panels, customer portals and building in-house tools where something like airtable would be used.

Check out the demo here.

Watertable values simplicity, great user experience and extensive capability.

Usage

import React from "react"
import Watertable from "react-watertable"

const mySchema = {
  name: {
    title: "Name",
    type: "text"
  },
  color: {
    title: "Favorite Color",
    type: "select",
    options: [
      { value: "red", label: "Red", color: "#f00" },
      { value: "blue", label: "Blue", color: "#00f" }
    ]
  }
}

const MyApp = () => (
  <Watertable
    schema={mySchema}
    data={[{ name: "Charlie", color: "red" }, { name: "Sarah", color: "blue" }]}
  />
)

Features

  • Validate user input
  • Editable/read-only cells
  • Asynchronous row retrieval (i.e. make API calls to populate table)
  • Asynchronous option retrieval/search
  • Filtering and sorting
  • Hiding columns
  • Nested objects as cell values
  • Custom cell types

Props

PropsTypeDescription
schema{[ColumnName: string]: SchemaDefinition}Describes the data type of each column.
dataArray<Object>(optional) All the rows of the table.
getData(DataSearchQuery) => Promise<Array<Object>>(optional) Method to retrieve data.
renderCell(schemaInfo, value, onChange) => React.Component(optional) Method to render a cell. Return null to fallback to watertable renderer.
onChangeData(newData) => any(optional) Called whenever a cell has changed.
onSave(newData: Array<Object>) => any(optional) If specified, a save button is placed in the table header. This method is called on save press.
getOptions(columnName: string, input: string) => Promise<Array<Option>>(optional) Columns without static options will call this method on user input.
onChangeDisplayConfig(DisplayConfig) => any(optional) Called whenever the view changes e.g. column width changes, filter applied. If not specified, all display configuration disabled.
onChangeSchema(TableSchema) => any(optional) Called when schema is modified. If not specified, schema changes are disabled.
tablenamestring(optional) Displayed above table data.
onUpdateCell
onDeleteRow(record: Object) => any
canAddMoreboolean
canDeleteboolean
recordActionsArray<string>
onClickRecordAction(record: Object, action: string) => any
0.1.22

4 years ago

0.1.21

5 years ago

0.1.20

5 years ago

0.1.19

5 years ago

0.1.18

5 years ago

0.1.17

5 years ago

0.1.16

5 years ago

0.1.15

5 years ago

0.1.14

5 years ago

0.1.13

5 years ago

0.1.12

5 years ago

0.1.11

5 years ago

0.1.10

5 years ago

0.1.9

5 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago