UNPKG

vue-socials

Version:

Social media share buttons and counts for Vue.js

53 lines (45 loc) 1.61 kB
import { defineComponent } from 'vue'; import getSerialisedParams from '../../utils/getSerialisedParams.js'; import BaseCount from '../../mixins/BaseCount/BaseCount.js'; import JSONP from '../../utils/jsonp.js'; /** * Hey! * * SRedditCount component used for Reddit social network * @link https://www.reddit.com/ */ /** * Share parameters for link */ var SRedditCount = /* #__PURE__ */defineComponent({ name: 'SRedditCount', mixins: [BaseCount('Reddit')], methods: { handleRedditResponse: function handleRedditResponse(data) { var _data$data, _data$data$children, _data$data$children$; this.handleResult(data); this.handleCount(data === null || data === void 0 ? void 0 : (_data$data = data.data) === null || _data$data === void 0 ? void 0 : (_data$data$children = _data$data.children) === null || _data$data$children === void 0 ? void 0 : (_data$data$children$ = _data$data$children[0]) === null || _data$data$children$ === void 0 ? void 0 : _data$data$children$.data.score); } }, mounted: function mounted() { var _this = this; var shareOptions = this.shareOptions; var url = shareOptions.url; var BASE_URL = 'https://www.reddit.com/api/info.json'; var finalURL = "".concat(BASE_URL).concat(getSerialisedParams({ limit: 1, url: url })); this.handleLoading(true); JSONP(finalURL, function (err, data) { _this.handleLoading(false); if (err) { _this.handleError(err); } if (data) { _this.handleRedditResponse(data); } }, 'jsonp'); } }); export default SRedditCount;