@pnp/spfx-controls-react
Version:
Reusable React controls for SharePoint Framework solutions
24 lines • 1.53 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ToolbarItemRenderer = void 0;
var tslib_1 = require("tslib");
var React = tslib_1.__importStar(require("react"));
var react_components_1 = require("@fluentui/react-components");
/**
* Renders a single toolbar button with optional tooltip and label.
*/
var ToolbarItemRenderer = function (_a) {
var item = _a.item, isLoading = _a.isLoading, itemClass = _a.itemClass, labelClass = _a.labelClass;
if (item.visible === false)
return null;
if (item.onRender)
return item.onRender();
var labelContent = labelClass ? (React.createElement("span", { className: labelClass }, item.label)) : (item.label);
var button = item.label ? (React.createElement(react_components_1.ToolbarButton, { className: itemClass, "aria-label": item.ariaLabel || item.tooltip || item.label, icon: item.icon, onClick: item.onClick, disabled: item.disabled || isLoading, appearance: item.appearance }, labelContent)) : (React.createElement(react_components_1.ToolbarButton, { className: itemClass, "aria-label": item.ariaLabel || item.tooltip || item.key, icon: item.icon, onClick: item.onClick, disabled: item.disabled || isLoading, appearance: item.appearance }));
if (item.tooltip) {
return (React.createElement(react_components_1.Tooltip, { content: item.tooltip, relationship: "label" }, button));
}
return button;
};
exports.ToolbarItemRenderer = ToolbarItemRenderer;
//# sourceMappingURL=ToolbarItemRenderer.js.map