Helper for Reactabular to use Semantic-Ui-React table with it.
Should be able to handle any properties specified in Semantic-UI-React documentation.
http://react.semantic-ui.com/collections/table
import React, { Component } from "react";
import componentsWrapper from 'reactabular-semantic-ui';
import * as Table from "reactabular-table";
import "semantic-ui-css/semantic.min.css";
const rows = [
{
id: 100,
name: 'John'
},
{
id: 101,
name: 'Jack'
}
];
const columns = [
{
property: 'name',
header: {
label: 'Name'
}
}
];
// Define properties that you wnat to pass to corresponding components
// All of those are optional
const combinedProps = {
//Semantic UI React <Table /> component props in object format
tableProps: {
striped: true,
color: "red"
},
//Semantic UI React <Table.Header /> component props in object format
headerProps: {
fullWidth: true
},
//Header row props if you want to do something special there
headerRowProps: {},
//Semantic UI React <Table.HeaderCell /> component props in object format
headerCellProps: {
textAlign: "center"
},
//Semantic UI React <Table.Body /> component props in object format
bodyProps: {
className: "customtablebodyclass"
},
//Semantic UI React <Table.Row /> component props in object format
bodyRowProps: {
positive: true
},
//Semantic UI React <Table.Cell /> component props in object format
bodyCellProps: {
textAlign: "left",
positive: true,
icon: "folder",
singleLine: true
}
};
//Set your custom props
//componentsWrapper is possible to call without any parameters
const componentsWithProps = componentsWrapper(combinedProps)
const SemanticReactabular = () => {
return (
<Table.Provider
columns={columns}
components={componentsWithProps}
>
<Table.Header />
<Table.Body rows={rows} rowKey="id" />
</Table.Provider>
);
};
MIT. See LICENSE for details.