vue-socials
Version:
Social media share buttons and counts for Vue.js
53 lines (45 loc) • 1.61 kB
JavaScript
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;