fix(client): revert es2017
This commit is contained in:
		
							parent
							
								
									d78faf1134
								
							
						
					
					
						commit
						0ddabdbf68
					
				
					 2 changed files with 365 additions and 368 deletions
				
			
		|  | @ -39,10 +39,9 @@ import { reactionPicker } from '@/scripts/reaction-picker'; | |||
| import { getUrlWithoutLoginId } from '@/scripts/login-id'; | ||||
| import { getAccountFromId } from '@/scripts/get-account-from-id'; | ||||
| 
 | ||||
| (async () => { | ||||
| 	console.info(`Misskey v${version}`); | ||||
| console.info(`Misskey v${version}`); | ||||
| 
 | ||||
| 	if (_DEV_) { | ||||
| if (_DEV_) { | ||||
| 	console.warn('Development mode!!!'); | ||||
| 
 | ||||
| 	console.info(`vue ${vueVersion}`); | ||||
|  | @ -71,44 +70,44 @@ import { getAccountFromId } from '@/scripts/get-account-from-id'; | |||
| 		}); | ||||
| 		*/ | ||||
| 	}); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| 	// タッチデバイスでCSSの:hoverを機能させる
 | ||||
| 	document.addEventListener('touchend', () => {}, { passive: true }); | ||||
| // タッチデバイスでCSSの:hoverを機能させる
 | ||||
| document.addEventListener('touchend', () => {}, { passive: true }); | ||||
| 
 | ||||
| 	// 一斉リロード
 | ||||
| 	reloadChannel.addEventListener('message', path => { | ||||
| // 一斉リロード
 | ||||
| reloadChannel.addEventListener('message', path => { | ||||
| 	if (path !== null) location.href = path; | ||||
| 	else location.reload(); | ||||
| 	}); | ||||
| }); | ||||
| 
 | ||||
| 	//#region SEE: https://css-tricks.com/the-trick-to-viewport-units-on-mobile/
 | ||||
| 	// TODO: いつの日にか消したい
 | ||||
| //#region SEE: https://css-tricks.com/the-trick-to-viewport-units-on-mobile/
 | ||||
| // TODO: いつの日にか消したい
 | ||||
| const vh = window.innerHeight * 0.01; | ||||
| document.documentElement.style.setProperty('--vh', `${vh}px`); | ||||
| window.addEventListener('resize', () => { | ||||
| 	const vh = window.innerHeight * 0.01; | ||||
| 	document.documentElement.style.setProperty('--vh', `${vh}px`); | ||||
| 	window.addEventListener('resize', () => { | ||||
| 		const vh = window.innerHeight * 0.01; | ||||
| 		document.documentElement.style.setProperty('--vh', `${vh}px`); | ||||
| 	}); | ||||
| 	//#endregion
 | ||||
| }); | ||||
| //#endregion
 | ||||
| 
 | ||||
| 	// If mobile, insert the viewport meta tag
 | ||||
| 	if (['smartphone', 'tablet'].includes(deviceKind)) { | ||||
| // If mobile, insert the viewport meta tag
 | ||||
| if (['smartphone', 'tablet'].includes(deviceKind)) { | ||||
| 	const viewport = document.getElementsByName('viewport').item(0); | ||||
| 	viewport.setAttribute('content', | ||||
| 		`${viewport.getAttribute('content')}, minimum-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover`); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| 	//#region Set lang attr
 | ||||
| 	const html = document.documentElement; | ||||
| 	html.setAttribute('lang', lang); | ||||
| 	//#endregion
 | ||||
| //#region Set lang attr
 | ||||
| const html = document.documentElement; | ||||
| html.setAttribute('lang', lang); | ||||
| //#endregion
 | ||||
| 
 | ||||
| 	//#region loginId
 | ||||
| 	const params = new URLSearchParams(location.search); | ||||
| 	const loginId = params.get('loginId'); | ||||
| //#region loginId
 | ||||
| const params = new URLSearchParams(location.search); | ||||
| const loginId = params.get('loginId'); | ||||
| 
 | ||||
| 	if (loginId) { | ||||
| if (loginId) { | ||||
| 	const target = getUrlWithoutLoginId(location.href); | ||||
| 
 | ||||
| 	if (!$i || $i.id !== loginId) { | ||||
|  | @ -119,18 +118,18 @@ import { getAccountFromId } from '@/scripts/get-account-from-id'; | |||
| 	} | ||||
| 
 | ||||
| 	history.replaceState({ misskey: 'loginId' }, '', target); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| 	//#endregion
 | ||||
| //#endregion
 | ||||
| 
 | ||||
| 	//#region Fetch user
 | ||||
| 	if ($i && $i.token) { | ||||
| //#region Fetch user
 | ||||
| if ($i && $i.token) { | ||||
| 	if (_DEV_) { | ||||
| 		console.log('account cache found. refreshing...'); | ||||
| 	} | ||||
| 
 | ||||
| 	refreshAccount(); | ||||
| 	} else { | ||||
| } else { | ||||
| 	if (_DEV_) { | ||||
| 		console.log('no account cache found.'); | ||||
| 	} | ||||
|  | @ -156,51 +155,51 @@ import { getAccountFromId } from '@/scripts/get-account-from-id'; | |||
| 			console.log('not signed in'); | ||||
| 		} | ||||
| 	} | ||||
| 	} | ||||
| 	//#endregion
 | ||||
| } | ||||
| //#endregion
 | ||||
| 
 | ||||
| 	const fetchInstanceMetaPromise = fetchInstance(); | ||||
| const fetchInstanceMetaPromise = fetchInstance(); | ||||
| 
 | ||||
| 	fetchInstanceMetaPromise.then(() => { | ||||
| fetchInstanceMetaPromise.then(() => { | ||||
| 	localStorage.setItem('v', instance.version); | ||||
| 
 | ||||
| 	// Init service worker
 | ||||
| 	initializeSw(); | ||||
| 	}); | ||||
| }); | ||||
| 
 | ||||
| 	const app = createApp( | ||||
| const app = createApp( | ||||
| 	window.location.search === '?zen' ? defineAsyncComponent(() => import('@/ui/zen.vue')) : | ||||
| 	!$i ? defineAsyncComponent(() => import('@/ui/visitor.vue')) : | ||||
| 	ui === 'deck' ? defineAsyncComponent(() => import('@/ui/deck.vue')) : | ||||
| 	ui === 'classic' ? defineAsyncComponent(() => import('@/ui/classic.vue')) : | ||||
| 	defineAsyncComponent(() => import('@/ui/universal.vue')), | ||||
| 	); | ||||
| ); | ||||
| 
 | ||||
| 	if (_DEV_) { | ||||
| if (_DEV_) { | ||||
| 	app.config.performance = true; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| 	app.config.globalProperties = { | ||||
| app.config.globalProperties = { | ||||
| 	$i, | ||||
| 	$store: defaultStore, | ||||
| 	$instance: instance, | ||||
| 	$t: i18n.t, | ||||
| 	$ts: i18n.ts, | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| 	widgets(app); | ||||
| 	directives(app); | ||||
| 	components(app); | ||||
| widgets(app); | ||||
| directives(app); | ||||
| components(app); | ||||
| 
 | ||||
| 	const splash = document.getElementById('splash'); | ||||
| 	// 念のためnullチェック(HTMLが古い場合があるため(そのうち消す))
 | ||||
| 	if (splash) splash.addEventListener('transitionend', () => { | ||||
| const splash = document.getElementById('splash'); | ||||
| // 念のためnullチェック(HTMLが古い場合があるため(そのうち消す))
 | ||||
| if (splash) splash.addEventListener('transitionend', () => { | ||||
| 	splash.remove(); | ||||
| 	}); | ||||
| }); | ||||
| 
 | ||||
| 	// https://github.com/misskey-dev/misskey/pull/8575#issuecomment-1114239210
 | ||||
| 	// なぜかinit.tsの内容が2回実行されることがあるため、mountするdivを1つに制限する
 | ||||
| 	const rootEl = (() => { | ||||
| // https://github.com/misskey-dev/misskey/pull/8575#issuecomment-1114239210
 | ||||
| // なぜかinit.tsの内容が2回実行されることがあるため、mountするdivを1つに制限する
 | ||||
| const rootEl = (() => { | ||||
| 	const MISSKEY_MOUNT_DIV_ID = 'misskey_app'; | ||||
| 
 | ||||
| 	const currentEl = document.getElementById(MISSKEY_MOUNT_DIV_ID); | ||||
|  | @ -214,24 +213,24 @@ import { getAccountFromId } from '@/scripts/get-account-from-id'; | |||
| 	rootEl.id = MISSKEY_MOUNT_DIV_ID; | ||||
| 	document.body.appendChild(rootEl); | ||||
| 	return rootEl; | ||||
| 	})(); | ||||
| })(); | ||||
| 
 | ||||
| 	app.mount(rootEl); | ||||
| app.mount(rootEl); | ||||
| 
 | ||||
| 	// boot.jsのやつを解除
 | ||||
| 	window.onerror = null; | ||||
| 	window.onunhandledrejection = null; | ||||
| // boot.jsのやつを解除
 | ||||
| window.onerror = null; | ||||
| window.onunhandledrejection = null; | ||||
| 
 | ||||
| 	reactionPicker.init(); | ||||
| reactionPicker.init(); | ||||
| 
 | ||||
| 	if (splash) { | ||||
| if (splash) { | ||||
| 	splash.style.opacity = '0'; | ||||
| 	splash.style.pointerEvents = 'none'; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| 	// クライアントが更新されたか?
 | ||||
| 	const lastVersion = localStorage.getItem('lastVersion'); | ||||
| 	if (lastVersion !== version) { | ||||
| // クライアントが更新されたか?
 | ||||
| const lastVersion = localStorage.getItem('lastVersion'); | ||||
| if (lastVersion !== version) { | ||||
| 	localStorage.setItem('lastVersion', version); | ||||
| 
 | ||||
| 	// テーマリビルドするため
 | ||||
|  | @ -246,62 +245,62 @@ import { getAccountFromId } from '@/scripts/get-account-from-id'; | |||
| 		} | ||||
| 	} catch (err) { | ||||
| 	} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| 	// NOTE: この処理は必ず↑のクライアント更新時処理より後に来ること(テーマ再構築のため)
 | ||||
| 	watch(defaultStore.reactiveState.darkMode, (darkMode) => { | ||||
| // NOTE: この処理は必ず↑のクライアント更新時処理より後に来ること(テーマ再構築のため)
 | ||||
| watch(defaultStore.reactiveState.darkMode, (darkMode) => { | ||||
| 	applyTheme(darkMode ? ColdDeviceStorage.get('darkTheme') : ColdDeviceStorage.get('lightTheme')); | ||||
| 	}, { immediate: localStorage.theme == null }); | ||||
| }, { immediate: localStorage.theme == null }); | ||||
| 
 | ||||
| 	const darkTheme = computed(ColdDeviceStorage.makeGetterSetter('darkTheme')); | ||||
| 	const lightTheme = computed(ColdDeviceStorage.makeGetterSetter('lightTheme')); | ||||
| const darkTheme = computed(ColdDeviceStorage.makeGetterSetter('darkTheme')); | ||||
| const lightTheme = computed(ColdDeviceStorage.makeGetterSetter('lightTheme')); | ||||
| 
 | ||||
| 	watch(darkTheme, (theme) => { | ||||
| watch(darkTheme, (theme) => { | ||||
| 	if (defaultStore.state.darkMode) { | ||||
| 		applyTheme(theme); | ||||
| 	} | ||||
| 	}); | ||||
| }); | ||||
| 
 | ||||
| 	watch(lightTheme, (theme) => { | ||||
| watch(lightTheme, (theme) => { | ||||
| 	if (!defaultStore.state.darkMode) { | ||||
| 		applyTheme(theme); | ||||
| 	} | ||||
| 	}); | ||||
| }); | ||||
| 
 | ||||
| 	//#region Sync dark mode
 | ||||
| 	if (ColdDeviceStorage.get('syncDeviceDarkMode')) { | ||||
| //#region Sync dark mode
 | ||||
| if (ColdDeviceStorage.get('syncDeviceDarkMode')) { | ||||
| 	defaultStore.set('darkMode', isDeviceDarkmode()); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| 	window.matchMedia('(prefers-color-scheme: dark)').addListener(mql => { | ||||
| window.matchMedia('(prefers-color-scheme: dark)').addListener(mql => { | ||||
| 	if (ColdDeviceStorage.get('syncDeviceDarkMode')) { | ||||
| 		defaultStore.set('darkMode', mql.matches); | ||||
| 	} | ||||
| 	}); | ||||
| 	//#endregion
 | ||||
| }); | ||||
| //#endregion
 | ||||
| 
 | ||||
| 	fetchInstanceMetaPromise.then(() => { | ||||
| fetchInstanceMetaPromise.then(() => { | ||||
| 	if (defaultStore.state.themeInitial) { | ||||
| 		if (instance.defaultLightTheme != null) ColdDeviceStorage.set('lightTheme', JSON5.parse(instance.defaultLightTheme)); | ||||
| 		if (instance.defaultDarkTheme != null) ColdDeviceStorage.set('darkTheme', JSON5.parse(instance.defaultDarkTheme)); | ||||
| 		defaultStore.set('themeInitial', false); | ||||
| 	} | ||||
| 	}); | ||||
| }); | ||||
| 
 | ||||
| 	watch(defaultStore.reactiveState.useBlurEffectForModal, v => { | ||||
| watch(defaultStore.reactiveState.useBlurEffectForModal, v => { | ||||
| 	document.documentElement.style.setProperty('--modalBgFilter', v ? 'blur(4px)' : 'none'); | ||||
| 	}, { immediate: true }); | ||||
| }, { immediate: true }); | ||||
| 
 | ||||
| 	watch(defaultStore.reactiveState.useBlurEffect, v => { | ||||
| watch(defaultStore.reactiveState.useBlurEffect, v => { | ||||
| 	if (v) { | ||||
| 		document.documentElement.style.removeProperty('--blur'); | ||||
| 	} else { | ||||
| 		document.documentElement.style.setProperty('--blur', 'none'); | ||||
| 	} | ||||
| 	}, { immediate: true }); | ||||
| }, { immediate: true }); | ||||
| 
 | ||||
| 	let reloadDialogShowing = false; | ||||
| 	stream.on('_disconnected_', async () => { | ||||
| let reloadDialogShowing = false; | ||||
| stream.on('_disconnected_', async () => { | ||||
| 	if (defaultStore.state.serverDisconnectedBehavior === 'reload') { | ||||
| 		location.reload(); | ||||
| 	} else if (defaultStore.state.serverDisconnectedBehavior === 'dialog') { | ||||
|  | @ -317,27 +316,27 @@ import { getAccountFromId } from '@/scripts/get-account-from-id'; | |||
| 			location.reload(); | ||||
| 		} | ||||
| 	} | ||||
| 	}); | ||||
| }); | ||||
| 
 | ||||
| 	stream.on('emojiAdded', emojiData => { | ||||
| stream.on('emojiAdded', emojiData => { | ||||
| 	// TODO
 | ||||
| 	//store.commit('instance/set', );
 | ||||
| 	}); | ||||
| }); | ||||
| 
 | ||||
| 	for (const plugin of ColdDeviceStorage.get('plugins').filter(p => p.active)) { | ||||
| for (const plugin of ColdDeviceStorage.get('plugins').filter(p => p.active)) { | ||||
| 	import('./plugin').then(({ install }) => { | ||||
| 		install(plugin); | ||||
| 	}); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| 	const hotkeys = { | ||||
| const hotkeys = { | ||||
| 	'd': (): void => { | ||||
| 		defaultStore.set('darkMode', !defaultStore.state.darkMode); | ||||
| 	}, | ||||
| 	's': search, | ||||
| 	}; | ||||
| }; | ||||
| 
 | ||||
| 	if ($i) { | ||||
| if ($i) { | ||||
| 	// only add post shortcuts if logged in
 | ||||
| 	hotkeys['p|n'] = post; | ||||
| 
 | ||||
|  | @ -434,8 +433,7 @@ import { getAccountFromId } from '@/scripts/get-account-from-id'; | |||
| 	main.on('myTokenRegenerated', () => { | ||||
| 		signout(); | ||||
| 	}); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| 	// shortcut
 | ||||
| 	document.addEventListener('keydown', makeHotkey(hotkeys)); | ||||
| })(); | ||||
| // shortcut
 | ||||
| document.addEventListener('keydown', makeHotkey(hotkeys)); | ||||
|  |  | |||
|  | @ -49,7 +49,6 @@ export default defineConfig(({ command, mode }) => { | |||
| 				'chrome100', | ||||
| 				'firefox100', | ||||
| 				'safari15', | ||||
| 				'es2017', // TODO: そのうち消す
 | ||||
| 			], | ||||
| 			manifest: 'manifest.json', | ||||
| 			rollupOptions: { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue