@vlsergey/react-bootstrap-pagetable
Version:
Complex solution to work with pageable data, including sorting, filtering, actions, changing displayed columns, etc.
20 lines (19 loc) • 1.24 kB
JavaScript
import { __assign, __read, __rest, __spreadArray } from "tslib";
import Button from '@vlsergey/react-bootstrap-button-with-spinner';
import React, { useCallback } from 'react';
function ActionButton(_a) {
var action = _a.action, disabled = _a.disabled, onAction = _a.onAction, selectedItems = _a.selectedItems, size = _a.size, etcProps = __rest(_a, ["action", "disabled", "onAction", "selectedItems", "size"]);
var handleClick = useCallback(function () {
var etc = [];
for (var _i = 0; _i < arguments.length; _i++) {
etc[_i] = arguments[_i];
}
return onAction.apply(void 0, __spreadArray([action], __read(etc)));
}, [action, onAction]);
if (action.buttonComponent) {
var ActionButtonComponent = action.buttonComponent;
return React.createElement(ActionButtonComponent, __assign({ disabled: disabled, onClick: handleClick, selectedItems: selectedItems, size: size, variant: action.variant }, etcProps), action.title);
}
return React.createElement(Button, __assign({ className: 'mr-2', disabled: disabled, onClick: handleClick, size: size, variant: action.variant }, etcProps), action.title);
}
export default React.memo(ActionButton);