UNPKG

@pnp/spfx-controls-react

Version:

Reusable React controls for SharePoint Framework solutions

77 lines 4.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ListToolbar = void 0; var tslib_1 = require("tslib"); /* eslint-disable @typescript-eslint/no-floating-promises */ /* eslint-disable @typescript-eslint/no-unused-vars */ var React = tslib_1.__importStar(require("react")); var jotai_1 = require("jotai"); var lodash_1 = require("lodash"); var react_components_1 = require("@fluentui/react-components"); var react_migration_v8_v9_1 = require("@fluentui/react-migration-v8-v9"); var react_theme_provider_1 = require("@fluentui/react-theme-provider"); var ListToolbarControl_1 = tslib_1.__importDefault(require("./ListToolbarControl")); var ListToolbar = function (props) { var themeV8 = props.theme, context = props.context; var _a = React.useState(), theme = _a[0], setTheme = _a[1]; var currentSPTheme = (0, react_theme_provider_1.useTheme)(); var _b = React.useState(false), isInitialized = _b[0], setIsInitialized = _b[1]; React.useEffect(function () { (function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var teamsContext, teamsTheme, error_1; var _a; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 4, , 5]); if (!(0, lodash_1.has)(context, "sdks.microsoftTeams.teamsJs.app.getContext")) return [3 /*break*/, 2]; return [4 /*yield*/, ((_a = context.sdks.microsoftTeams) === null || _a === void 0 ? void 0 : _a.teamsJs.app.getContext())]; case 1: teamsContext = _b.sent(); teamsTheme = teamsContext.app.theme || "default"; switch (teamsTheme) { case "dark": setTheme(react_components_1.teamsDarkTheme); break; case "contrast": setTheme(react_components_1.teamsHighContrastTheme); break; case "default": setTheme(react_components_1.teamsLightTheme); break; default: setTheme(react_components_1.teamsLightTheme); break; } return [3 /*break*/, 3]; case 2: if (themeV8 || currentSPTheme) { setTheme((0, react_migration_v8_v9_1.createV9Theme)(themeV8 !== null && themeV8 !== void 0 ? themeV8 : currentSPTheme)); } else { setTheme(react_components_1.teamsLightTheme); } _b.label = 3; case 3: return [3 /*break*/, 5]; case 4: error_1 = _b.sent(); console.warn("ListToolbar: Failed to resolve theme, using default", error_1); setTheme(react_components_1.teamsLightTheme); return [3 /*break*/, 5]; case 5: setIsInitialized(true); return [2 /*return*/]; } }); }); })(); }, [context, currentSPTheme, themeV8]); if (!isInitialized) return React.createElement(React.Fragment, null); return (React.createElement(React.Fragment, null, React.createElement(react_components_1.IdPrefixProvider, { value: "userPicker-" }, React.createElement(react_components_1.FluentProvider, { theme: theme }, React.createElement(jotai_1.Provider, null, React.createElement(ListToolbarControl_1.default, tslib_1.__assign({}, props))))))); }; exports.ListToolbar = ListToolbar; //# sourceMappingURL=ListToolbar.js.map