Skip to content

Commit da75a0d

Browse files
committed
feat(links): allow opening tag links in background
1 parent 8e454c9 commit da75a0d

File tree

2 files changed

+26
-14
lines changed

2 files changed

+26
-14
lines changed

src/components/common/list/ListItemPanel.vue

+16-14
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import PosterPlaceholder from '~/assets/images/poster-placholder.webp';
1515
import { type ListScrollItem } from '~/models/list-scroll.model';
1616
1717
import { useShowStore } from '~/stores/data/show.store';
18+
import { useExtensionSettingsStoreRefs } from '~/stores/settings/extension.store';
1819
import { useI18n } from '~/utils';
1920
import { createTab } from '~/utils/browser/browser.utils';
2021
import { deCapitalise } from '~/utils/string.utils';
@@ -91,9 +92,11 @@ const tooltipOptions = computed<PopoverProps>(() => ({
9192
delay: 500,
9293
}));
9394
94-
const onTagClick = (url?: string) => {
95+
const { openLinksInNewTab } = useExtensionSettingsStoreRefs();
96+
const onTagClick = (e: MouseEvent, url?: string) => {
97+
e.preventDefault();
9598
if (!url) return;
96-
createTab({ url });
99+
createTab({ url, active: openLinksInNewTab.value });
97100
};
98101
</script>
99102

@@ -125,18 +128,17 @@ const onTagClick = (url?: string) => {
125128
<NFlex v-if="date || tags?.length" size="medium" class="tags">
126129
<template v-for="tag of tags" :key="tag.label">
127130
<NSkeleton v-if="loading" text style="width: 6%" />
128-
<NTag
129-
v-else
130-
class="tag"
131-
:class="{ meta: tag.meta, link: !!tag.url }"
132-
size="small"
133-
:bordered="tag.bordered ?? false"
134-
:href="tag.url"
135-
v-bind="tag"
136-
@click="onTagClick(tag.url)"
137-
>
138-
{{ tag.label }}
139-
</NTag>
131+
<a v-else :href="tag.url" @click="e => onTagClick(e, tag.url)">
132+
<NTag
133+
class="tag"
134+
:class="{ meta: tag.meta, link: !!tag.url }"
135+
size="small"
136+
:bordered="tag.bordered ?? false"
137+
v-bind="tag"
138+
>
139+
{{ tag.label }}
140+
</NTag>
141+
</a>
140142
</template>
141143
<template v-if="date">
142144
<NSkeleton v-if="loading" text style="width: 6%" />
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { defineStore, storeToRefs } from 'pinia';
2+
import { ref } from 'vue';
3+
4+
export const useExtensionSettingsStore = defineStore('settings.extension', () => {
5+
const openLinksInNewTab = ref(true);
6+
7+
return { openLinksInNewTab };
8+
});
9+
10+
export const useExtensionSettingsStoreRefs = () => storeToRefs(useExtensionSettingsStore());

0 commit comments

Comments
 (0)