UNPKG

@pnp/spfx-controls-react

Version:

Reusable React controls for SharePoint Framework solutions

78 lines 3.47 kB
"use strict"; 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