UNPKG

vue-socials

Version:

Social media share buttons and counts for Vue.js

60 lines (51 loc) 1.4 kB
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;