@ithaka/bonsai
Version:
ITHAKA core styling
51 lines (46 loc) • 1.55 kB
JavaScript
import { BonsaiEmail } from "./bonsai.email";
import { BonsaiFacebook } from "./bonsai.facebook";
import { BonsaiTumblr } from "./bonsai.tumblr";
import { BonsaiTwitter } from "./bonsai.twitter";
/** Social sharing module that initializes component based on elements with data-social-sharing attribute
* @class
* @name BonsaiSocialSharing
*
* @example
* new BonsaiSocialSharing();
*
*
*/
class BonsaiSocialSharing {
constructor() {
this.$socialElements = $("[data-social-sharing]");
this._initialize();
}
/**
* Create buttons and add them to social container
*
* @private
*/
_initialize() {
this.$socialElements.each(($index, socialElement) => {
const mediaTypes = $(socialElement).data("mediaTypes") || ["facebook", "twitter", "tumblr", "email"];
mediaTypes.forEach((mediaType) => {
switch(mediaType) {
case "facebook":
new BonsaiFacebook(socialElement).addButton();
break;
case "twitter":
new BonsaiTwitter(socialElement).addButton();
break;
case "tumblr":
new BonsaiTumblr(socialElement).addButton();
break;
case "email":
new BonsaiEmail(socialElement).addButton();
break;
}
});
});
}
}
export { BonsaiSocialSharing };