grommet
Version:
focus on the essential experience
109 lines (108 loc) • 2.55 kB
JavaScript
;
exports.__esModule = true;
exports["default"] = exports.Sort = void 0;
var _react = _interopRequireDefault(require("react"));
var _grommet = require("grommet");
var _data = require("./data");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
// This story uses intentionally-messy values (e.g. mixed case)
// to demonstrate case-insensitive sorting
var DATA = [{
name: 'zoey',
location: '',
date: '',
percent: 0,
paid: 0
}, {
name: 'aaron',
location: '',
date: '',
percent: 0,
paid: 0
}, {
name: 'Zelda',
location: '',
date: '',
percent: 0,
paid: 0
}, {
name: 'Alan',
location: '',
date: '',
percent: 0,
paid: 0
}, {
name: 'Bryan',
location: 'Fort Collins',
date: '2018-06-10',
percent: 30,
paid: 1234
}, {
name: 'Chris',
location: 'Palo Alto',
date: '2018-06-09',
percent: 40,
paid: 2345
}, {
name: 'Eric',
location: 'Palo Alto',
date: '2018-06-11',
percent: 80,
paid: 3456
}, {
name: 'Doug',
location: 'Fort Collins',
date: '2018-06-10',
percent: 60,
paid: 1234
}, {
name: 'Jet',
location: 'Palo Alto',
date: '2018-06-09',
percent: 40,
paid: 3456
}, {
name: 'Michael',
location: 'Boise',
date: '2018-06-11',
percent: 50,
paid: 1234
}, {
name: 'Tracy',
location: 'San Francisco',
date: '2018-06-10',
percent: 10,
paid: 2345
}];
var Sort = exports.Sort = function Sort() {
var _React$useState = _react["default"].useState({
property: 'name',
direction: 'desc'
}),
sort = _React$useState[0],
setSort = _React$useState[1];
return (
/*#__PURE__*/
// Uncomment <Grommet> lines when using outside of storybook
// <Grommet theme={grommet}>
_react["default"].createElement(_grommet.Box, {
align: "center",
pad: "large"
}, /*#__PURE__*/_react["default"].createElement(_grommet.DataTable, {
columns: _data.columns.map(function (c) {
return _extends({}, c, {
search: c.property === 'name' || c.property === 'location'
});
}),
data: DATA,
sort: sort,
onSort: setSort,
resizeable: true
}))
// </Grommet>
);
};
var _default = exports["default"] = {
title: 'Visualizations/DataTable/Sort'
};