UNPKG

@arc-publishing/sdk-identity

Version:
74 lines 3.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initFacebookLogin = exports.loadFacebookSDK = void 0; var tslib_1 = require("tslib"); var locales_1 = require("../utils/locales"); var identity_1 = tslib_1.__importDefault(require("../sdk/identity")); var FB_SDK_ID = 'facebook-jssdk'; var loadFacebookSDK = function (fbLocale) { return new Promise(function (resolve, reject) { if (!document.getElementById(FB_SDK_ID)) { var element = document.createElement('script'); var parent_1 = 'body'; var attr = 'src'; element.onload = function () { resolve("https://connect.facebook.net/".concat(fbLocale, "/sdk.js")); }; element.onerror = function () { reject('Error loading Facebook SDK'); }; element.async = true; element.id = FB_SDK_ID; element[attr] = "https://connect.facebook.net/".concat(fbLocale, "/sdk.js"); document[parent_1].appendChild(element); } else { resolve(); } }); }; exports.loadFacebookSDK = loadFacebookSDK; function initFacebookLogin(appId, locale, customButton) { return tslib_1.__awaiter(this, void 0, void 0, function () { var fbAppId, userLocale, fbLocale; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: if (!(!appId && !identity_1.default.configOptions)) return [3, 2]; return [4, identity_1.default.getConfig()]; case 1: _a.sent(); _a.label = 2; case 2: fbAppId = appId ? appId : identity_1.default.configOptions && identity_1.default.configOptions.facebookAppId ? identity_1.default.configOptions.facebookAppId.split(',')[0] : null; if (!!fbAppId) return [3, 3]; throw new Error('[Arc Identity SDK] - Facebook App ID not found, please add one in settings or explicitly pass one to the initFacebookLogin method.'); case 3: userLocale = locale ? locale : (0, locales_1.getBrowserLocale)(); fbLocale = (0, locales_1.bestFacebookLocaleFor)(userLocale); return [4, (0, exports.loadFacebookSDK)(fbLocale)]; case 4: _a.sent(); if (customButton) { identity_1.default._useCustomFBButton = true; } window.FB.init({ appId: fbAppId, autoLogAppEvents: true, xfbml: true, status: true, version: 'v20.0' }); _a.label = 5; case 5: return [2]; } }); }); } exports.initFacebookLogin = initFacebookLogin; exports.default = initFacebookLogin; //# sourceMappingURL=initFacebookLogin.js.map