UNPKG

@pnp/spfx-controls-react

Version:

Reusable React controls for SharePoint Framework solutions

113 lines 5.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useTeams = void 0; var tslib_1 = require("tslib"); var sp_http_1 = require("@microsoft/sp-http"); var sp_page_context_1 = require("@microsoft/sp-page-context"); var react_1 = tslib_1.__importDefault(require("react")); // eslint-disable-next-line @typescript-eslint/explicit-function-return-type var useTeams = function (serviceScope) { var _pageContext = react_1.default.useRef(); var _msgGraphClient = react_1.default.useRef(); var init = react_1.default.useCallback(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var _a; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: _pageContext.current = serviceScope.consume(sp_page_context_1.PageContext.serviceKey); _a = _msgGraphClient; return [4 /*yield*/, serviceScope .consume(sp_http_1.MSGraphClientFactory.serviceKey) .getClient("3")]; case 1: _a.current = _b.sent(); return [2 /*return*/]; } }); }); }, [serviceScope]); var getMyTeams = react_1.default.useCallback(function (filter) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var teamsResults; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, init()]; case 1: _a.sent(); if (!_msgGraphClient.current) return [2 /*return*/]; return [4 /*yield*/, _msgGraphClient.current .api("/me/joinedTeams") .filter(filter ? "startswith(toupper(displayName),toupper('".concat(filter, "'))") : "") .select("id,displayName") .get()]; case 2: teamsResults = _a.sent(); return [2 /*return*/, teamsResults.value]; } }); }); }, [init]); var getTeamChannels = react_1.default.useCallback(function (teamId, filter) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var teamsChannelResults; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, init()]; case 1: _a.sent(); if (!_msgGraphClient.current) return [2 /*return*/]; return [4 /*yield*/, _msgGraphClient.current .api("/teams/".concat(teamId, "/channels")) .filter(filter ? "startswith(toupper(displayName),toupper('".concat(filter, "'))") : "") .get()]; case 2: teamsChannelResults = _a.sent(); return [2 /*return*/, teamsChannelResults.value]; } }); }); }, [init]); var getTeamMembers = react_1.default.useCallback(function (teamId) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var usersResults; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, init()]; case 1: _a.sent(); if (!_msgGraphClient.current) return [2 /*return*/]; return [4 /*yield*/, _msgGraphClient.current .api("/teams/".concat(teamId, "/members")) .get()]; case 2: usersResults = _a.sent(); return [2 /*return*/, usersResults.value]; } }); }); }, [init]); var getTeamOwners = react_1.default.useCallback(function (teamId) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var usersResults; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, init()]; case 1: _a.sent(); if (!_msgGraphClient.current) return [2 /*return*/]; return [4 /*yield*/, _msgGraphClient.current .api("/teams/".concat(teamId, "/members")) .filter("microsoft.graph.aadUserConversationMember/roles/any(c:c eq 'owner')") .get()]; case 2: usersResults = _a.sent(); return [2 /*return*/, usersResults === null || usersResults === void 0 ? void 0 : usersResults.value]; } }); }); }, [init]); return { init: init, getMyTeams: getMyTeams, getTeamChannels: getTeamChannels, getTeamMembers: getTeamMembers, getTeamOwners: getTeamOwners }; }; exports.useTeams = useTeams; //# sourceMappingURL=useTeams.js.map