@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
JavaScript
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);
;