summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2025-04-08 08:43:56 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2025-04-08 08:43:56 +0900
commit3d206d2a0fba14490b9c1e01a8bc1f1a1ecdcf40 (patch)
tree74ea1aeeee48cf251f70f4aec435c6b91df5862b /packages
parentMerge branch 'develop' of https://github.com/misskey-dev/misskey into develop (diff)
downloadsharkey-3d206d2a0fba14490b9c1e01a8bc1f1a1ecdcf40.tar.gz
sharkey-3d206d2a0fba14490b9c1e01a8bc1f1a1ecdcf40.tar.bz2
sharkey-3d206d2a0fba14490b9c1e01a8bc1f1a1ecdcf40.zip
enhance(frontend): 設定検索時に対象が含まれるMkFolderを自動で開いておくように
Diffstat (limited to 'packages')
-rw-r--r--packages/frontend/src/components/global/SearchMarker.vue5
-rw-r--r--packages/frontend/src/pages/settings/preferences.vue36
2 files changed, 21 insertions, 20 deletions
diff --git a/packages/frontend/src/components/global/SearchMarker.vue b/packages/frontend/src/components/global/SearchMarker.vue
index 1cffbe28b0..ded1f9a28b 100644
--- a/packages/frontend/src/components/global/SearchMarker.vue
+++ b/packages/frontend/src/components/global/SearchMarker.vue
@@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template>
<div ref="root" :class="[$style.root, { [$style.highlighted]: highlighted }]">
- <slot></slot>
+ <slot :isParentOfTarget="isParentOfTarget"></slot>
</div>
</template>
@@ -39,9 +39,10 @@ const rootElMutationObserver = new MutationObserver(() => {
const injectedSearchMarkerId = inject(DI.inAppSearchMarkerId, null);
const searchMarkerId = computed(() => injectedSearchMarkerId?.value ?? window.location.hash.slice(1));
const highlighted = ref(props.markerId === searchMarkerId.value);
+const isParentOfTarget = computed(() => props.children?.includes(searchMarkerId.value));
function checkChildren() {
- if (props.children?.includes(searchMarkerId.value)) {
+ if (isParentOfTarget.value) {
const el = window.document.querySelector(`[data-in-app-search-marker-id="${searchMarkerId.value}"]`);
highlighted.value = el == null;
}
diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue
index 42a7b486ed..df54534b2c 100644
--- a/packages/frontend/src/pages/settings/preferences.vue
+++ b/packages/frontend/src/pages/settings/preferences.vue
@@ -11,8 +11,8 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkFeatureBanner>
<div class="_gaps_s">
- <SearchMarker :keywords="['general']">
- <MkFolder>
+ <SearchMarker v-slot="slotProps" :keywords="['general']">
+ <MkFolder :defaultOpen="slotProps.isParentOfTarget">
<template #label><SearchLabel>{{ i18n.ts.general }}</SearchLabel></template>
<template #icon><SearchIcon><i class="ti ti-settings"></i></SearchIcon></template>
@@ -108,8 +108,8 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkFolder>
</SearchMarker>
- <SearchMarker :keywords="['timeline', 'note']">
- <MkFolder>
+ <SearchMarker v-slot="slotProps" :keywords="['timeline', 'note']">
+ <MkFolder :defaultOpen="slotProps.isParentOfTarget">
<template #label><SearchLabel>{{ i18n.ts._settings.timelineAndNote }}</SearchLabel></template>
<template #icon><SearchIcon><i class="ti ti-notes"></i></SearchIcon></template>
@@ -276,8 +276,8 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkFolder>
</SearchMarker>
- <SearchMarker :keywords="['post', 'form']">
- <MkFolder>
+ <SearchMarker v-slot="slotProps" :keywords="['post', 'form']">
+ <MkFolder :defaultOpen="slotProps.isParentOfTarget">
<template #label><SearchLabel>{{ i18n.ts.postForm }}</SearchLabel></template>
<template #icon><SearchIcon><i class="ti ti-edit"></i></SearchIcon></template>
@@ -338,8 +338,8 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkFolder>
</SearchMarker>
- <SearchMarker :keywords="['notification']">
- <MkFolder>
+ <SearchMarker v-slot="slotProps" :keywords="['notification']">
+ <MkFolder :defaultOpen="slotProps.isParentOfTarget">
<template #label><SearchLabel>{{ i18n.ts.notifications }}</SearchLabel></template>
<template #icon><SearchIcon><i class="ti ti-bell"></i></SearchIcon></template>
@@ -380,8 +380,8 @@ SPDX-License-Identifier: AGPL-3.0-only
</SearchMarker>
<template v-if="$i.policies.chatAvailability !== 'unavailable'">
- <SearchMarker :keywords="['chat', 'messaging']">
- <MkFolder>
+ <SearchMarker v-slot="slotProps" :keywords="['chat', 'messaging']">
+ <MkFolder :defaultOpen="slotProps.isParentOfTarget">
<template #label><SearchLabel>{{ i18n.ts.chat }}</SearchLabel></template>
<template #icon><SearchIcon><i class="ti ti-messages"></i></SearchIcon></template>
@@ -420,8 +420,8 @@ SPDX-License-Identifier: AGPL-3.0-only
</SearchMarker>
</template>
- <SearchMarker :keywords="['accessibility']">
- <MkFolder>
+ <SearchMarker v-slot="slotProps" :keywords="['accessibility']">
+ <MkFolder :defaultOpen="slotProps.isParentOfTarget">
<template #label><SearchLabel>{{ i18n.ts.accessibility }}</SearchLabel></template>
<template #icon><SearchIcon><i class="ti ti-accessible"></i></SearchIcon></template>
@@ -530,8 +530,8 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkFolder>
</SearchMarker>
- <SearchMarker :keywords="['performance']">
- <MkFolder>
+ <SearchMarker v-slot="slotProps" :keywords="['performance']">
+ <MkFolder :defaultOpen="slotProps.isParentOfTarget">
<template #label><SearchLabel>{{ i18n.ts.performance }}</SearchLabel></template>
<template #icon><SearchIcon><i class="ti ti-battery-vertical-eco"></i></SearchIcon></template>
@@ -566,8 +566,8 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkFolder>
</SearchMarker>
- <SearchMarker :keywords="['datasaver']">
- <MkFolder>
+ <SearchMarker v-slot="slotProps" :keywords="['datasaver']">
+ <MkFolder :defaultOpen="slotProps.isParentOfTarget">
<template #label><SearchLabel>{{ i18n.ts.dataSaver }}</SearchLabel></template>
<template #icon><SearchIcon><i class="ti ti-antenna-bars-3"></i></SearchIcon></template>
@@ -600,8 +600,8 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkFolder>
</SearchMarker>
- <SearchMarker :keywords="['other']">
- <MkFolder>
+ <SearchMarker v-slot="slotProps" :keywords="['other']">
+ <MkFolder :defaultOpen="slotProps.isParentOfTarget">
<template #label><SearchLabel>{{ i18n.ts.other }}</SearchLabel></template>
<template #icon><SearchIcon><i class="ti ti-settings-cog"></i></SearchIcon></template>