diff --git a/packages/client/src/pages/gallery/post.vue b/packages/client/src/pages/gallery/post.vue index 43d3651b8..a4be9e85f 100644 --- a/packages/client/src/pages/gallery/post.vue +++ b/packages/client/src/pages/gallery/post.vue @@ -24,7 +24,7 @@ <div class="other"> <button v-if="$i && $i.id === post.user.id" v-tooltip="i18n.ts.edit" v-click-anime class="_button" @click="edit"><i class="ph-pencil-bold ph-lg ph-fw ph-lg"></i></button> <button v-tooltip="i18n.ts.shareWithNote" v-click-anime class="_button" @click="shareWithNote"><i class="ph-repeat-bold ph-lg ph-fw ph-lg"></i></button> - <button v-tooltip="i18n.ts.share" v-click-anime class="_button" @click="share"><i class="ph-share-network-bold ph-lg ph-fw ph-lg"></i></button> + <button v-if="shareAvailable()" v-tooltip="i18n.ts.share" v-click-anime class="_button" @click="share"><i class="ph-share-network-bold ph-lg ph-fw ph-lg"></i></button> </div> </div> <div class="user"> @@ -67,6 +67,7 @@ import { url } from '@/config'; import { useRouter } from '@/router'; import { i18n } from '@/i18n'; import { definePageMetadata } from '@/scripts/page-metadata'; +import { shareAvailable } from '@/scripts/share-available'; const router = useRouter(); diff --git a/packages/client/src/pages/page.vue b/packages/client/src/pages/page.vue index 2497db950..e89fd3e2a 100644 --- a/packages/client/src/pages/page.vue +++ b/packages/client/src/pages/page.vue @@ -34,7 +34,7 @@ </div> <div class="other"> <button v-tooltip="i18n.ts.shareWithNote" v-click-anime class="_button" @click="shareWithNote"><i class="ph-repeat-bold ph-lg ph-fw ph-lg"></i></button> - <button v-tooltip="i18n.ts.share" v-click-anime class="_button" @click="share"><i class="ph-share-network-bold ph-lg ph-fw ph-lg"></i></button> + <button v-if="shareAvailable()" v-tooltip="i18n.ts.share" v-click-anime class="_button" @click="share"><i class="ph-share-network-bold ph-lg ph-fw ph-lg"></i></button> </div> <div class="user"> <MkAvatar :user="page.user" class="avatar"/> @@ -81,6 +81,7 @@ import MkPagination from '@/components/MkPagination.vue'; import MkPagePreview from '@/components/MkPagePreview.vue'; import { i18n } from '@/i18n'; import { definePageMetadata } from '@/scripts/page-metadata'; +import { shareAvailable } from '@/scripts/share-available'; const props = defineProps<{ pageName: string; diff --git a/packages/client/src/scripts/get-note-menu.ts b/packages/client/src/scripts/get-note-menu.ts index 9c52b2e24..e17ade59c 100644 --- a/packages/client/src/scripts/get-note-menu.ts +++ b/packages/client/src/scripts/get-note-menu.ts @@ -8,6 +8,7 @@ import * as os from '@/os'; import copyToClipboard from '@/scripts/copy-to-clipboard'; import { url } from '@/config'; import { noteActions } from '@/store'; +import { shareAvailable } from '@/scripts/share-available'; export function getNoteMenu(props: { note: misskey.entities.Note; @@ -220,11 +221,11 @@ export function getNoteMenu(props: { window.open(appearNote.url || appearNote.uri, '_blank'); }, } : undefined, - { + shareAvailable() ? { icon: 'ph-share-network-bold ph-lg', text: i18n.ts.share, action: share, - }, + } : undefined, instance.translatorAvailable ? { icon: 'ph-translate-bold ph-lg', text: i18n.ts.translate, diff --git a/packages/client/src/scripts/share-available.ts b/packages/client/src/scripts/share-available.ts new file mode 100644 index 000000000..8056d6dc2 --- /dev/null +++ b/packages/client/src/scripts/share-available.ts @@ -0,0 +1,6 @@ +export function shareAvailable(): boolean { + if (navigator.share) { + return true; + } + return false; +}