UNPKG

vue-socials

Version:

Social media share buttons and counts for Vue.js

58 lines (50 loc) 1.67 kB
import { defineComponent } from 'vue'; import JSONP from '../../utils/jsonp.js'; import getSerialisedParams from '../../utils/getSerialisedParams.js'; import getSeparatedList from '../../utils/getSeparatedList.js'; import BaseCount from '../../mixins/BaseCount/BaseCount.js'; /** * Hey! * * SFacebookCount component used for Facebook social network * @link https://www.facebook.com/ * @example https://graph.facebook.com/?url=https://github.com/ */ var SFacebookCount = /* #__PURE__ */defineComponent({ mixins: [BaseCount('Facebook')], methods: { handleFacebookResponse: function handleFacebookResponse(data) { this.handleResult(data); if ('engagement' in data) { var _data$engagement; this.handleCount((_data$engagement = data.engagement) === null || _data$engagement === void 0 ? void 0 : _data$engagement.share_count); } } }, mounted: function mounted() { var _this = this; var BASE_URL = 'https://graph.facebook.com/'; var shareOptions = this.shareOptions; var id = shareOptions.id, accessToken = shareOptions.accessToken, fields = shareOptions.fields, scopes = shareOptions.scopes; var finalURL = "".concat(BASE_URL).concat(getSerialisedParams({ id: id, access_token: accessToken, fields: getSeparatedList(fields), scopes: getSeparatedList(scopes) })); this.handleLoading(true); JSONP(finalURL, function (err, data) { _this.handleLoading(false); if (data) { _this.handleFacebookResponse(data); } if (err) { _this.handleError(err); } }); } }); export default SFacebookCount;