@fakel/rest-admin
Version:
An application that makes it easier to work with your API
68 lines (67 loc) • 2.93 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
to[j] = from[i];
return to;
};
import React, { useState } from 'react';
import { useHistory } from 'react-router-dom';
import Table from 'antd/lib/table';
import { observer } from 'mobx-react';
import ListSelection from './ListSelection';
import { useDataProviderStore } from '../../hooks';
import { useResourceStore } from '../../hooks/useResourceStore';
import { useListStore } from '../../hooks/useListStore';
var ListView = observer(function (props) {
var dataSource = props.dataSource, columns = props.columns, resource = props.resource, perPage = props.perPage, page = props.page, loading = props.loading, view = props.view;
var dataProviderStore = useDataProviderStore();
var listStore = useListStore();
var resourceStore = useResourceStore();
var history = useHistory();
var _a = useState([]), selectedRows = _a[0], setSelectedRows = _a[1];
var onSelect = function (selectedRowsIds) {
setSelectedRows(__spreadArray([], selectedRowsIds));
};
var onRow = function (record) {
if (!record.id) {
console.warn('WARNING: Record must have an id parameter');
}
return {
onClick: function () {
history.push("/" + resource + "/" + (view || 'edit') + "/" + record.id);
},
};
};
var onPageChange = function (page, perPage) {
listStore.getData(dataProviderStore.dataProvider, resourceStore.current, {
pagination: {
page: page,
perPage: perPage,
},
});
};
return (React.createElement(React.Fragment, null,
selectedRows && selectedRows.length ? (React.createElement(ListSelection, { setSelectedRows: setSelectedRows, selectedRows: selectedRows })) : null,
React.createElement(Table, __assign({}, props.viewOptions, { scroll: { x: '100%' }, loading: loading, style: { minWidth: '80vw' }, size: "middle", onRow: onRow, rowSelection: {
type: 'checkbox',
selectedRowKeys: selectedRows,
onChange: onSelect,
}, dataSource: dataSource, columns: columns, pagination: {
showSizeChanger: true,
total: listStore.total,
defaultPageSize: perPage,
defaultCurrent: 1,
onChange: onPageChange,
} }))));
});
export default ListView;