vue-socials
Version:
Social media share buttons and counts for Vue.js
60 lines (51 loc) • 1.4 kB
JavaScript
import { defineComponent } from 'vue';
import BaseCount from '../../mixins/BaseCount/BaseCount.js';
import JSONP from '../../utils/jsonp.js';
/**
* Hey!
*
* SGithubGistCount component used for Github Gists social network
* @link https://gist.github.com/
*/
var GITHUB_LINK_TYPES = {
fork: 'fork'
};
var SGithubGistCount = /* #__PURE__ */defineComponent({
name: 'SGithubGistCount',
methods: {
handleGithubResponse: function handleGithubResponse(data) {
var shareOptions = this.shareOptions;
var type = shareOptions.type;
this.handleResult(data);
var count;
switch (type) {
default:
case GITHUB_LINK_TYPES.fork:
if ('forks' in data.data) {
count = data.data.forks.length;
}
break;
}
this.handleCount(count);
}
},
mixins: [BaseCount('GithubGist')],
mounted: function mounted() {
var _this = this;
var shareOptions = this.shareOptions;
var gistId = shareOptions.gistId;
var BASE_URL = 'https://api.github.com/';
var finalURL = "".concat(BASE_URL, "gists/").concat(gistId);
this.handleLoading(true);
JSONP(finalURL, function (err, data) {
_this.handleLoading(false);
if (err) {
_this.handleError(err);
}
if (data) {
_this.handleGithubResponse(data);
}
});
}
});
export default SGithubGistCount;