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 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