diff --git a/package.json b/package.json index 1097658e..2a7249f4 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "@capacitor/keyboard": "^8.0.0", "@capacitor/preferences": "^8.0.0", "@capacitor/push-notifications": "^8.0.0", + "@capacitor/share": "^8.0.1", "@capawesome/capacitor-android-dark-mode-support": "^8.0.0", "@capawesome/capacitor-badge": "^8.0.0", "@getalby/lightning-tools": "^6.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9a6e25e0..1473dd50 100644 Binary files a/pnpm-lock.yaml and b/pnpm-lock.yaml differ diff --git a/src/app/components/SpaceInvite.svelte b/src/app/components/SpaceInvite.svelte index 94edb2c2..d748798e 100644 --- a/src/app/components/SpaceInvite.svelte +++ b/src/app/components/SpaceInvite.svelte @@ -3,7 +3,9 @@ import {sleep} from "@welshman/lib" import {request} from "@welshman/net" import {displayRelayUrl, getTagValue, RELAY_INVITE} from "@welshman/util" + import {Share} from "@capacitor/share" import LinkRound from "@assets/icons/link-round.svg?dataurl" + import Upload from "@assets/icons/upload.svg?dataurl" import Copy from "@assets/icons/copy.svg?dataurl" import Spinner from "@lib/components/Spinner.svelte" import Field from "@lib/components/Field.svelte" @@ -27,6 +29,17 @@ const back = () => history.back() const copyInvite = () => clip(invite) + const shareInvite = async () => { + if (!canShare) return + + try { + await Share.share({url: invite}) + } catch (e) { + console.error(e) + } + } + + let canShare = $state(false) let claim = $state("") let loading = $state(true) let invite = $state("") @@ -38,6 +51,13 @@ }) onMount(async () => { + try { + const {value} = await Share.canShare() + canShare = value + } catch { + canShare = false + } + try { const [[event]] = await Promise.all([ request({ @@ -76,16 +96,28 @@
Oops! It looks like you're not a member of this relay.
{:else}