From 158152079260b7e8a04a45b27f01bcf4d1e2d1de Mon Sep 17 00:00:00 2001 From: "minghao.yang" Date: Fri, 10 Oct 2025 23:04:34 +0800 Subject: [PATCH 1/2] Draft MR From 4b23caa22e272a8e07f1b5fbebd9b9114c8793b6 Mon Sep 17 00:00:00 2001 From: "minghao.yang" Date: Sat, 11 Oct 2025 08:58:24 +0000 Subject: [PATCH 2/2] feat: add pagination for community discussions and comments --- .../components/community/CommunityPage.vue | 24 +++- .../community/DiscussionDetails.vue | 133 +++++++++++------- frontend/src/locales/en_js/repo.js | 1 + frontend/src/locales/zh_hant_js/repo.js | 1 + frontend/src/locales/zh_js/repo.js | 1 + 5 files changed, 111 insertions(+), 49 deletions(-) diff --git a/frontend/src/components/community/CommunityPage.vue b/frontend/src/components/community/CommunityPage.vue index 206bb34ac..542039ca4 100644 --- a/frontend/src/components/community/CommunityPage.vue +++ b/frontend/src/components/community/CommunityPage.vue @@ -10,6 +10,14 @@ @showDiscussionDetail="showDiscussionDetail" @showNewDiscussion="showNewDiscussion"> + { + const getDiscussion = async (childCurrent) => { + if (childCurrent) { + currentPage.value = childCurrent + } + const params = new URLSearchParams() + params.append('per', perPage.value) + params.append('page', currentPage.value) isDataLoading.value = true if (!props.repoPath || props.repoPath === '') { isDataLoading.value = false @@ -87,9 +106,10 @@ } try { - const { data, error } = await useFetchApi(discussionCreateEndpoint).json() + const { data, error } = await useFetchApi(`${discussionCreateEndpoint}?${params.toString()}`).json() if (data.value) { const discussions = data.value.data.discussions || [] + totalDiscussions.value = data.value.total || 0 cards.value = discussions.sort((a, b) => b.id - a.id) } else { ElMessage({ diff --git a/frontend/src/components/community/DiscussionDetails.vue b/frontend/src/components/community/DiscussionDetails.vue index cd5de9b51..0e77c0bf3 100644 --- a/frontend/src/components/community/DiscussionDetails.vue +++ b/frontend/src/components/community/DiscussionDetails.vue @@ -1,53 +1,65 @@