@pnp/spfx-controls-react
Version:
Reusable React controls for SharePoint Framework solutions
77 lines • 4.08 kB
JavaScript
;
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