summaryrefslogtreecommitdiff
path: root/packages/frontend/src/pages/list.vue
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2025-09-13 08:33:14 +0900
committerGitHub <noreply@github.com>2025-09-13 08:33:14 +0900
commit5b4115e21a6822a434a9bfbbd53f22b3ca961239 (patch)
treeeaac22e870a95feccc47ccc2693b794d0ccd299f /packages/frontend/src/pages/list.vue
parentUpdate CHANGELOG.md (diff)
downloadmisskey-5b4115e21a6822a434a9bfbbd53f22b3ca961239.tar.gz
misskey-5b4115e21a6822a434a9bfbbd53f22b3ca961239.tar.bz2
misskey-5b4115e21a6822a434a9bfbbd53f22b3ca961239.zip
refactor(frontend): フロントエンドの型エラー解消(途中まで) (#16539)
* fix(frontend): FormLinkをボタンとして使用した際にエラーが出る問題を修正 * refactor(frontend): フロントエンドの型エラー解消 * remove unused ts-expect-error * migrate * remove unrelated changes * fix lint * more type fixes
Diffstat (limited to 'packages/frontend/src/pages/list.vue')
-rw-r--r--packages/frontend/src/pages/list.vue13
1 files changed, 7 insertions, 6 deletions
diff --git a/packages/frontend/src/pages/list.vue b/packages/frontend/src/pages/list.vue
index a52b562c7f..efb1186fe5 100644
--- a/packages/frontend/src/pages/list.vue
+++ b/packages/frontend/src/pages/list.vue
@@ -19,7 +19,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</div>
</div>
</div>
- <MkButton v-if="list.isLiked" v-tooltip="i18n.ts.unlike" inline :class="$style.button" asLike primary @click="unlike()"><i class="ti ti-heart-off"></i><span v-if="list.likedCount > 0" class="count">{{ list.likedCount }}</span></MkButton>
+ <MkButton v-if="list.isLiked" v-tooltip="i18n.ts.unlike" inline :class="$style.button" asLike primary @click="unlike()"><i class="ti ti-heart-off"></i><span v-if="list.likedCount != null && list.likedCount > 0" class="count">{{ list.likedCount }}</span></MkButton>
<MkButton v-if="!list.isLiked" v-tooltip="i18n.ts.like" inline :class="$style.button" asLike @click="like()"><i class="ti ti-heart"></i><span v-if="1 > 0" class="count">{{ list.likedCount }}</span></MkButton>
<MkButton inline @click="create()"><i class="ti ti-download" :class="$style.import"></i>{{ i18n.ts.import }}</MkButton>
</div>
@@ -41,7 +41,7 @@ const props = defineProps<{
listId: string;
}>();
-const list = ref<Misskey.entities.UserList | null>(null);
+const list = ref<Misskey.entities.UsersListsShowResponse | null>(null);
const error = ref<unknown | null>(null);
const users = ref<Misskey.entities.UserDetailed[]>([]);
@@ -51,8 +51,9 @@ function fetchList(): void {
forPublic: true,
}).then(_list => {
list.value = _list;
+ if (_list.userIds == null || _list.userIds.length === 0) return;
misskeyApi('users/show', {
- userIds: list.value.userIds,
+ userIds: _list.userIds,
}).then(_users => {
users.value = _users;
});
@@ -68,7 +69,7 @@ function like() {
}).then(() => {
if (list.value == null) return;
list.value.isLiked = true;
- list.value.likedCount++;
+ list.value.likedCount = (list.value.likedCount != null ? list.value.likedCount + 1 : 1);
});
}
@@ -79,7 +80,7 @@ function unlike() {
}).then(() => {
if (list.value == null) return;
list.value.isLiked = false;
- list.value.likedCount--;
+ list.value.likedCount = (list.value.likedCount != null ? Math.max(0, list.value.likedCount - 1) : 0);
});
}
@@ -88,7 +89,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-from-public', { name: name, listId: list.value.id });
}