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