@mornya/react-social-libs
Version:
The project of React.js Social Share and Widget modules.
112 lines (111 loc) • 3.97 kB
JavaScript
import { DynamicLoad } from '@mornya/dynamic-load-libs';
export function initFacebookSDK(appId, isDebug) {
if (isDebug === void 0) { isDebug = false; }
var SDK_URL = {
production: 'https://connect.facebook.net/ko_KR/sdk.js',
debug: 'https://connect.facebook.net/ko_KR/sdk/debug.js',
};
return new Promise(function (resolve) {
if (!window.isInitializedFacebook) {
window.isInitializedFacebook = true;
if (!document.getElementById('fb-root')) {
var fbRootDiv = document.createElement('div');
fbRootDiv.id = 'fb-root';
document.body.appendChild(fbRootDiv);
}
window.fbAsyncInit = function () {
if (window.FB) {
window.FB.init({
appId: appId,
version: 'v17.0',
autoLogAppEvents: true,
cookie: true,
status: true,
xfbml: true,
});
window.FB.getLoginStatus(function () { return resolve(true); });
}
};
DynamicLoad.script({ id: 'fb-jssdk', src: SDK_URL[isDebug ? 'debug' : 'production'] }).catch(console.error);
}
else {
resolve(true);
}
});
}
export function destroyFacebookSDK() {
if (window.FB) {
window.FB = undefined;
}
if (window.fbAsyncInit) {
window.fbAsyncInit = undefined;
}
window.isInitializedFacebook = undefined;
}
export function initTwitterSDK() {
var SDK_URL = 'https://platform.twitter.com/widgets.js';
return new Promise(function (resolve) {
if (!window.isInitializedTwitter) {
window.isInitializedTwitter = true;
DynamicLoad.script({ id: 'tw-jssdk', src: SDK_URL, isReload: true })
.then(function () { return resolve(true); })
.catch(console.error);
}
else {
resolve(true);
}
});
}
export function initKakaoSDK(appKey) {
var SDK_URL = 'https://developers.kakao.com/sdk/js/kakao.min.js';
return new Promise(function (resolve) {
if (!window.isInitializedKakao) {
window.isInitializedKakao = true;
window.kakaoAsyncInit = function () {
window.Kakao.init(appKey);
resolve(true);
};
DynamicLoad.script({ id: 'kk-jssdk', src: SDK_URL, isReload: true }).catch(console.error);
}
else {
var tid_1 = setInterval(function () {
var _a;
if ((_a = window.Kakao) === null || _a === void 0 ? void 0 : _a.isInitialized()) {
clearInterval(tid_1);
tid_1 = undefined;
resolve(true);
}
}, 100);
}
});
}
export function destroyKakaoSDK() {
if (window.Kakao) {
window.Kakao = undefined;
}
if (window.kakaoAsyncInit) {
window.kakaoAsyncInit = undefined;
}
window.isInitializedKakao = undefined;
}
export function initFlipboardSDK() {
var SDK_URL = 'https://cdn.flipboard.com/web/buttons/js/flbuttons.min.js';
return new Promise(function (resolve) {
if (window.FlipboardWidgets && typeof window.FlipboardWidgets === 'function') {
resolve(true);
}
else {
DynamicLoad.script({ id: 'fl-jssdk', src: SDK_URL })
.then(function () { return resolve(true); })
.catch(console.error);
}
});
}
export function initTumblrSDK() {
var SDK_URL = 'https://assets.tumblr.com/share-button.js';
return new Promise(function (resolve) {
DynamicLoad.script({ id: 'tu-jssdk', src: SDK_URL, isReload: true })
.then(function () { return resolve(true); })
.catch(console.error);
});
}