vue-socials
Version:
Social media share buttons and counts for Vue.js
101 lines (82 loc) • 3.33 kB
JavaScript
import { defineComponent } from 'vue';
import BaseSocials from '../../mixins/BaseSocial/BaseSocial.js';
/**
* Hey!
*
* SGithubRepo component used for GitHub social network
* @link https://github.com/
*/
var GITHUB_LINK_TYPES = {
repo: 'repo',
watch: 'watch',
star: 'star',
fork: 'fork',
download: 'download',
issue: 'issue',
pr: 'pr',
template: 'template'
};
var SGithubRepo = /* #__PURE__ */defineComponent({
name: 'SGithubRepo',
mixins: [BaseSocials('GitHub', {
width: 900,
height: 600
})],
computed: {
networkURL: function networkURL() {
var BASE_URL = 'https://github.com/';
var shareOptions = this.shareOptions;
var username = shareOptions.username,
repository = shareOptions.repository,
type = shareOptions.type;
switch (type) {
case GITHUB_LINK_TYPES.watch:
return "".concat(BASE_URL).concat(username, "/").concat(repository, "/subscription");
case GITHUB_LINK_TYPES.fork:
return "".concat(BASE_URL).concat(username, "/").concat(repository, "/fork");
case GITHUB_LINK_TYPES.star:
return "".concat(BASE_URL).concat(username, "/").concat(repository, "/stargazers");
case GITHUB_LINK_TYPES.issue:
return "".concat(BASE_URL).concat(username, "/").concat(repository, "/issues/new");
case GITHUB_LINK_TYPES.pr:
return "".concat(BASE_URL).concat(username, "/").concat(repository, "/compare");
case GITHUB_LINK_TYPES.download:
return "".concat(BASE_URL).concat(username, "/").concat(repository, "/archive/master.zip");
case GITHUB_LINK_TYPES.template:
return "".concat(BASE_URL).concat(username, "/").concat(repository, "/generate");
case GITHUB_LINK_TYPES.repo:
default:
return "".concat(BASE_URL).concat(username, "/").concat(repository);
}
},
ariaLabel: function ariaLabel() {
var shareOptions = this.shareOptions;
var username = shareOptions.username,
repository = shareOptions.repository,
type = shareOptions.type;
switch (type) {
case GITHUB_LINK_TYPES.watch:
return "Watch ".concat(username, "/").concat(repository, " on GitHub");
case GITHUB_LINK_TYPES.fork:
return "Fork ".concat(username, "/").concat(repository, " on GitHub");
case GITHUB_LINK_TYPES.star:
return "Give a star to ".concat(username, "/").concat(repository, " on GitHub");
case GITHUB_LINK_TYPES.issue:
return "Raise a new issue on ".concat(username, "/").concat(repository, " on GitHub");
case GITHUB_LINK_TYPES.pr:
return "Raise a new pull request ".concat(username, "/").concat(repository, " on GitHub");
case GITHUB_LINK_TYPES.download:
return "Download ".concat(username, "/").concat(repository, " from GitHub");
case GITHUB_LINK_TYPES.template:
return "Generate a new repository from ".concat(username, "/").concat(repository, " on GitHub");
case GITHUB_LINK_TYPES.repo:
default:
return "Watch ".concat(username, "/").concat(repository, " on GitHub");
}
}
},
render: function render() {
return this.generateComponent(this.networkURL);
}
});
export default SGithubRepo;