@arc-publishing/sdk-identity
Version:
JS Identity SDK for working with Identity API
69 lines • 2.87 kB
JavaScript
import { __awaiter, __generator } from "tslib";
import { getBrowserLocale, bestFacebookLocaleFor } from '../utils/locales';
import Identity from '../sdk/identity';
var FB_SDK_ID = 'facebook-jssdk';
export 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();
}
});
};
export function initFacebookLogin(appId, locale, customButton) {
return __awaiter(this, void 0, void 0, function () {
var fbAppId, userLocale, fbLocale;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!(!appId && !Identity.configOptions)) return [3, 2];
return [4, Identity.getConfig()];
case 1:
_a.sent();
_a.label = 2;
case 2:
fbAppId = appId
? appId
: Identity.configOptions && Identity.configOptions.facebookAppId
? Identity.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 : getBrowserLocale();
fbLocale = bestFacebookLocaleFor(userLocale);
return [4, loadFacebookSDK(fbLocale)];
case 4:
_a.sent();
if (customButton) {
Identity._useCustomFBButton = true;
}
window.FB.init({
appId: fbAppId,
autoLogAppEvents: true,
xfbml: true,
status: true,
version: 'v20.0'
});
_a.label = 5;
case 5: return [2];
}
});
});
}
export default initFacebookLogin;
//# sourceMappingURL=initFacebookLogin.js.map