UNPKG

react-smart-dynamic-table

Version:
116 lines (95 loc) 3.28 kB
# Description Using the react-smart-dynamic-table you can dynamically add, edit, delete columns, headers, cells # Demo [DEMO LINK](https://codesandbox.io/s/nifty-jennings-8cu39?file=/src/App.js) # Installation ```npm i react-smart-dynamic-table``` # API | Property | Required | Type | Description | Example | | ------------- |-------------| -----| ------------- |-------------| | tableColumns | yes | arrayof({ header: string, columnData: arrayof(string)}) | initial table data | ``` tableColumns = {[{ header: 'company', columnData: ['adidas', 'nike', 'puma', 'reebok'] }, { header: 'founded', columnData: ['1949', '1964', '1948', '1958'] }]}```| | emptyCellPlaceholder | no | string | empty cell placeholder | ```emptyCellPlaceholder="empty" ```| | tableClasses | no | object | keys are values from STYLING section, values are your custom classes, or array of classes | ``` tableClasses={{ table: classes.table, addRowButton: classes.addRowButton, sendButton: [classes.sendButton, classes.mt] }} ``` | | cellSpacing | no | string | value to define gap between cells | ```cellSpacing = "300"``` | | minColumnSize | no | number | value to define minimal size of table columns (default ```300px```) | ````minColumnSize={200}``` | | onCeilEdit | no | function | gets new Table data as a prop, emmits when edit cell | - | | onCeilBlur | no | function | gets new Table data as a prop, emmits when cell blurs | - | | onHeaderEdit | no | function | gets new Table data as a prop, emmits when edit header | - | | onHeaderBlur | no | function | gets new Table data as a prop, emmits when header blurs | - | | onSendData | no | function | gets new Table data as a prop, emmits when click send button | - | ## STYLING: ### General Buttons * addColumnButton * addRowButton * sendButton ### Modal * modalOverlay * modal * modalText * modalInput * modalSetButton * modalCloseButton ### Table * container * table * tableHead * tableHeadRow * tableHeadCell * tableHeadTextarea * deleteButton * deleteRowButton * tableBody * tableBodyRow * tableBodyCeilTextarea # Usage ### App.js ```javascript import Table from 'react-smart-dynamic-table' import classes from './App.module.scss'; function App() { const tableColumns = [{ header: 'name', columnData: ['adidas', 'nike', 'puma', 'reebok'] }, { header: 'founded', columnData: ['1949', '1964', '1948', '1958'] }, { header: 'origin', columnData: ['Germany', '', 'Germany', 'USA'] } ] return ( <div className="App"> <Table tableColumns={tableColumns} tableClasses={{ container: classes.container, addRowButton: classes.addRowButton, sendButton: [classes.sendButton, classes.mt] }} /> </div> ); } export default App; ``` ### App.module.scss ``` .addRowButton { color: red; } .sendButton { background-color: black; color: white; } .mt { margin-top: 30px; } .container { margin-top: 20px; } ``` expected result: ![alt text](/public/result.jpg)