diff options
| author | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-08-26 08:57:36 +0900 |
|---|---|---|
| committer | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-08-26 08:57:36 +0900 |
| commit | 120af977a9cb0af4744e590b36e829bfb140ae4a (patch) | |
| tree | 698eb871a96cc259a3d5e3c04ba21b32bdeadaf3 /packages/frontend/src | |
| parent | refactor (diff) | |
| download | misskey-120af977a9cb0af4744e590b36e829bfb140ae4a.tar.gz misskey-120af977a9cb0af4744e590b36e829bfb140ae4a.tar.bz2 misskey-120af977a9cb0af4744e590b36e829bfb140ae4a.zip | |
refactoe
Diffstat (limited to 'packages/frontend/src')
| -rw-r--r-- | packages/frontend/src/pages/lookup.vue | 17 | ||||
| -rw-r--r-- | packages/frontend/src/pages/my-lists/index.vue | 6 | ||||
| -rw-r--r-- | packages/frontend/src/pages/my-lists/list.vue | 2 | ||||
| -rw-r--r-- | packages/frontend/src/pages/notifications.vue | 4 | ||||
| -rw-r--r-- | packages/frontend/src/pages/settings/2fa.vue | 6 | ||||
| -rw-r--r-- | packages/frontend/src/pages/settings/accounts.vue | 4 | ||||
| -rw-r--r-- | packages/frontend/src/pages/settings/apps.vue | 4 | ||||
| -rw-r--r-- | packages/frontend/src/pages/settings/email.vue | 2 |
8 files changed, 21 insertions, 24 deletions
diff --git a/packages/frontend/src/pages/lookup.vue b/packages/frontend/src/pages/lookup.vue index d5ee0cdf97..8a1e952d85 100644 --- a/packages/frontend/src/pages/lookup.vue +++ b/packages/frontend/src/pages/lookup.vue @@ -29,7 +29,7 @@ import MkButton from '@/components/MkButton.vue'; const state = ref<'fetching' | 'done'>('fetching'); -function fetch() { +function _fetch_() { const params = new URL(window.location.href).searchParams; // acctのほうはdeprecated @@ -44,20 +44,18 @@ function fetch() { if (uri.startsWith('https://')) { promise = misskeyApi('ap/show', { uri, - }); - - promise.then(res => { + }).then(res => { if (res.type === 'User') { mainRouter.replace('/@:acct/:page?', { params: { acct: res.host != null ? `${res.object.username}@${res.object.host}` : res.object.username, - } + }, }); } else if (res.type === 'Note') { mainRouter.replace('/notes/:noteId/:initialTab?', { params: { noteId: res.object.id, - } + }, }); } else { os.alert({ @@ -70,12 +68,11 @@ function fetch() { if (uri.startsWith('acct:')) { uri = uri.slice(5); } - promise = misskeyApi('users/show', Misskey.acct.parse(uri)); - promise.then(user => { + promise = misskeyApi('users/show', Misskey.acct.parse(uri)).then(user => { mainRouter.replace('/@:acct/:page?', { params: { acct: user.host != null ? `${user.username}@${user.host}` : user.username, - } + }, }); }); } @@ -96,7 +93,7 @@ function goToMisskey(): void { window.location.href = '/'; } -fetch(); +_fetch_(); const headerActions = computed(() => []); diff --git a/packages/frontend/src/pages/my-lists/index.vue b/packages/frontend/src/pages/my-lists/index.vue index fb31cd542c..0933618f54 100644 --- a/packages/frontend/src/pages/my-lists/index.vue +++ b/packages/frontend/src/pages/my-lists/index.vue @@ -17,8 +17,8 @@ SPDX-License-Identifier: AGPL-3.0-only <div v-if="items.length > 0" class="_gaps"> <MkA v-for="list in items" :key="list.id" class="_panel" :class="$style.list" :to="`/my/lists/${ list.id }`"> - <div style="margin-bottom: 4px;">{{ list.name }} <span :class="$style.nUsers">({{ i18n.tsx.nUsers({ n: `${list.userIds.length}/${$i.policies['userEachUserListsLimit']}` }) }})</span></div> - <MkAvatars :userIds="list.userIds" :limit="10"/> + <div style="margin-bottom: 4px;">{{ list.name }} <span :class="$style.nUsers">({{ i18n.tsx.nUsers({ n: `${list.userIds!.length}/${$i.policies['userEachUserListsLimit']}` }) }})</span></div> + <MkAvatars :userIds="list.userIds!" :limit="10"/> </MkA> </div> </div> @@ -50,7 +50,7 @@ async function create() { const { canceled, result: name } = await os.inputText({ title: i18n.ts.enterListName, }); - if (canceled) return; + if (canceled || name == null) return; await os.apiWithDialog('users/lists/create', { name: name }); userListsCache.delete(); fetch(); diff --git a/packages/frontend/src/pages/my-lists/list.vue b/packages/frontend/src/pages/my-lists/list.vue index 6b5a797023..eb8e26be3b 100644 --- a/packages/frontend/src/pages/my-lists/list.vue +++ b/packages/frontend/src/pages/my-lists/list.vue @@ -24,7 +24,7 @@ SPDX-License-Identifier: AGPL-3.0-only <MkFolder defaultOpen> <template #label>{{ i18n.ts.members }}</template> - <template #caption>{{ i18n.tsx.nUsers({ n: `${list.userIds.length}/${$i.policies['userEachUserListsLimit']}` }) }}</template> + <template #caption>{{ i18n.tsx.nUsers({ n: `${list.userIds!.length}/${$i.policies['userEachUserListsLimit']}` }) }}</template> <div class="_gaps_s"> <MkButton rounded primary style="margin: 0 auto;" @click="addUser()">{{ i18n.ts.addUser }}</MkButton> diff --git a/packages/frontend/src/pages/notifications.vue b/packages/frontend/src/pages/notifications.vue index a8c1fb654c..71c957460c 100644 --- a/packages/frontend/src/pages/notifications.vue +++ b/packages/frontend/src/pages/notifications.vue @@ -31,7 +31,7 @@ import { Paginator } from '@/utility/paginator.js'; const tab = ref('all'); const includeTypes = ref<string[] | null>(null); -const excludeTypes = computed(() => includeTypes.value ? notificationTypes.filter(t => !includeTypes.value.includes(t)) : null); +const excludeTypes = computed(() => includeTypes.value ? notificationTypes.filter(t => !includeTypes.value!.includes(t)) : null); const mentionsPaginator = markRaw(new Paginator('notes/mentions', { limit: 10, @@ -71,7 +71,7 @@ const headerActions = computed(() => [tab.value === 'all' ? { text: i18n.ts.markAllAsRead, icon: 'ti ti-check', handler: () => { - os.apiWithDialog('notifications/mark-all-as-read'); + os.apiWithDialog('notifications/mark-all-as-read', {}); }, } : undefined].filter(x => x !== undefined)); diff --git a/packages/frontend/src/pages/settings/2fa.vue b/packages/frontend/src/pages/settings/2fa.vue index 1f98fab618..ca404b43c4 100644 --- a/packages/frontend/src/pages/settings/2fa.vue +++ b/packages/frontend/src/pages/settings/2fa.vue @@ -25,7 +25,7 @@ SPDX-License-Identifier: AGPL-3.0-only <div v-if="$i.twoFactorEnabled" class="_gaps_s"> <div v-text="i18n.ts._2fa.alreadyRegistered"/> - <template v-if="$i.securityKeysList.length > 0"> + <template v-if="$i.securityKeysList!.length > 0"> <MkButton @click="renewTOTP">{{ i18n.ts._2fa.renewTOTP }}</MkButton> <MkInfo>{{ i18n.ts._2fa.whyTOTPOnlyRenew }}</MkInfo> </template> @@ -58,7 +58,7 @@ SPDX-License-Identifier: AGPL-3.0-only <template v-else> <MkButton primary @click="addSecurityKey">{{ i18n.ts._2fa.registerSecurityKey }}</MkButton> - <MkFolder v-for="key in $i.securityKeysList" :key="key.id"> + <MkFolder v-for="key in $i.securityKeysList!" :key="key.id"> <template #label>{{ key.name }}</template> <template #suffix><I18n :src="i18n.ts.lastUsedAt"><template #t><MkTime :time="key.lastUsed"/></template></I18n></template> <div class="_buttons"> @@ -72,7 +72,7 @@ SPDX-License-Identifier: AGPL-3.0-only </SearchMarker> <SearchMarker :keywords="['password', 'less', 'key', 'passkey', 'login', 'signin']"> - <MkSwitch :disabled="!$i.twoFactorEnabled || $i.securityKeysList.length === 0" :modelValue="usePasswordLessLogin" @update:modelValue="v => updatePasswordLessLogin(v)"> + <MkSwitch :disabled="!$i.twoFactorEnabled || $i.securityKeysList!.length === 0" :modelValue="usePasswordLessLogin" @update:modelValue="v => updatePasswordLessLogin(v)"> <template #label><SearchLabel>{{ i18n.ts.passwordLessLogin }}</SearchLabel></template> <template #caption><SearchText>{{ i18n.ts.passwordLessLoginDescription }}</SearchText></template> </MkSwitch> diff --git a/packages/frontend/src/pages/settings/accounts.vue b/packages/frontend/src/pages/settings/accounts.vue index 2fd0a021da..26010e93eb 100644 --- a/packages/frontend/src/pages/settings/accounts.vue +++ b/packages/frontend/src/pages/settings/accounts.vue @@ -11,7 +11,7 @@ SPDX-License-Identifier: AGPL-3.0-only <!--<MkButton @click="refreshAllAccounts"><i class="ti ti-refresh"></i></MkButton>--> </div> - <MkUserCardMini v-for="x in accounts" :key="x[0] + x[1].id" :user="x[1]" :class="$style.user" @click.prevent="menu(x[0], x[1], $event)"/> + <MkUserCardMini v-for="x in accounts" :key="x[0] + x[1].id" :user="x[1]" :class="$style.user" @click.prevent="showMenu(x[0], x[1], $event)"/> </div> </SearchMarker> </template> @@ -36,7 +36,7 @@ function refreshAllAccounts() { // TODO } -function menu(host: string, account: Misskey.entities.UserDetailed, ev: MouseEvent) { +function showMenu(host: string, account: Misskey.entities.UserDetailed, ev: MouseEvent) { let menu: MenuItem[]; menu = [{ diff --git a/packages/frontend/src/pages/settings/apps.vue b/packages/frontend/src/pages/settings/apps.vue index 5f51a5e079..54e214241b 100644 --- a/packages/frontend/src/pages/settings/apps.vue +++ b/packages/frontend/src/pages/settings/apps.vue @@ -16,7 +16,7 @@ SPDX-License-Identifier: AGPL-3.0-only </template> <template #label>{{ token.name }}</template> <template #caption>{{ token.description }}</template> - <template #suffix><MkTime :time="token.lastUsedAt"/></template> + <template v-if="token.lastUsedAt != null" #suffix><MkTime :time="token.lastUsedAt"/></template> <template #footer> <MkButton danger @click="revoke(token)"><i class="ti ti-trash"></i> {{ i18n.ts.delete }}</MkButton> </template> @@ -28,7 +28,7 @@ SPDX-License-Identifier: AGPL-3.0-only <template #key>{{ i18n.ts.installedDate }}</template> <template #value><MkTime :time="token.createdAt" :mode="'detail'"/></template> </MkKeyValue> - <MkKeyValue oneline> + <MkKeyValue v-if="token.lastUsedAt != null" oneline> <template #key>{{ i18n.ts.lastUsedDate }}</template> <template #value><MkTime :time="token.lastUsedAt" :mode="'detail'"/></template> </MkKeyValue> diff --git a/packages/frontend/src/pages/settings/email.vue b/packages/frontend/src/pages/settings/email.vue index fb8f51041e..469a3c2f1c 100644 --- a/packages/frontend/src/pages/settings/email.vue +++ b/packages/frontend/src/pages/settings/email.vue @@ -74,7 +74,7 @@ import { instance } from '@/instance.js'; const $i = ensureSignin(); -const emailAddress = ref($i.email); +const emailAddress = ref($i.email ?? ''); const onChangeReceiveAnnouncementEmail = (v) => { misskeyApi('i/update', { |