diff --git a/client/src/components/SettingsForm.tsx b/client/src/components/SettingsForm.tsx
index d01a1e7..2ad979e 100644
--- a/client/src/components/SettingsForm.tsx
+++ b/client/src/components/SettingsForm.tsx
@@ -1,6 +1,6 @@
import React, { useState, useEffect } from 'react'
import { useTranslation } from 'react-i18next'
-import { Settings as SettingsIcon, Check, Users, Trash2, Copy, Link as LinkIcon } from 'lucide-react'
+import { Settings as SettingsIcon, Check, Users, Trash2, Copy, Link as LinkIcon, Share2 } from 'lucide-react'
import { ensureLogbookKey } from '../services/logbookKeys.js'
import LogbookBackupPanel from './LogbookBackupPanel.tsx'
import LinkQrCode from './LinkQrCode.tsx'
@@ -131,6 +131,24 @@ export default function SettingsForm({ logbookId, onLogbookRestored }: SettingsF
}
}
+ const isShareSupported = typeof navigator !== 'undefined' && !!navigator.share
+
+ const handleShareLink = async () => {
+ if (shareLink) {
+ try {
+ await navigator.share({
+ title: t('seo.title') || 'Kapteins Daagbok',
+ text: t('settings.share_desc'),
+ url: shareLink
+ })
+ } catch (err: unknown) {
+ if (err instanceof Error && err.name !== 'AbortError') {
+ console.error('Sharing link failed:', err)
+ }
+ }
+ }
+ }
+
const loadCollaborators = async () => {
setLoadingCollabs(true)
setCollabError(null)
@@ -337,6 +355,17 @@ export default function SettingsForm({ logbookId, onLogbookRestored }: SettingsF
>
{shareCopied ? : }
+ {isShareSupported && (
+
+ )}
diff --git a/client/src/i18n/locales/da.json b/client/src/i18n/locales/da.json
index 0c2ea89..6e461eb 100644
--- a/client/src/i18n/locales/da.json
+++ b/client/src/i18n/locales/da.json
@@ -820,6 +820,7 @@
"share_enable": "Aktivér offentligt link",
"share_copied": "Linket er kopieret!",
"share_copy_btn": "Kopier link",
+ "share_btn": "Del link",
"link_qr_hint": "QR-kode til scanning med en smartphone",
"link_qr_alt": "QR-kode til linket",
"danger_zone_title": "Farezone",
diff --git a/client/src/i18n/locales/de.json b/client/src/i18n/locales/de.json
index a373d0a..05baed6 100644
--- a/client/src/i18n/locales/de.json
+++ b/client/src/i18n/locales/de.json
@@ -820,6 +820,7 @@
"share_enable": "Öffentlichen Link aktivieren",
"share_copied": "Link kopiert!",
"share_copy_btn": "Link kopieren",
+ "share_btn": "Link teilen",
"link_qr_hint": "QR-Code zum Scannen mit dem Smartphone",
"link_qr_alt": "QR-Code für den Link",
"danger_zone_title": "Gefahrenzone",
diff --git a/client/src/i18n/locales/en.json b/client/src/i18n/locales/en.json
index 5c6c4da..9dac614 100644
--- a/client/src/i18n/locales/en.json
+++ b/client/src/i18n/locales/en.json
@@ -820,6 +820,7 @@
"share_enable": "Enable Public Link",
"share_copied": "Link copied!",
"share_copy_btn": "Copy Link",
+ "share_btn": "Share Link",
"link_qr_hint": "Scan this QR code with your phone",
"link_qr_alt": "QR code for the link",
"danger_zone_title": "Danger Zone",
diff --git a/client/src/i18n/locales/es.json b/client/src/i18n/locales/es.json
index 73537a6..117f9fd 100644
--- a/client/src/i18n/locales/es.json
+++ b/client/src/i18n/locales/es.json
@@ -820,6 +820,7 @@
"share_enable": "Activar enlace público",
"share_copied": "¡Enlace copiado!",
"share_copy_btn": "Copiar enlace",
+ "share_btn": "Compartir enlace",
"link_qr_hint": "Código QR para escanear con el smartphone",
"link_qr_alt": "Código QR del enlace",
"danger_zone_title": "Zona de peligro",
diff --git a/client/src/i18n/locales/fr.json b/client/src/i18n/locales/fr.json
index 4ec5c4b..3b10751 100644
--- a/client/src/i18n/locales/fr.json
+++ b/client/src/i18n/locales/fr.json
@@ -820,6 +820,7 @@
"share_enable": "Activer le lien public",
"share_copied": "Lien copié !",
"share_copy_btn": "Copier le lien",
+ "share_btn": "Partager le lien",
"link_qr_hint": "Code QR à scanner avec un smartphone",
"link_qr_alt": "Code QR pour le lien",
"danger_zone_title": "Zone dangereuse",
diff --git a/client/src/i18n/locales/nb.json b/client/src/i18n/locales/nb.json
index 7b6bdd5..d551e62 100644
--- a/client/src/i18n/locales/nb.json
+++ b/client/src/i18n/locales/nb.json
@@ -820,6 +820,7 @@
"share_enable": "Aktiver offentlig lenke",
"share_copied": "Koblingen er kopiert!",
"share_copy_btn": "Kopier lenken",
+ "share_btn": "Del lenke",
"link_qr_hint": "QR-kode som kan skannes med smarttelefonen",
"link_qr_alt": "QR-kode for lenken",
"danger_zone_title": "Fareområde",
diff --git a/client/src/i18n/locales/sv.json b/client/src/i18n/locales/sv.json
index e170f2e..b597bd9 100644
--- a/client/src/i18n/locales/sv.json
+++ b/client/src/i18n/locales/sv.json
@@ -820,6 +820,7 @@
"share_enable": "Aktivera offentlig länk",
"share_copied": "Länken har kopierats!",
"share_copy_btn": "Kopiera länken",
+ "share_btn": "Dela länk",
"link_qr_hint": "QR-kod att skanna med smarttelefonen",
"link_qr_alt": "QR-kod för länken",
"danger_zone_title": "Farlig zon",