From 2af79e98551a295199672c338a38559411ce2bc3 Mon Sep 17 00:00:00 2001
From: rinsuki <428rinsuki+git@gmail.com>
Date: Fri, 19 Jul 2019 03:13:47 +0900
Subject: [PATCH] =?UTF-8?q?=E7=89=B9=E5=AE=9A=E3=83=9B=E3=82=B9=E3=83=88?=
 =?UTF-8?q?=E3=81=B8=E3=81=AE=E3=83=A1=E3=83=B3=E3=82=B7=E3=83=A7=E3=83=B3?=
 =?UTF-8?q?=E3=81=AE=E7=89=B9=E5=88=A5=E5=87=A6=E7=90=86=E3=82=92=E3=82=AF?=
 =?UTF-8?q?=E3=83=A9=E3=82=A4=E3=82=A2=E3=83=B3=E3=83=88=E3=81=AB=E8=BF=BD?=
 =?UTF-8?q?=E5=8A=A0=20(#5185)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* 特定ホストへのメンションの特別処理をクライアントに追加

Fix #5168

* Apply suggestions from code review

Co-Authored-By: Acid Chicken (硫酸鶏) <root@acid-chicken.com>

* Apply suggestions from code review

Co-Authored-By: Acid Chicken (硫酸鶏) <root@acid-chicken.com>

* Apply suggestions from code review

Co-Authored-By: Acid Chicken (硫酸鶏) <root@acid-chicken.com>

* Fix indent
---
 .../app/common/views/components/mention.vue     | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/client/app/common/views/components/mention.vue b/src/client/app/common/views/components/mention.vue
index f212fd3ca5..4e9f9e90d6 100644
--- a/src/client/app/common/views/components/mention.vue
+++ b/src/client/app/common/views/components/mention.vue
@@ -1,11 +1,17 @@
 <template>
-<router-link class="ldlomzub" :to="`/${ canonical }`" v-user-preview="canonical">
+<router-link class="ldlomzub" :to="url" v-user-preview="canonical" v-if="url.startsWith('/')">
 	<span class="me" v-if="isMe">{{ $t('@.you') }}</span>
 	<span class="main">
 		<span class="username">@{{ username }}</span>
 		<span class="host" :class="{ fade: $store.state.settings.contrastedAcct }" v-if="(host != localHost) || $store.state.settings.showFullAcct">@{{ toUnicode(host) }}</span>
 	</span>
 </router-link>
+<a class="ldlomzub" :href="url" target="_blank" rel="noopener" v-else>
+	<span class="main">
+		<span class="username">@{{ username }}</span>
+		<span class="host" :class="{ fade: $store.state.settings.contrastedAcct }">@{{ toUnicode(host) }}</span>
+	</span>
+</a>
 </template>
 
 <script lang="ts">
@@ -32,6 +38,15 @@ export default Vue.extend({
 		};
 	},
 	computed: {
+		url(): string {
+			switch (this.host) {
+				case 'twitter.com':
+				case 'github.com':
+					return `https://${this.host}/${this.username}`;
+				default:
+					return `/${this.canonical}`;
+			}
+		},
 		canonical(): string {
 			return this.host === localHost ? `@${this.username}` : `@${this.username}@${toUnicode(this.host)}`;
 		},