@pnp/spfx-controls-react
Version:
Reusable React controls for SharePoint Framework solutions
42 lines • 2.13 kB
JavaScript
;
// tslint:disable:max-classes-per-file
Object.defineProperty(exports, "__esModule", { value: true });
exports.Consumer = exports.Provider = void 0;
var tslib_1 = require("tslib");
var React = tslib_1.__importStar(require("react"));
var AccordionContext_1 = require("./AccordionContext");
var Context = React.createContext(null);
var Provider = function (_a) {
var children = _a.children, uuid = _a.uuid, accordionContext = _a.accordionContext, dangerouslySetExpanded = _a.dangerouslySetExpanded;
var toggleExpanded = function () {
accordionContext.toggleExpanded(uuid);
};
var renderChildren = function (ctx) {
var expanded = dangerouslySetExpanded ? dangerouslySetExpanded : ctx.isItemExpanded(uuid);
var disabled = ctx.isItemDisabled(uuid);
var panelAttributes = ctx.getPanelAttributes(uuid, dangerouslySetExpanded);
var headingAttributes = ctx.getHeadingAttributes(uuid);
var buttonAttributes = ctx.getButtonAttributes(uuid, dangerouslySetExpanded);
return (React.createElement(Context.Provider, { value: {
uuid: uuid,
expanded: expanded,
disabled: disabled,
toggleExpanded: toggleExpanded,
panelAttributes: panelAttributes,
headingAttributes: headingAttributes,
buttonAttributes: buttonAttributes,
} }, children));
};
return (React.createElement(AccordionContext_1.Consumer, null, renderChildren));
};
var ProviderWrapper = function (props) { return (React.createElement(AccordionContext_1.Consumer, null, function (accordionContext) { return (React.createElement(Provider, tslib_1.__assign({}, props, { accordionContext: accordionContext }))); })); };
exports.Provider = ProviderWrapper;
var Consumer = function (_a) {
var children = _a.children;
var renderChildren = function (container) {
return container ? children(container) : null;
};
return React.createElement(Context.Consumer, null, renderChildren);
};
exports.Consumer = Consumer;
//# sourceMappingURL=ItemContext.js.map