UNPKG

@vlsergey/react-bootstrap-pagetable

Version:

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

29 lines (28 loc) 1.83 kB
import { __assign, __read, __rest, __spreadArray } from "tslib"; import React, { useCallback, useState } from 'react'; import { DEFAULT_FOOTER_HEADER_ELEMENTS } from '../controlled/'; import ActionsContext from './ActionsContext'; import ActionsToolbar from './ActionsToolbar'; var withActions = function (Child) { return function WithActions(_a) { var actions = _a.actions, buttonProps = _a.buttonProps, _b = _a.footerElements, footerElements = _b === void 0 ? __spreadArray(__spreadArray([], __read(DEFAULT_FOOTER_HEADER_ELEMENTS)), [ [[ActionsToolbar]], ]) : _b, onAfterAction = _a.onAfterAction, onRefreshRequired = _a.onRefreshRequired, onSelectedIdsChange = _a.onSelectedIdsChange, selectable = _a.selectable, etcProps = __rest(_a, ["actions", "buttonProps", "footerElements", "onAfterAction", "onRefreshRequired", "onSelectedIdsChange", "selectable"]); var _c = __read(useState([]), 2), selectedIds = _c[0], setSelectedIds = _c[1]; var handleSelectedIdsChange = useCallback(function (selectedIds) { setSelectedIds(selectedIds); if (onSelectedIdsChange) { onSelectedIdsChange(selectedIds); } }, [onSelectedIdsChange, setSelectedIds]); return React.createElement(ActionsContext.Provider, { value: { actions: actions, buttonProps: buttonProps, onAfterAction: onAfterAction, onRefreshRequired: onRefreshRequired, selectedIds: selectedIds, } }, React.createElement(Child, __assign({}, etcProps, { footerElements: footerElements, onSelectedIdsChange: handleSelectedIdsChange, selectable: selectable || !!actions, selectedIds: selectedIds }))); }; }; export default withActions;