diff --git a/packages/client/src/init.ts b/packages/client/src/init.ts index 94e7f9f6b335d8ef7ba8e696bc62ca3f5a899ce5..98f69c701f11f7b7450a1e2c5de722742f0a1e9a 100644 --- a/packages/client/src/init.ts +++ b/packages/client/src/init.ts @@ -39,403 +39,401 @@ 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_) { - console.warn('Development mode!!!'); - - console.info(`vue ${vueVersion}`); - - (window as any).$i = $i; - (window as any).$store = defaultStore; - - window.addEventListener('error', event => { - console.error(event); - /* - alert({ - type: 'error', - title: 'DEV: Unhandled error', - text: event.message - }); - */ +if (_DEV_) { + console.warn('Development mode!!!'); + + console.info(`vue ${vueVersion}`); + + (window as any).$i = $i; + (window as any).$store = defaultStore; + + window.addEventListener('error', event => { + console.error(event); + /* + alert({ + type: 'error', + title: 'DEV: Unhandled error', + text: event.message }); + */ + }); - window.addEventListener('unhandledrejection', event => { - console.error(event); - /* - alert({ - type: 'error', - title: 'DEV: Unhandled promise rejection', - text: event.reason - }); - */ + window.addEventListener('unhandledrejection', event => { + console.error(event); + /* + alert({ + type: 'error', + title: 'DEV: Unhandled promise rejection', + text: event.reason }); - } + */ + }); +} - // タッãƒãƒ‡ãƒã‚¤ã‚¹ã§CSSã®:hoverを機能ã•ã›ã‚‹ - document.addEventListener('touchend', () => {}, { passive: true }); +// タッãƒãƒ‡ãƒã‚¤ã‚¹ã§CSSã®:hoverを機能ã•ã›ã‚‹ +document.addEventListener('touchend', () => {}, { passive: true }); - // 一斉リãƒãƒ¼ãƒ‰ - reloadChannel.addEventListener('message', path => { - if (path !== null) location.href = path; - else location.reload(); - }); +// 一斉リãƒãƒ¼ãƒ‰ +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)) { - 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`); - } +// 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) { - const target = getUrlWithoutLoginId(location.href); +if (loginId) { + const target = getUrlWithoutLoginId(location.href); - if (!$i || $i.id !== loginId) { - const account = await getAccountFromId(loginId); - if (account) { - await login(account.token, target); - } + if (!$i || $i.id !== loginId) { + const account = await getAccountFromId(loginId); + if (account) { + await login(account.token, target); } + } + + history.replaceState({ misskey: 'loginId' }, '', target); +} + +//#endregion + +//#region Fetch user +if ($i && $i.token) { + if (_DEV_) { + console.log('account cache found. refreshing...'); + } - history.replaceState({ misskey: 'loginId' }, '', target); + refreshAccount(); +} else { + if (_DEV_) { + console.log('no account cache found.'); } - //#endregion + // 連æºãƒã‚°ã‚¤ãƒ³ã®å ´åˆç”¨ã«Cookieã‚’å‚ç…§ã™ã‚‹ + const i = (document.cookie.match(/igi=(\w+)/) || [null, null])[1]; - //#region Fetch user - if ($i && $i.token) { + if (i != null && i !== 'null') { if (_DEV_) { - console.log('account cache found. refreshing...'); + console.log('signing...'); } - refreshAccount(); + try { + document.body.innerHTML = '<div>Please wait...</div>'; + await login(i); + } catch (err) { + // Render the error screen + // TODO: ã¡ã‚ƒã‚“ã¨ã—ãŸã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã‚’レンダリングã™ã‚‹(v10ã¨ã‹ã®ãƒˆãƒ©ãƒ–ルシューティングゲーム付ãã®ã‚„ã¤ã¿ãŸã„ãª) + document.body.innerHTML = '<div id="err">Oops!</div>'; + } } else { if (_DEV_) { - console.log('no account cache found.'); - } - - // 連æºãƒã‚°ã‚¤ãƒ³ã®å ´åˆç”¨ã«Cookieã‚’å‚ç…§ã™ã‚‹ - const i = (document.cookie.match(/igi=(\w+)/) || [null, null])[1]; - - if (i != null && i !== 'null') { - if (_DEV_) { - console.log('signing...'); - } - - try { - document.body.innerHTML = '<div>Please wait...</div>'; - await login(i); - } catch (err) { - // Render the error screen - // TODO: ã¡ã‚ƒã‚“ã¨ã—ãŸã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã‚’レンダリングã™ã‚‹(v10ã¨ã‹ã®ãƒˆãƒ©ãƒ–ルシューティングゲーム付ãã®ã‚„ã¤ã¿ãŸã„ãª) - document.body.innerHTML = '<div id="err">Oops!</div>'; - } - } else { - if (_DEV_) { - console.log('not signed in'); - } + console.log('not signed in'); } } - //#endregion - - const fetchInstanceMetaPromise = fetchInstance(); - - fetchInstanceMetaPromise.then(() => { - localStorage.setItem('v', instance.version); - - // Init service worker - initializeSw(); - }); +} +//#endregion - 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')), - ); +const fetchInstanceMetaPromise = fetchInstance(); - if (_DEV_) { - app.config.performance = true; - } +fetchInstanceMetaPromise.then(() => { + localStorage.setItem('v', instance.version); - app.config.globalProperties = { - $i, - $store: defaultStore, - $instance: instance, - $t: i18n.t, - $ts: i18n.ts, - }; - - widgets(app); - directives(app); - components(app); - - const splash = document.getElementById('splash'); - // 念ã®ãŸã‚nullãƒã‚§ãƒƒã‚¯(HTMLãŒå¤ã„å ´åˆãŒã‚ã‚‹ãŸã‚(ãã®ã†ã¡æ¶ˆã™)) - if (splash) splash.addEventListener('transitionend', () => { - splash.remove(); - }); + // Init service worker + initializeSw(); +}); - // 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 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')), +); - const currentEl = document.getElementById(MISSKEY_MOUNT_DIV_ID); +if (_DEV_) { + app.config.performance = true; +} - if (currentEl) { - console.warn('multiple import detected'); - return currentEl; - } +app.config.globalProperties = { + $i, + $store: defaultStore, + $instance: instance, + $t: i18n.t, + $ts: i18n.ts, +}; + +widgets(app); +directives(app); +components(app); + +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 = (() => { + const MISSKEY_MOUNT_DIV_ID = 'misskey_app'; + + const currentEl = document.getElementById(MISSKEY_MOUNT_DIV_ID); + + if (currentEl) { + console.warn('multiple import detected'); + return currentEl; + } - const rootEl = document.createElement('div'); - rootEl.id = MISSKEY_MOUNT_DIV_ID; - document.body.appendChild(rootEl); - return rootEl; - })(); + const rootEl = document.createElement('div'); + 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) { - splash.style.opacity = '0'; - splash.style.pointerEvents = 'none'; - } +if (splash) { + splash.style.opacity = '0'; + splash.style.pointerEvents = 'none'; +} - // クライアントãŒæ›´æ–°ã•ã‚ŒãŸã‹ï¼Ÿ - const lastVersion = localStorage.getItem('lastVersion'); - if (lastVersion !== version) { - localStorage.setItem('lastVersion', version); +// クライアントãŒæ›´æ–°ã•ã‚ŒãŸã‹ï¼Ÿ +const lastVersion = localStorage.getItem('lastVersion'); +if (lastVersion !== version) { + localStorage.setItem('lastVersion', version); - // テーマリビルドã™ã‚‹ãŸã‚ - localStorage.removeItem('theme'); + // テーマリビルドã™ã‚‹ãŸã‚ + localStorage.removeItem('theme'); - try { // 変ãªãƒãƒ¼ã‚¸ãƒ§ãƒ³æ–‡å—列æ¥ã‚‹ã¨compareVersionsã§ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹ãŸã‚ - if (lastVersion != null && compareVersions(version, lastVersion) === 1) { - // ãƒã‚°ã‚¤ãƒ³ã—ã¦ã‚‹å ´åˆã ã‘ - if ($i) { - popup(defineAsyncComponent(() => import('@/components/updated.vue')), {}, {}, 'closed'); - } + try { // 変ãªãƒãƒ¼ã‚¸ãƒ§ãƒ³æ–‡å—列æ¥ã‚‹ã¨compareVersionsã§ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹ãŸã‚ + if (lastVersion != null && compareVersions(version, lastVersion) === 1) { + // ãƒã‚°ã‚¤ãƒ³ã—ã¦ã‚‹å ´åˆã ã‘ + if ($i) { + popup(defineAsyncComponent(() => import('@/components/updated.vue')), {}, {}, 'closed'); } - } catch (err) { } + } catch (err) { } +} - // NOTE: ã“ã®å‡¦ç†ã¯å¿…ãšâ†‘ã®ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆæ›´æ–°æ™‚処ç†ã‚ˆã‚Šå¾Œã«æ¥ã‚‹ã“ã¨(テーマå†æ§‹ç¯‰ã®ãŸã‚) - watch(defaultStore.reactiveState.darkMode, (darkMode) => { - applyTheme(darkMode ? ColdDeviceStorage.get('darkTheme') : ColdDeviceStorage.get('lightTheme')); - }, { immediate: localStorage.theme == null }); - - const darkTheme = computed(ColdDeviceStorage.makeGetterSetter('darkTheme')); - const lightTheme = computed(ColdDeviceStorage.makeGetterSetter('lightTheme')); +// NOTE: ã“ã®å‡¦ç†ã¯å¿…ãšâ†‘ã®ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆæ›´æ–°æ™‚処ç†ã‚ˆã‚Šå¾Œã«æ¥ã‚‹ã“ã¨(テーマå†æ§‹ç¯‰ã®ãŸã‚) +watch(defaultStore.reactiveState.darkMode, (darkMode) => { + applyTheme(darkMode ? ColdDeviceStorage.get('darkTheme') : ColdDeviceStorage.get('lightTheme')); +}, { immediate: localStorage.theme == null }); - watch(darkTheme, (theme) => { - if (defaultStore.state.darkMode) { - applyTheme(theme); - } - }); +const darkTheme = computed(ColdDeviceStorage.makeGetterSetter('darkTheme')); +const lightTheme = computed(ColdDeviceStorage.makeGetterSetter('lightTheme')); - watch(lightTheme, (theme) => { - if (!defaultStore.state.darkMode) { - applyTheme(theme); - } - }); +watch(darkTheme, (theme) => { + if (defaultStore.state.darkMode) { + applyTheme(theme); + } +}); - //#region Sync dark mode - if (ColdDeviceStorage.get('syncDeviceDarkMode')) { - defaultStore.set('darkMode', isDeviceDarkmode()); +watch(lightTheme, (theme) => { + if (!defaultStore.state.darkMode) { + applyTheme(theme); } +}); - window.matchMedia('(prefers-color-scheme: dark)').addListener(mql => { - if (ColdDeviceStorage.get('syncDeviceDarkMode')) { - defaultStore.set('darkMode', mql.matches); - } - }); - //#endregion +//#region Sync dark mode +if (ColdDeviceStorage.get('syncDeviceDarkMode')) { + defaultStore.set('darkMode', isDeviceDarkmode()); +} - 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); - } - }); +window.matchMedia('(prefers-color-scheme: dark)').addListener(mql => { + if (ColdDeviceStorage.get('syncDeviceDarkMode')) { + defaultStore.set('darkMode', mql.matches); + } +}); +//#endregion - watch(defaultStore.reactiveState.useBlurEffectForModal, v => { - document.documentElement.style.setProperty('--modalBgFilter', v ? 'blur(4px)' : 'none'); - }, { immediate: true }); +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.useBlurEffect, v => { - if (v) { - document.documentElement.style.removeProperty('--blur'); - } else { - document.documentElement.style.setProperty('--blur', 'none'); - } - }, { immediate: true }); +watch(defaultStore.reactiveState.useBlurEffectForModal, v => { + document.documentElement.style.setProperty('--modalBgFilter', v ? 'blur(4px)' : 'none'); +}, { immediate: true }); - let reloadDialogShowing = false; - stream.on('_disconnected_', async () => { - if (defaultStore.state.serverDisconnectedBehavior === 'reload') { +watch(defaultStore.reactiveState.useBlurEffect, v => { + if (v) { + document.documentElement.style.removeProperty('--blur'); + } else { + document.documentElement.style.setProperty('--blur', 'none'); + } +}, { immediate: true }); + +let reloadDialogShowing = false; +stream.on('_disconnected_', async () => { + if (defaultStore.state.serverDisconnectedBehavior === 'reload') { + location.reload(); + } else if (defaultStore.state.serverDisconnectedBehavior === 'dialog') { + if (reloadDialogShowing) return; + reloadDialogShowing = true; + const { canceled } = await confirm({ + type: 'warning', + title: i18n.ts.disconnectedFromServer, + text: i18n.ts.reloadConfirm, + }); + reloadDialogShowing = false; + if (!canceled) { location.reload(); - } else if (defaultStore.state.serverDisconnectedBehavior === 'dialog') { - if (reloadDialogShowing) return; - reloadDialogShowing = true; - const { canceled } = await confirm({ - type: 'warning', - title: i18n.ts.disconnectedFromServer, - text: i18n.ts.reloadConfirm, - }); - reloadDialogShowing = false; - if (!canceled) { - location.reload(); - } } - }); + } +}); + +stream.on('emojiAdded', emojiData => { + // TODO + //store.commit('instance/set', ); +}); - stream.on('emojiAdded', emojiData => { - // TODO - //store.commit('instance/set', ); +for (const plugin of ColdDeviceStorage.get('plugins').filter(p => p.active)) { + import('./plugin').then(({ install }) => { + install(plugin); }); +} - for (const plugin of ColdDeviceStorage.get('plugins').filter(p => p.active)) { - import('./plugin').then(({ install }) => { - install(plugin); +const hotkeys = { + 'd': (): void => { + defaultStore.set('darkMode', !defaultStore.state.darkMode); + }, + 's': search, +}; + +if ($i) { + // only add post shortcuts if logged in + hotkeys['p|n'] = post; + + if ($i.isDeleted) { + alert({ + type: 'warning', + text: i18n.ts.accountDeletionInProgress, }); } - const hotkeys = { - 'd': (): void => { - defaultStore.set('darkMode', !defaultStore.state.darkMode); - }, - 's': search, - }; - - if ($i) { - // only add post shortcuts if logged in - hotkeys['p|n'] = post; - - if ($i.isDeleted) { - alert({ - type: 'warning', - text: i18n.ts.accountDeletionInProgress, - }); + const lastUsed = localStorage.getItem('lastUsed'); + if (lastUsed) { + const lastUsedDate = parseInt(lastUsed, 10); + // 二時間以上å‰ãªã‚‰ + if (Date.now() - lastUsedDate > 1000 * 60 * 60 * 2) { + toast(i18n.t('welcomeBackWithName', { + name: $i.name || $i.username, + })); } + } + localStorage.setItem('lastUsed', Date.now().toString()); - const lastUsed = localStorage.getItem('lastUsed'); - if (lastUsed) { - const lastUsedDate = parseInt(lastUsed, 10); - // 二時間以上å‰ãªã‚‰ - if (Date.now() - lastUsedDate > 1000 * 60 * 60 * 2) { - toast(i18n.t('welcomeBackWithName', { - name: $i.name || $i.username, - })); - } - } - localStorage.setItem('lastUsed', Date.now().toString()); - - if ('Notification' in window) { - // 許å¯ã‚’å¾—ã¦ã„ãªã‹ã£ãŸã‚‰ãƒªã‚¯ã‚¨ã‚¹ãƒˆ - if (Notification.permission === 'default') { - Notification.requestPermission(); - } + if ('Notification' in window) { + // 許å¯ã‚’å¾—ã¦ã„ãªã‹ã£ãŸã‚‰ãƒªã‚¯ã‚¨ã‚¹ãƒˆ + if (Notification.permission === 'default') { + Notification.requestPermission(); } + } - const main = markRaw(stream.useChannel('main', null, 'System')); + const main = markRaw(stream.useChannel('main', null, 'System')); - // 自分ã®æƒ…å ±ãŒæ›´æ–°ã•ã‚ŒãŸã¨ã - main.on('meUpdated', i => { - updateAccount(i); - }); + // 自分ã®æƒ…å ±ãŒæ›´æ–°ã•ã‚ŒãŸã¨ã + main.on('meUpdated', i => { + updateAccount(i); + }); - main.on('readAllNotifications', () => { - updateAccount({ hasUnreadNotification: false }); - }); + main.on('readAllNotifications', () => { + updateAccount({ hasUnreadNotification: false }); + }); - main.on('unreadNotification', () => { - updateAccount({ hasUnreadNotification: true }); - }); + main.on('unreadNotification', () => { + updateAccount({ hasUnreadNotification: true }); + }); - main.on('unreadMention', () => { - updateAccount({ hasUnreadMentions: true }); - }); + main.on('unreadMention', () => { + updateAccount({ hasUnreadMentions: true }); + }); - main.on('readAllUnreadMentions', () => { - updateAccount({ hasUnreadMentions: false }); - }); + main.on('readAllUnreadMentions', () => { + updateAccount({ hasUnreadMentions: false }); + }); - main.on('unreadSpecifiedNote', () => { - updateAccount({ hasUnreadSpecifiedNotes: true }); - }); + main.on('unreadSpecifiedNote', () => { + updateAccount({ hasUnreadSpecifiedNotes: true }); + }); - main.on('readAllUnreadSpecifiedNotes', () => { - updateAccount({ hasUnreadSpecifiedNotes: false }); - }); + main.on('readAllUnreadSpecifiedNotes', () => { + updateAccount({ hasUnreadSpecifiedNotes: false }); + }); - main.on('readAllMessagingMessages', () => { - updateAccount({ hasUnreadMessagingMessage: false }); - }); + main.on('readAllMessagingMessages', () => { + updateAccount({ hasUnreadMessagingMessage: false }); + }); - main.on('unreadMessagingMessage', () => { - updateAccount({ hasUnreadMessagingMessage: true }); - sound.play('chatBg'); - }); + main.on('unreadMessagingMessage', () => { + updateAccount({ hasUnreadMessagingMessage: true }); + sound.play('chatBg'); + }); - main.on('readAllAntennas', () => { - updateAccount({ hasUnreadAntenna: false }); - }); + main.on('readAllAntennas', () => { + updateAccount({ hasUnreadAntenna: false }); + }); - main.on('unreadAntenna', () => { - updateAccount({ hasUnreadAntenna: true }); - sound.play('antenna'); - }); + main.on('unreadAntenna', () => { + updateAccount({ hasUnreadAntenna: true }); + sound.play('antenna'); + }); - main.on('readAllAnnouncements', () => { - updateAccount({ hasUnreadAnnouncement: false }); - }); + main.on('readAllAnnouncements', () => { + updateAccount({ hasUnreadAnnouncement: false }); + }); - main.on('readAllChannels', () => { - updateAccount({ hasUnreadChannel: false }); - }); + main.on('readAllChannels', () => { + updateAccount({ hasUnreadChannel: false }); + }); - main.on('unreadChannel', () => { - updateAccount({ hasUnreadChannel: true }); - sound.play('channel'); - }); + main.on('unreadChannel', () => { + updateAccount({ hasUnreadChannel: true }); + sound.play('channel'); + }); - // トークンãŒå†ç”Ÿæˆã•ã‚ŒãŸã¨ã - // ã“ã®ã¾ã¾ã§ã¯MisskeyãŒåˆ©ç”¨ã§ããªã„ã®ã§å¼·åˆ¶çš„ã«ã‚µã‚¤ãƒ³ã‚¢ã‚¦ãƒˆã•ã›ã‚‹ - main.on('myTokenRegenerated', () => { - signout(); - }); - } + // トークンãŒå†ç”Ÿæˆã•ã‚ŒãŸã¨ã + // ã“ã®ã¾ã¾ã§ã¯MisskeyãŒåˆ©ç”¨ã§ããªã„ã®ã§å¼·åˆ¶çš„ã«ã‚µã‚¤ãƒ³ã‚¢ã‚¦ãƒˆã•ã›ã‚‹ + main.on('myTokenRegenerated', () => { + signout(); + }); +} - // shortcut - document.addEventListener('keydown', makeHotkey(hotkeys)); -})(); +// shortcut +document.addEventListener('keydown', makeHotkey(hotkeys)); diff --git a/packages/client/vite.config.ts b/packages/client/vite.config.ts index f23c621131074ac651e0694766fd6e4c64eda47e..5800cf5021d6fbfcabb467b8a86149cbc06a6eca 100644 --- a/packages/client/vite.config.ts +++ b/packages/client/vite.config.ts @@ -49,7 +49,6 @@ export default defineConfig(({ command, mode }) => { 'chrome100', 'firefox100', 'safari15', - 'es2017', // TODO: ãã®ã†ã¡æ¶ˆã™ ], manifest: 'manifest.json', rollupOptions: {