Skip to content

Instantly share code, notes, and snippets.

@lnfel
Forked from koistya/fb.js
Created November 9, 2021 02:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lnfel/1fa0de1891cd84c6b391f30f05e5ba6b to your computer and use it in GitHub Desktop.
Save lnfel/1fa0de1891cd84c6b391f30f05e5ba6b to your computer and use it in GitHub Desktop.
Lazy loader for Facebook JavaScript SDK / Customer Chat SDK https://medium.com/p/5b7c21343048/
import loadScript from 'load-script';
let initialized = false;
let queue = [];
export function fb(callback) {
if if (initialized) {
callback(window.FB);
} else {
queue.push(callback);
if (!window.fbAsyncInit) {
window.fbAsyncInit = () => {
window.FB.init({
appId: window.config.facebook.appId,
autoLogAppEvents: true,
status: true,
cookie: true,
xfbml: false,
version: 'v3.2',
});
initialized = true;
queue.forEach(cb => cb(window.FB));
queue = null;
};
const script = window.localStorage.getItem('fb:debug') === 'true'
? 'xfbml.customerchat/debug.js'
: 'xfbml.customerchat.js';
loadScript(`https://connect.facebook.net/en_US/sdk/${script}`, { async: true });
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment