From f0cb587c8906cf20d9e04ac6550914510aacc142 Mon Sep 17 00:00:00 2001
From: syuilo <Syuilotan@yahoo.co.jp>
Date: Wed, 22 Feb 2023 17:25:33 +0900
Subject: [PATCH] =?UTF-8?q?fix(client):=20=E3=83=A6=E3=83=BC=E3=82=B6?=
 =?UTF-8?q?=E3=83=BC=E3=81=AE=E3=83=8F=E3=83=83=E3=82=B7=E3=83=A5=E3=82=BF?=
 =?UTF-8?q?=E3=82=B0=E6=A4=9C=E7=B4=A2=E3=81=8C=E6=A9=9F=E8=83=BD=E3=81=97?=
 =?UTF-8?q?=E3=81=A6=E3=81=84=E3=81=AA=E3=81=84=E3=81=AE=E3=82=92=E4=BF=AE?=
 =?UTF-8?q?=E6=AD=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 CHANGELOG.md                                  |  1 +
 packages/frontend/src/components/mfm.ts       |  2 +-
 packages/frontend/src/pages/explore.users.vue |  4 +-
 packages/frontend/src/pages/user-tag.vue      | 38 +++++++++++++++++++
 packages/frontend/src/router.ts               |  4 +-
 5 files changed, 44 insertions(+), 5 deletions(-)
 create mode 100644 packages/frontend/src/pages/user-tag.vue

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3a169284f4..6ae4c32b8a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -27,6 +27,7 @@ You should also include the user name that made the change.
 - fix(client): MkHeader及びデッキのカラムでチャンネル一覧を選択したとき、最大5個までしか表示されない
 - 管理画面の広告を10個以上見えるように
 - Moderation note が保存できない
+- ユーザーのハッシュタグ検索が機能していないのを修正
 
 ## 13.6.1 (2023/02/12)
 
diff --git a/packages/frontend/src/components/mfm.ts b/packages/frontend/src/components/mfm.ts
index 1b1d27ea2a..e84eabcbcc 100644
--- a/packages/frontend/src/components/mfm.ts
+++ b/packages/frontend/src/components/mfm.ts
@@ -278,7 +278,7 @@ export default defineComponent({
 				case 'hashtag': {
 					return [h(MkA, {
 						key: Math.random(),
-						to: this.isNote ? `/tags/${encodeURIComponent(token.props.hashtag)}` : `/explore/tags/${encodeURIComponent(token.props.hashtag)}`,
+						to: this.isNote ? `/tags/${encodeURIComponent(token.props.hashtag)}` : `/user-tags/${encodeURIComponent(token.props.hashtag)}`,
 						style: 'color:var(--hashtag);',
 					}, `#${token.props.hashtag}`)];
 				}
diff --git a/packages/frontend/src/pages/explore.users.vue b/packages/frontend/src/pages/explore.users.vue
index 05a36c950a..c441407d97 100644
--- a/packages/frontend/src/pages/explore.users.vue
+++ b/packages/frontend/src/pages/explore.users.vue
@@ -29,8 +29,8 @@
 			<template #header><i class="ti ti-hash ti-fw" style="margin-right: 0.5em;"></i>{{ i18n.ts.popularTags }}</template>
 
 			<div class="vxjfqztj">
-				<MkA v-for="tag in tagsLocal" :key="'local:' + tag.tag" :to="`/explore/tags/${tag.tag}`" class="local">{{ tag.tag }}</MkA>
-				<MkA v-for="tag in tagsRemote" :key="'remote:' + tag.tag" :to="`/explore/tags/${tag.tag}`">{{ tag.tag }}</MkA>
+				<MkA v-for="tag in tagsLocal" :key="'local:' + tag.tag" :to="`/user-tags/${tag.tag}`" class="local">{{ tag.tag }}</MkA>
+				<MkA v-for="tag in tagsRemote" :key="'remote:' + tag.tag" :to="`/user-tags/${tag.tag}`">{{ tag.tag }}</MkA>
 			</div>
 		</MkFoldableSection>
 
diff --git a/packages/frontend/src/pages/user-tag.vue b/packages/frontend/src/pages/user-tag.vue
new file mode 100644
index 0000000000..fac7593e9c
--- /dev/null
+++ b/packages/frontend/src/pages/user-tag.vue
@@ -0,0 +1,38 @@
+<template>
+<MkStickyContainer>
+	<template #header><MkPageHeader/></template>
+
+	<MkSpacer :content-max="1200">
+		<div class="_gaps_s">
+			<MkUserList :pagination="tagUsers"/>
+		</div>
+	</MkSpacer>
+</MkStickyContainer>
+</template>
+
+<script lang="ts" setup>
+import { computed, watch } from 'vue';
+import * as os from '@/os';
+import MkUserList from '@/components/MkUserList.vue';
+import { definePageMetadata } from '@/scripts/page-metadata';
+
+const props = defineProps<{
+	tag: string;
+}>();
+
+const tagUsers = $computed(() => ({
+	endpoint: 'hashtags/users' as const,
+	limit: 30,
+	params: {
+		tag: props.tag,
+		origin: 'combined',
+		sort: '+follower',
+	},
+}));
+
+definePageMetadata(computed(() => ({
+	title: props.tag,
+	icon: 'ti ti-user-search',
+})));
+</script>
+
diff --git a/packages/frontend/src/router.ts b/packages/frontend/src/router.ts
index 3b7ee1486f..9521e01910 100644
--- a/packages/frontend/src/router.ts
+++ b/packages/frontend/src/router.ts
@@ -201,8 +201,8 @@ export const routes = [{
 	path: '/roles/:role',
 	component: page(() => import('./pages/role.vue')),
 }, {
-	path: '/explore/tags/:tag',
-	component: page(() => import('./pages/explore.vue')),
+	path: '/user-tags/:tag',
+	component: page(() => import('./pages/user-tag.vue')),
 }, {
 	path: '/explore',
 	component: page(() => import('./pages/explore.vue')),