diff --git a/package.json b/package.json index e045e88c72966892f3ace5672f91f14deda05a1b..fe399a128885660a8449e8397f803eb54b482f08 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "dependencies": { "@fortawesome/fontawesome-svg-core": "^1.2.35", "@fortawesome/free-brands-svg-icons": "^5.15.3", + "@fortawesome/free-solid-svg-icons": "^5.15.3", "@fortawesome/vue-fontawesome": "^2.0.2", "axios": "^0.19.2", "core-js": "^3.6.5", diff --git a/src/components/Article.vue b/src/components/Article.vue index 89fd928cc6232e1aef333a5c2d8f03e509d2740d..4cd5592a18d0ebadbbad2652ad71d459460006ee 100644 --- a/src/components/Article.vue +++ b/src/components/Article.vue @@ -32,7 +32,12 @@ </router-link> </div> </div> - <div class="share"> + <div class="share" v-if="webShareApiSupported"> + <button @click="shareViaWebShare"> + Del ordet <font-awesome-icon icon="share-alt-square" size = "lg"/> + </button> + </div> + <div class="share" v-else> <button class="share-button"> <ShareNetwork network="facebook" :url="share_link" @@ -96,7 +101,10 @@ export default { props: { article: Object }, - computed: { + computed: { + webShareApiSupported() { + return navigator.share + }, link_to_self: function() { return { ref: '/' + this.dictionary + '/' + this.article.article_id + '/' + encodeURIComponent(this.article.lemmas[0].lemma), @@ -129,6 +137,13 @@ export default { Header }, methods: { + shareViaWebShare() { + navigator.share({ + title: 'Title to be shared', + text: 'Text to be shared', + url: 'URL to be shared' + }) + }, article_link_click: function(item) { this.$emit('article-click', item) }, diff --git a/src/main.js b/src/main.js index 1d165a35776a73f38f3a1c8f0ada347fcf1a075d..fd6606f43131e953981b0d69ca94a3b6b877d429 100644 --- a/src/main.js +++ b/src/main.js @@ -12,9 +12,10 @@ Vue.use(VueSocialSharing); import { library } from '@fortawesome/fontawesome-svg-core' +import { faShareAltSquare } from '@fortawesome/free-solid-svg-icons' import { faFacebookSquare, faTwitterSquare } from '@fortawesome/free-brands-svg-icons' import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome' -library.add(faFacebookSquare, faTwitterSquare) +library.add(faFacebookSquare, faTwitterSquare, faShareAltSquare) Vue.component('font-awesome-icon', FontAwesomeIcon);