UNPKG

@vlsergey/react-bootstrap-pagetable

Version:

Complex solution to work with pageable data, including sorting, filtering, actions, changing displayed columns, etc.

31 lines (30 loc) 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var react_1 = tslib_1.__importStar(require("react")); var controlled_1 = require("../controlled/"); var ActionsContext_1 = tslib_1.__importDefault(require("./ActionsContext")); var ActionsToolbar_1 = tslib_1.__importDefault(require("./ActionsToolbar")); var withActions = function (Child) { return function WithActions(_a) { var actions = _a.actions, buttonProps = _a.buttonProps, _b = _a.footerElements, footerElements = _b === void 0 ? tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(controlled_1.DEFAULT_FOOTER_HEADER_ELEMENTS)), [ [[ActionsToolbar_1.default]], ]) : _b, onAfterAction = _a.onAfterAction, onRefreshRequired = _a.onRefreshRequired, onSelectedIdsChange = _a.onSelectedIdsChange, selectable = _a.selectable, etcProps = tslib_1.__rest(_a, ["actions", "buttonProps", "footerElements", "onAfterAction", "onRefreshRequired", "onSelectedIdsChange", "selectable"]); var _c = tslib_1.__read(react_1.useState([]), 2), selectedIds = _c[0], setSelectedIds = _c[1]; var handleSelectedIdsChange = react_1.useCallback(function (selectedIds) { setSelectedIds(selectedIds); if (onSelectedIdsChange) { onSelectedIdsChange(selectedIds); } }, [onSelectedIdsChange, setSelectedIds]); return react_1.default.createElement(ActionsContext_1.default.Provider, { value: { actions: actions, buttonProps: buttonProps, onAfterAction: onAfterAction, onRefreshRequired: onRefreshRequired, selectedIds: selectedIds, } }, react_1.default.createElement(Child, tslib_1.__assign({}, etcProps, { footerElements: footerElements, onSelectedIdsChange: handleSelectedIdsChange, selectable: selectable || !!actions, selectedIds: selectedIds }))); }; }; exports.default = withActions;