1 | import { UnavailabilityError } from '@unimodules/core';
|
2 |
|
3 | type ShareOptions = { title?: string; text?: string; url?: string };
|
4 |
|
5 | export default {
|
6 | get name(): string {
|
7 | return 'ExpoSharing';
|
8 | },
|
9 | async isAvailableAsync(): Promise<boolean> {
|
10 | if (typeof navigator === 'undefined') {
|
11 | return false;
|
12 | }
|
13 |
|
14 | return !!navigator.share;
|
15 | },
|
16 | async shareAsync(url: string, options: ShareOptions = {}): Promise<void> {
|
17 |
|
18 | if (navigator.share) {
|
19 | await navigator.share({ ...options, url });
|
20 | } else {
|
21 | throw new UnavailabilityError('navigator', 'share');
|
22 | }
|
23 | },
|
24 | };
|