From 83900cbca64b76f6863a3ceca70c0a66dfa6d4fc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?=
 <root@acid-chicken.com>
Date: Fri, 24 Jul 2020 16:58:26 +0000
Subject: [PATCH] Fix #6581? (#6585)

* Update avatar.vue

* Update avatar.vue

* Update avatar.vue
---
 src/client/components/avatar.vue | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/client/components/avatar.vue b/src/client/components/avatar.vue
index fd4ab78ce1..ef376aa93e 100644
--- a/src/client/components/avatar.vue
+++ b/src/client/components/avatar.vue
@@ -40,7 +40,23 @@ export default Vue.extend({
 				: this.user.avatarUrl;
 		},
 	},
+	watch: {
+		'user.avatarBlurhash'() {
+			this.$el.style.color = this.getBlurhashAvgColor(this.user.avatarBlurhash);
+		}
+	},
+	mounted() {
+		this.$el.style.color = this.getBlurhashAvgColor(this.user.avatarBlurhash);
+	},
 	methods: {
+		getBlurhashAvgColor(s) {
+			return typeof s == 'string'
+				? '#' + [...s.slice(2, 6)]
+						.map(x => '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#$%*+,-.:;=?@[]^_{|}~'.indexOf(x))
+						.reduce((a, c) => a * 83 + c, 0)
+						.toString(16)
+				: undefined;
+		},
 		onClick(e) {
 			this.$emit('click', e);
 		}