diff options
| author | Julia <julia@insertdomain.name> | 2025-04-27 21:26:13 +0000 |
|---|---|---|
| committer | Julia <julia@insertdomain.name> | 2025-04-27 21:26:13 +0000 |
| commit | baa75768ecb5cafbe1bbbd8b14453b04dcedf285 (patch) | |
| tree | 6bea893e9877d45fa1e21468ca8ddeb6e811bedf /packages/frontend/src/components/MkUrlPreview.vue | |
| parent | merge: Fix typo in contributing. (!965) (diff) | |
| parent | Merge branch 'stable' into merge-stable-into-develop (diff) | |
| download | sharkey-baa75768ecb5cafbe1bbbd8b14453b04dcedf285.tar.gz sharkey-baa75768ecb5cafbe1bbbd8b14453b04dcedf285.tar.bz2 sharkey-baa75768ecb5cafbe1bbbd8b14453b04dcedf285.zip | |
merge: Merge stable into develop (!971)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/971
Diffstat (limited to 'packages/frontend/src/components/MkUrlPreview.vue')
| -rw-r--r-- | packages/frontend/src/components/MkUrlPreview.vue | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/packages/frontend/src/components/MkUrlPreview.vue b/packages/frontend/src/components/MkUrlPreview.vue index 922fa86072..808238c66c 100644 --- a/packages/frontend/src/components/MkUrlPreview.vue +++ b/packages/frontend/src/components/MkUrlPreview.vue @@ -45,8 +45,8 @@ SPDX-License-Identifier: AGPL-3.0-only </template> <div v-else-if="theNote" :class="[$style.link, { [$style.compact]: compact }]"><XNoteSimple :note="theNote" :class="$style.body"/></div> <div v-else-if="!hidePreview"> - <component :is="self ? 'MkA' : 'a'" :class="[$style.link, { [$style.compact]: compact }]" :[attr]="self ? url.substring(local.length) : url" rel="nofollow noopener" :target="target" :title="url" @click.prevent="self ? true : warningExternalWebsite(url)" @click.stop> - <div v-if="thumbnail && !sensitive" :class="$style.thumbnail" :style="defaultStore.state.dataSaver.urlPreview ? '' : `background-image: url('${thumbnail}')`"> + <component :is="self ? 'MkA' : 'a'" :class="[$style.link, { [$style.compact]: compact }]" :[attr]="maybeRelativeUrl" rel="nofollow noopener" :target="target" :title="url" @click.prevent="self ? true : warningExternalWebsite(url)" @click.stop> + <div v-if="thumbnail && !sensitive" :class="$style.thumbnail" :style="defaultStore.state.dataSaver.urlPreview ? '' : { backgroundImage: `url('${thumbnail}')` }"> </div> <article :class="$style.body"> <header :class="$style.header"> @@ -93,7 +93,7 @@ import { defineAsyncComponent, onDeactivated, onUnmounted, ref, watch } from 'vu import { url as local } from '@@/js/config.js'; import { versatileLang } from '@@/js/intl-const.js'; import * as Misskey from 'misskey-js'; -import type { summaly } from '@misskey-dev/summaly'; +import type { summaly } from '@transfem-org/summaly'; import type MkNoteSimple from '@/components/MkNoteSimple.vue'; import type SkNoteSimple from '@/components/SkNoteSimple.vue'; import { i18n } from '@/i18n.js'; @@ -104,6 +104,7 @@ import { transformPlayerUrl } from '@/scripts/player-url-transform.js'; import { defaultStore } from '@/store.js'; import { misskeyApi } from '@/scripts/misskey-api.js'; import { warningExternalWebsite } from '@/scripts/warning-external-website.js'; +import { maybeMakeRelative } from '@@/js/url.js'; const XNoteSimple = defineAsyncComponent<typeof MkNoteSimple | typeof SkNoteSimple>(() => defaultStore.state.noteDesign === 'misskey' @@ -132,7 +133,8 @@ const MOBILE_THRESHOLD = 500; const isMobile = ref(deviceKind === 'smartphone' || window.innerWidth <= MOBILE_THRESHOLD); const hidePreview = ref<boolean>(false); -const self = props.url.startsWith(local); +const maybeRelativeUrl = maybeMakeRelative(props.url, local); +const self = maybeRelativeUrl !== props.url; const attr = self ? 'to' : 'href'; const target = self ? null : '_blank'; const fetching = ref(true); |