@arc-publishing/sdk-identity
Version:
JS Identity SDK for working with Identity API
74 lines • 3.19 kB
JavaScript
;
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