@pnp/spfx-controls-react
Version:
Reusable React controls for SharePoint Framework solutions
61 lines • 3.06 kB
JavaScript
import { __assign, __awaiter, __generator } from "tslib";
/* eslint-disable @typescript-eslint/no-floating-promises */
/* eslint-disable @typescript-eslint/no-unused-vars */
import * as React from "react";
import { Provider } from "jotai";
import { has } from "lodash";
import { FluentProvider, IdPrefixProvider, teamsDarkTheme, teamsHighContrastTheme, teamsLightTheme, } from "@fluentui/react-components";
import { createV9Theme } from "@fluentui/react-migration-v8-v9";
import { useTheme } from "@fluentui/react-theme-provider";
import { UserPickerControl } from "./UserPickerControl";
export var UserPicker = function (props) {
var themeV8 = props.theme, context = props.context;
var _a = React.useState(), theme = _a[0], setTheme = _a[1];
var currentSPTheme = useTheme();
var _b = React.useState(false), isInitialized = _b[0], setIsInitialized = _b[1];
React.useEffect(function () {
(function () { return __awaiter(void 0, void 0, void 0, function () {
var teamsContext, teamsTheme;
var _a;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
if (!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(teamsDarkTheme);
break;
case "contrast":
setTheme(teamsHighContrastTheme);
break;
case "default":
setTheme(teamsLightTheme);
break;
default:
setTheme(teamsLightTheme);
break;
}
return [3 /*break*/, 3];
case 2:
setTheme(createV9Theme(currentSPTheme));
_b.label = 3;
case 3:
setIsInitialized(true);
return [2 /*return*/];
}
});
}); })();
}, [context, currentSPTheme]);
if (!isInitialized)
return React.createElement(React.Fragment, null);
return (React.createElement(React.Fragment, null,
React.createElement(IdPrefixProvider, { value: "userPicker-" },
React.createElement(FluentProvider, { theme: theme },
React.createElement(Provider, null,
React.createElement(UserPickerControl, __assign({}, props)))))));
};
//# sourceMappingURL=UserPicker.js.map