UNPKG

@pnp/spfx-controls-react

Version:

Reusable React controls for SharePoint Framework solutions

42 lines 2.13 kB
"use strict"; // 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