UNPKG

@vlsergey/react-bootstrap-pagetable

Version:

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

22 lines (21 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var react_bootstrap_button_with_spinner_1 = tslib_1.__importDefault(require("@vlsergey/react-bootstrap-button-with-spinner")); var react_1 = tslib_1.__importStar(require("react")); function ActionButton(_a) { var action = _a.action, disabled = _a.disabled, onAction = _a.onAction, selectedItems = _a.selectedItems, size = _a.size, etcProps = tslib_1.__rest(_a, ["action", "disabled", "onAction", "selectedItems", "size"]); var handleClick = react_1.useCallback(function () { var etc = []; for (var _i = 0; _i < arguments.length; _i++) { etc[_i] = arguments[_i]; } return onAction.apply(void 0, tslib_1.__spreadArray([action], tslib_1.__read(etc))); }, [action, onAction]); if (action.buttonComponent) { var ActionButtonComponent = action.buttonComponent; return react_1.default.createElement(ActionButtonComponent, tslib_1.__assign({ disabled: disabled, onClick: handleClick, selectedItems: selectedItems, size: size, variant: action.variant }, etcProps), action.title); } return react_1.default.createElement(react_bootstrap_button_with_spinner_1.default, tslib_1.__assign({ className: 'mr-2', disabled: disabled, onClick: handleClick, size: size, variant: action.variant }, etcProps), action.title); } exports.default = react_1.default.memo(ActionButton);