From 339a7d64d7cdefbb2a2a46b1507e96443969cd74 Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
Date: Sun, 6 Sep 2020 14:33:51 +0900
Subject: [PATCH] wip

---
 src/client/components/modal.vue     | 2 +-
 src/client/components/post-form.vue | 2 +-
 src/client/init.ts                  | 6 +-----
 src/client/os.ts                    | 3 +++
 src/client/root.vue                 | 8 --------
 5 files changed, 6 insertions(+), 15 deletions(-)

diff --git a/src/client/components/modal.vue b/src/client/components/modal.vue
index 1118cd295c..30c1d7a236 100644
--- a/src/client/components/modal.vue
+++ b/src/client/components/modal.vue
@@ -66,7 +66,7 @@ export default defineComponent({
 			let left;
 			let top;
 
-			if (this.$root.isMobile && !this.noCenter) {
+			if (os.isMobile && !this.noCenter) {
 				const x = rect.left + (this.fixed ? 0 : window.pageXOffset) + (this.source.offsetWidth / 2);
 				const y = rect.top + (this.fixed ? 0 : window.pageYOffset) + (this.source.offsetHeight / 2);
 				left = (x - (width / 2));
diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue
index a2abaa9a8a..c8fcc61d76 100644
--- a/src/client/components/post-form.vue
+++ b/src/client/components/post-form.vue
@@ -565,7 +565,7 @@ export default defineComponent({
 				localOnly: this.localOnly,
 				visibility: this.visibility,
 				visibleUserIds: this.visibility == 'specified' ? this.visibleUsers.map(u => u.id) : undefined,
-				viaMobile: this.$root.isMobile
+				viaMobile: os.isMobile
 			};
 
 			// plugin
diff --git a/src/client/init.ts b/src/client/init.ts
index 4c69066bd8..cc09edd587 100644
--- a/src/client/init.ts
+++ b/src/client/init.ts
@@ -21,7 +21,7 @@ import { applyTheme, lightTheme } from '@/scripts/theme';
 import { isDeviceDarkmode } from '@/scripts/is-device-darkmode';
 import { createPluginEnv } from '@/scripts/aiscript/api';
 import { i18n, lang } from './i18n';
-import { stream, sound } from '@/os';
+import { stream, sound, isMobile } from '@/os';
 
 console.info(`Misskey v${version}`);
 
@@ -39,10 +39,6 @@ window.addEventListener('resize', () => {
 });
 //#endregion
 
-// Detect the user agent
-const ua = navigator.userAgent.toLowerCase();
-const isMobile = /mobile|iphone|ipad|android/.test(ua);
-
 // Get the <head> element
 const head = document.getElementsByTagName('head')[0];
 
diff --git a/src/client/os.ts b/src/client/os.ts
index 3e373fff57..87ba2c5c07 100644
--- a/src/client/os.ts
+++ b/src/client/os.ts
@@ -3,6 +3,9 @@ import Stream from '@/scripts/stream';
 import { store } from '@/store';
 import { apiUrl } from '@/config';
 
+const ua = navigator.userAgent.toLowerCase();
+export const isMobile = /mobile|iphone|ipad|android/.test(ua);
+
 export const stream = new Stream();
 
 export const dialogCallbacks = {};
diff --git a/src/client/root.vue b/src/client/root.vue
index b2232fa45c..cb8b709fe4 100644
--- a/src/client/root.vue
+++ b/src/client/root.vue
@@ -24,14 +24,6 @@ export default defineComponent({
 		titleTemplate: title => title ? `${title} | ${(instanceName || 'Misskey')}` : (instanceName || 'Misskey')
 	},
 
-	props: {
-		isMobile: {
-			type: Boolean,
-			required: false,
-			default: false,
-		}
-	},
-
 	data() {
 		return {
 			deckmode