@pnp/spfx-controls-react
Version:
Reusable React controls for SharePoint Framework solutions
78 lines • 3.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var React = tslib_1.__importStar(require("react"));
var ButtonTreeItemAction_1 = tslib_1.__importDefault(require("./ButtonTreeItemAction"));
var DropdownTreeItemAction_1 = require("./DropdownTreeItemAction");
var ITreeItemActions_1 = require("./ITreeItemActions");
/**
* Renders the controls for TreeItem actions component
*/
var TreeItemActionsControl = /** @class */ (function (_super) {
tslib_1.__extends(TreeItemActionsControl, _super);
/**
* Constructor method
* @param props properties interface
*/
function TreeItemActionsControl(props) {
var _this = _super.call(this, props) || this;
var treeItemActions = _this.props.treeItemActions;
var displayMode = treeItemActions.treeItemActionsDisplayMode ? treeItemActions.treeItemActionsDisplayMode : ITreeItemActions_1.TreeItemActionsDisplayMode.Buttons;
_this.state = {
availableActions: [],
displayMode: displayMode
};
return _this;
}
/**
* componentWillMount lifecycle hook
*/
TreeItemActionsControl.prototype.UNSAFE_componentWillMount = function () {
this.getAvailableActions()
.then(function () {
// no-op;
})
.catch(function () {
// no-op;
});
};
/**
* Get the available treeItem actions
*/
TreeItemActionsControl.prototype.getAvailableActions = function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var treeItemActions, availableActions, _i, _a, action;
return tslib_1.__generator(this, function (_b) {
treeItemActions = this.props.treeItemActions;
availableActions = [];
if (treeItemActions.actions) {
for (_i = 0, _a = treeItemActions.actions; _i < _a.length; _i++) {
action = _a[_i];
availableActions.push(action);
}
}
this.setState({
availableActions: availableActions
});
return [2 /*return*/];
});
});
};
/**
* Default React render method
*/
TreeItemActionsControl.prototype.render = function () {
var treeItem = this.props.treeItem;
var _a = this.state, displayMode = _a.displayMode, availableActions = _a.availableActions;
if (!availableActions || availableActions.length <= 0 || !treeItem) {
return null;
}
return (React.createElement("div", null, displayMode === ITreeItemActions_1.TreeItemActionsDisplayMode.ContextualMenu ?
React.createElement(DropdownTreeItemAction_1.DropdownTreeItemAction, { key: "DdAction-".concat(treeItem.key), treeItemActions: availableActions, treeItem: treeItem, treeItemActionCallback: this.props.treeItemActionCallback, theme: this.props.theme })
:
React.createElement(ButtonTreeItemAction_1.default, { key: "BtnAction-".concat(treeItem.key), treeItemActions: availableActions, treeItem: treeItem, treeItemActionCallback: this.props.treeItemActionCallback, theme: this.props.theme })));
};
return TreeItemActionsControl;
}(React.Component));
exports.default = TreeItemActionsControl;
//# sourceMappingURL=TreeItemActionsControl.js.map