From e0e859a79dd9246c28c266a8d2d9fe2b510a0021 Mon Sep 17 00:00:00 2001
From: Henrik Askjer <henrik.askjer@uib.no>
Date: Thu, 15 Jul 2021 09:37:21 +0200
Subject: [PATCH] Add sharing with Web Share API

---
 package.json               |  1 +
 src/components/Article.vue | 19 +++++++++++++++++--
 src/main.js                |  3 ++-
 3 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/package.json b/package.json
index e045e88c..fe399a12 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 89fd928c..4cd5592a 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 1d165a35..fd6606f4 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);
 
 
-- 
GitLab