From 7436e0da18bbf2284ad95a1094141653a4188783 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 29 Oct 2023 16:09:20 +0900 Subject: [PATCH] lint fixes --- .../src/components/MkDateSeparatedList.vue | 2 ++ packages/frontend/src/components/MkDialog.vue | 1 + packages/frontend/src/components/MkDrive.vue | 1 + .../src/components/MkFoldableSection.vue | 1 + packages/frontend/src/components/MkMenu.vue | 2 ++ .../src/components/MkNoteDetailed.vue | 2 ++ .../frontend/src/components/MkPagination.vue | 1 + .../src/components/MkPostFormAttaches.vue | 1 + .../components/global/MkPageHeader.tabs.vue | 3 +++ packages/frontend/src/pages/admin/ads.vue | 22 +++++++++++++------ packages/frontend/src/pages/instance-info.vue | 22 ++++++++++--------- .../frontend/src/pages/settings/general.vue | 3 +++ .../src/pages/settings/webhook.edit.vue | 1 + .../src/scripts/get-drive-file-menu.ts | 1 + packages/frontend/src/scripts/scroll.ts | 2 ++ 15 files changed, 48 insertions(+), 17 deletions(-) diff --git a/packages/frontend/src/components/MkDateSeparatedList.vue b/packages/frontend/src/components/MkDateSeparatedList.vue index 66d4b542be..e5bdd3781b 100644 --- a/packages/frontend/src/components/MkDateSeparatedList.vue +++ b/packages/frontend/src/components/MkDateSeparatedList.vue @@ -42,6 +42,7 @@ export default defineComponent({ setup(props, { slots, expose }) { const $style = useCssModule(); // カスタムレンダラなので使っても大丈夫 + function getDateText(time: string) { const date = new Date(time).getDate(); const month = new Date(time).getMonth() + 1; @@ -121,6 +122,7 @@ export default defineComponent({ el.style.top = `${el.offsetTop}px`; el.style.left = `${el.offsetLeft}px`; } + function onLeaveCanceled(el: HTMLElement) { el.style.top = ''; el.style.left = ''; diff --git a/packages/frontend/src/components/MkDialog.vue b/packages/frontend/src/components/MkDialog.vue index a83c18c0b3..33757ccc83 100644 --- a/packages/frontend/src/components/MkDialog.vue +++ b/packages/frontend/src/components/MkDialog.vue @@ -160,6 +160,7 @@ async function ok() { function cancel() { done(true); } + /* function onBgClick() { if (props.cancelableByBgClick) cancel(); diff --git a/packages/frontend/src/components/MkDrive.vue b/packages/frontend/src/components/MkDrive.vue index 648e4c4e3d..71bb4ecfef 100644 --- a/packages/frontend/src/components/MkDrive.vue +++ b/packages/frontend/src/components/MkDrive.vue @@ -505,6 +505,7 @@ function appendFile(file: Misskey.entities.DriveFile) { function appendFolder(folderToAppend: Misskey.entities.DriveFolder) { addFolder(folderToAppend); } + /* function prependFile(file: Misskey.entities.DriveFile) { addFile(file, true); diff --git a/packages/frontend/src/components/MkFoldableSection.vue b/packages/frontend/src/components/MkFoldableSection.vue index ed3cb0868b..1ffc95d944 100644 --- a/packages/frontend/src/components/MkFoldableSection.vue +++ b/packages/frontend/src/components/MkFoldableSection.vue @@ -84,6 +84,7 @@ onMounted(() => { return getParentBg(el.parentElement); } } + const rawBg = getParentBg(el.value); const _bg = tinycolor(rawBg.startsWith('var(') ? getComputedStyle(document.documentElement).getPropertyValue(rawBg.slice(4, -1)) : rawBg); _bg.setAlpha(0.85); diff --git a/packages/frontend/src/components/MkMenu.vue b/packages/frontend/src/components/MkMenu.vue index 079f07ee47..9457bf385f 100644 --- a/packages/frontend/src/components/MkMenu.vue +++ b/packages/frontend/src/components/MkMenu.vue @@ -145,11 +145,13 @@ const onGlobalMousedown = (event: MouseEvent) => { }; let childCloseTimer: null | number = null; + function onItemMouseEnter(item) { childCloseTimer = window.setTimeout(() => { closeChild(); }, 300); } + function onItemMouseLeave(item) { if (childCloseTimer) window.clearTimeout(childCloseTimer); } diff --git a/packages/frontend/src/components/MkNoteDetailed.vue b/packages/frontend/src/components/MkNoteDetailed.vue index d17037f4f4..ce4fb79d4b 100644 --- a/packages/frontend/src/components/MkNoteDetailed.vue +++ b/packages/frontend/src/components/MkNoteDetailed.vue @@ -499,6 +499,7 @@ function blur() { } const repliesLoaded = ref(false); + function loadReplies() { repliesLoaded.value = true; os.api('notes/children', { @@ -510,6 +511,7 @@ function loadReplies() { } const conversationLoaded = ref(false); + function loadConversation() { conversationLoaded.value = true; os.api('notes/conversation', { diff --git a/packages/frontend/src/components/MkPagination.vue b/packages/frontend/src/components/MkPagination.vue index 5a87273386..80b469f632 100644 --- a/packages/frontend/src/components/MkPagination.vue +++ b/packages/frontend/src/components/MkPagination.vue @@ -87,6 +87,7 @@ function arrayToEntries(entities: MisskeyEntity[]): [string, MisskeyEntity][] { function concatMapWithArray(map: MisskeyEntityMap, entities: MisskeyEntity[]): MisskeyEntityMap { return new Map([...map, ...arrayToEntries(entities)]); } + </script> <script lang="ts" setup> import { infoImageUrl } from '@/instance.js'; diff --git a/packages/frontend/src/components/MkPostFormAttaches.vue b/packages/frontend/src/components/MkPostFormAttaches.vue index 624a44ecae..d499a22ed6 100644 --- a/packages/frontend/src/components/MkPostFormAttaches.vue +++ b/packages/frontend/src/components/MkPostFormAttaches.vue @@ -59,6 +59,7 @@ function toggleSensitive(file) { emit('changeSensitive', file, !file.isSensitive); }); } + async function rename(file) { const { canceled, result } = await os.inputText({ title: i18n.ts.enterFileName, diff --git a/packages/frontend/src/components/global/MkPageHeader.tabs.vue b/packages/frontend/src/components/global/MkPageHeader.tabs.vue index e62967963f..24b92cb83a 100644 --- a/packages/frontend/src/components/global/MkPageHeader.tabs.vue +++ b/packages/frontend/src/components/global/MkPageHeader.tabs.vue @@ -134,9 +134,11 @@ async function enter(el: HTMLElement) { setTimeout(renderTab, 170); } + function afterEnter(el: HTMLElement) { //el.style.width = ''; } + async function leave(el: HTMLElement) { const elementWidth = el.getBoundingClientRect().width; el.style.width = elementWidth + 'px'; @@ -145,6 +147,7 @@ async function leave(el: HTMLElement) { el.style.width = '0'; el.style.paddingLeft = '0'; } + function afterLeave(el: HTMLElement) { el.style.width = ''; } diff --git a/packages/frontend/src/pages/admin/ads.vue b/packages/frontend/src/pages/admin/ads.vue index 6aa0cf0427..d64e78236a 100644 --- a/packages/frontend/src/pages/admin/ads.vue +++ b/packages/frontend/src/pages/admin/ads.vue @@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only <template> <MkStickyContainer> <template #header> - <XHeader :actions="headerActions" :tabs="headerTabs" /> + <XHeader :actions="headerActions" :tabs="headerTabs"/> </template> <MkSpacer :contentMax="900"> <MkSwitch :modelValue="publishing" @update:modelValue="onChangePublishing"> @@ -14,7 +14,7 @@ SPDX-License-Identifier: AGPL-3.0-only </MkSwitch> <div> <div v-for="ad in ads" class="_panel _gaps_m" :class="$style.ad"> - <MkAd v-if="ad.url" :specify="ad" /> + <MkAd v-if="ad.url" :specify="ad"/> <MkInput v-model="ad.url" type="url"> <template #label>URL</template> </MkInput> @@ -51,8 +51,10 @@ SPDX-License-Identifier: AGPL-3.0-only <span> {{ i18n.ts._ad.timezoneinfo }} <div v-for="(day, index) in daysOfWeek" :key="index"> - <input :id="`ad${ad.id}-${index}`" type="checkbox" :checked="(ad.dayOfWeek & (1 << index)) !== 0" - @change="toggleDayOfWeek(ad, index)"> + <input + :id="`ad${ad.id}-${index}`" type="checkbox" :checked="(ad.dayOfWeek & (1 << index)) !== 0" + @change="toggleDayOfWeek(ad, index)" + > <label :for="`ad${ad.id}-${index}`">{{ day }}</label> </div> </span> @@ -61,9 +63,13 @@ SPDX-License-Identifier: AGPL-3.0-only <template #label>{{ i18n.ts.memo }}</template> </MkTextarea> <div class="buttons"> - <MkButton class="button" inline primary style="margin-right: 12px;" @click="save(ad)"><i - class="ti ti-device-floppy"></i> {{ i18n.ts.save }}</MkButton> - <MkButton class="button" inline danger @click="remove(ad)"><i class="ti ti-trash"></i> {{ i18n.ts.remove }} + <MkButton class="button" inline primary style="margin-right: 12px;" @click="save(ad)"> + <i + class="ti ti-device-floppy" + ></i> {{ i18n.ts.save }} + </MkButton> + <MkButton class="button" inline danger @click="remove(ad)"> + <i class="ti ti-trash"></i> {{ i18n.ts.remove }} </MkButton> </div> </div> @@ -115,6 +121,7 @@ const onChangePublishing = (v) => { publishing = v; refresh(); }; + // 選択された曜日(index)のビットフラグを操作する function toggleDayOfWeek(ad, index) { ad.dayOfWeek ^= 1 << index; @@ -187,6 +194,7 @@ function save(ad) { }); } } + function more() { os.api('admin/ad/list', { untilId: ads.reduce((acc, ad) => ad.id != null ? ad : acc).id, publishing: publishing }).then(adsResponse => { ads = ads.concat(adsResponse.map(r => { diff --git a/packages/frontend/src/pages/instance-info.vue b/packages/frontend/src/pages/instance-info.vue index fb93637e00..1ed25c9a47 100644 --- a/packages/frontend/src/pages/instance-info.vue +++ b/packages/frontend/src/pages/instance-info.vue @@ -36,8 +36,8 @@ SPDX-License-Identifier: AGPL-3.0-only <div class="_gaps_s"> <MkSwitch v-model="suspended" :disabled="!instance" @update:modelValue="toggleSuspend">{{ i18n.ts.stopActivityDelivery }}</MkSwitch> <MkSwitch v-model="isBlocked" :disabled="!meta || !instance" @update:modelValue="toggleBlock">{{ i18n.ts.blockThisInstance }}</MkSwitch> - <MkSwitch v-model="isSilenced" :disabled="!meta || !instance" @update:modelValue="toggleSilenced">{{ i18n.ts.silenceThisInstance }}</MkSwitch> - <MkButton @click="refreshMetadata"><i class="ti ti-refresh"></i> Refresh metadata</MkButton> + <MkSwitch v-model="isSilenced" :disabled="!meta || !instance" @update:modelValue="toggleSilenced">{{ i18n.ts.silenceThisInstance }}</MkSwitch> + <MkButton @click="refreshMetadata"><i class="ti ti-refresh"></i> Refresh metadata</MkButton> </div> </FormSection> @@ -171,8 +171,8 @@ async function fetch(): Promise<void> { }); suspended = instance.isSuspended; isBlocked = instance.isBlocked; - isSilenced = instance.isSilenced; - faviconUrl = getProxiedImageUrlNullable(instance.faviconUrl, 'preview') ?? getProxiedImageUrlNullable(instance.iconUrl, 'preview'); + isSilenced = instance.isSilenced; + faviconUrl = getProxiedImageUrlNullable(instance.faviconUrl, 'preview') ?? getProxiedImageUrlNullable(instance.iconUrl, 'preview'); } async function toggleBlock(): Promise<void> { @@ -183,14 +183,16 @@ async function toggleBlock(): Promise<void> { blockedHosts: isBlocked ? meta.blockedHosts.concat([host]) : meta.blockedHosts.filter(x => x !== host), }); } + async function toggleSilenced(): Promise<void> { - if (!meta) throw new Error('No meta?'); - if (!instance) throw new Error('No instance?'); - const { host } = instance; - await os.api('admin/update-meta', { - silencedHosts: isSilenced ? meta.silencedHosts.concat([host]) : meta.silencedHosts.filter(x => x !== host), - }); + if (!meta) throw new Error('No meta?'); + if (!instance) throw new Error('No instance?'); + const { host } = instance; + await os.api('admin/update-meta', { + silencedHosts: isSilenced ? meta.silencedHosts.concat([host]) : meta.silencedHosts.filter(x => x !== host), + }); } + async function toggleSuspend(): Promise<void> { if (!instance) throw new Error('No instance?'); await os.api('admin/federation/update-instance', { diff --git a/packages/frontend/src/pages/settings/general.vue b/packages/frontend/src/pages/settings/general.vue index 9508e04e1b..323dfc0722 100644 --- a/packages/frontend/src/pages/settings/general.vue +++ b/packages/frontend/src/pages/settings/general.vue @@ -298,12 +298,14 @@ const emojiIndexLangs = ['en-US']; function downloadEmojiIndex(lang: string) { async function main() { const currentIndexes = defaultStore.state.additionalUnicodeEmojiIndexes; + function download() { switch (lang) { case 'en-US': return import('../../unicode-emoji-indexes/en-US.json').then(x => x.default); default: throw new Error('unrecognized lang: ' + lang); } } + currentIndexes[lang] = await download(); await defaultStore.set('additionalUnicodeEmojiIndexes', currentIndexes); } @@ -340,6 +342,7 @@ function removePinnedList() { let smashCount = 0; let smashTimer: number | null = null; + function testNotification(): void { const notification: Misskey.entities.Notification = { id: Math.random().toString(), diff --git a/packages/frontend/src/pages/settings/webhook.edit.vue b/packages/frontend/src/pages/settings/webhook.edit.vue index 86b8f60c99..3301732c88 100644 --- a/packages/frontend/src/pages/settings/webhook.edit.vue +++ b/packages/frontend/src/pages/settings/webhook.edit.vue @@ -108,6 +108,7 @@ async function del(): Promise<void> { router.push('/settings/webhook'); } + const headerActions = $computed(() => []); const headerTabs = $computed(() => []); diff --git a/packages/frontend/src/scripts/get-drive-file-menu.ts b/packages/frontend/src/scripts/get-drive-file-menu.ts index 8b2144a22f..d1cafdf27b 100644 --- a/packages/frontend/src/scripts/get-drive-file-menu.ts +++ b/packages/frontend/src/scripts/get-drive-file-menu.ts @@ -56,6 +56,7 @@ function copyUrl(file: Misskey.entities.DriveFile) { copyToClipboard(file.url); os.success(); } + /* function addApp() { alert('not implemented yet'); diff --git a/packages/frontend/src/scripts/scroll.ts b/packages/frontend/src/scripts/scroll.ts index 7338de62b6..1f626e4c0d 100644 --- a/packages/frontend/src/scripts/scroll.ts +++ b/packages/frontend/src/scripts/scroll.ts @@ -46,6 +46,7 @@ export function onScrollTop(el: HTMLElement, cb: () => unknown, tolerance = 1, o }; function removeListener() { container.removeEventListener('scroll', onScroll); } + container.addEventListener('scroll', onScroll, { passive: true }); return removeListener; } @@ -71,6 +72,7 @@ export function onScrollBottom(el: HTMLElement, cb: () => unknown, tolerance = 1 function removeListener() { containerOrWindow.removeEventListener('scroll', onScroll); } + containerOrWindow.addEventListener('scroll', onScroll, { passive: true }); return removeListener; }