UNPKG

@arc-publishing/sdk-identity

Version:
56 lines 2.73 kB
import { __awaiter, __generator } from "tslib"; import Identity from './identity'; import { socialLogin } from './socialSignOn'; import getFacebookLoginStatus from './getFacebookLoginStatus'; import { isFacebookLoginResponse } from './socialSignOnTypes'; export function facebookSignOn() { return __awaiter(this, void 0, void 0, function () { var facebookLoginStatus; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4, getFacebookLoginStatus(true)]; case 1: facebookLoginStatus = _a.sent(); if (!isFacebookLoginResponse(facebookLoginStatus)) return [3, 5]; if (!(facebookLoginStatus.status === 'connected')) return [3, 3]; return [4, socialLogin('facebook', { credentials: facebookLoginStatus.authResponse.accessToken })]; case 2: return [2, _a.sent()]; case 3: if (Identity._useCustomFBButton) { return [2, customButtonFacebookSignOn()]; } else { throw new Error("User canceled login, did not fully authorize, or is not logged in to Facebook: ".concat(facebookLoginStatus)); } _a.label = 4; case 4: return [3, 6]; case 5: throw new Error("Error getting login status. Please try again. ".concat(facebookLoginStatus)); case 6: return [2]; } }); }); } export function customButtonFacebookSignOn() { return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { return [2, window.FB.login(function (response) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: if (!(response.status === 'connected')) return [3, 2]; return [4, socialLogin('facebook', { credentials: response.authResponse.accessToken })]; case 1: return [2, _a.sent()]; case 2: throw new Error("User canceled login, did not fully authorize, or is not logged in to Facebook: ".concat(response)); } }); }); })]; }); }); } export default facebookSignOn; //# sourceMappingURL=facebookSignOn.js.map