diff --git a/src/web/app/boot.js b/src/web/app/boot.js index 2671d372f..2686559e2 100644 --- a/src/web/app/boot.js +++ b/src/web/app/boot.js @@ -11,53 +11,55 @@ 'use strict'; -// Get the current url information -const url = new URL(location.href); +{ + // Get the current url information + const url = new URL(location.href); -// Extarct the (sub) domain part of the current url -// -// e.g. -// misskey.alice => misskey -// misskey.strawberry.pasta => misskey -// dev.misskey.alice.tachibana => dev -let app = url.host.split('.')[0]; + // Extarct the (sub) domain part of the current url + // + // e.g. + // misskey.alice => misskey + // misskey.strawberry.pasta => misskey + // dev.misskey.alice.tachibana => dev + let app = url.host.split('.')[0]; -// Detect the user language -// Note: The default language is English -let lang = navigator.language.split('-')[0]; -if (!/^(en|ja)$/.test(lang)) lang = 'en'; + // Detect the user language + // Note: The default language is English + let lang = navigator.language.split('-')[0]; + if (!/^(en|ja)$/.test(lang)) lang = 'en'; -// Detect the user agent -const ua = navigator.userAgent.toLowerCase(); -const isMobile = /mobile|iphone|ipad|android/.test(ua); + // 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]; + // Get the element + const head = document.getElementsByTagName('head')[0]; -// If mobile, insert the viewport meta tag -if (isMobile) { - const meta = document.createElement('meta'); - meta.setAttribute('name', 'viewport'); - meta.setAttribute('content', [ - ['width', 'device-width'], - ['initial-scale', '1'], - ['minimum-scale', '1'], - ['maximum-scale', '1'], - ['user-scalable', 'no'] - ].map(x => x.join('=')).join(',')); - head.appendChild(meta); + // If mobile, insert the viewport meta tag + if (isMobile) { + const meta = document.createElement('meta'); + meta.setAttribute('name', 'viewport'); + meta.setAttribute('content', [ + ['width', 'device-width'], + ['initial-scale', '1'], + ['minimum-scale', '1'], + ['maximum-scale', '1'], + ['user-scalable', 'no'] + ].map(x => x.join('=')).join(',')); + head.appendChild(meta); + } + + // Switch desktop or mobile version + if (app == 'misskey') { + app = isMobile ? 'mobile' : 'desktop'; + } + + // Load an app script + // Note: 'async' make it possible to load the script asyncly. + // 'defer' make it possible to run the script when the dom loaded. + const script = document.createElement('script'); + script.setAttribute('src', `/assets/${app}.${VERSION}.${lang}.js`); + script.setAttribute('async', 'true'); + script.setAttribute('defer', 'true'); + head.appendChild(script); } - -// Switch desktop or mobile version -if (app == 'misskey') { - app = isMobile ? 'mobile' : 'desktop'; -} - -// Load an app script -// Note: 'async' make it possible to load the script asyncly. -// 'defer' make it possible to run the script when the dom loaded. -const script = document.createElement('script'); -script.setAttribute('src', `/assets/${app}.${VERSION}.${lang}.js`); -script.setAttribute('async', 'true'); -script.setAttribute('defer', 'true'); -head.appendChild(script);