feat: Mail infinite scroll, remove sort header + pagination, connect filter/sort to MailList

This commit is contained in:
Agent Zero
2026-07-30 13:38:43 +02:00
parent 75432cbcfd
commit cfeac52058
2 changed files with 40 additions and 133 deletions
+7 -11
View File
@@ -190,7 +190,8 @@ export function MailPage() {
const result = await fetchMails(currentFolderId, mailsPage, sortBy, sortOrder);
// Only update if still on the same folder
if (selectedFolderIdRef.current === currentFolderId) {
setMails(result.mails);
// Append for infinite scroll (page > 1), replace on page 1 or folder change
setMails(mailsPage > 1 ? (prev) => [...prev, ...result.mails] : result.mails);
setMailsTotal(result.total);
}
}
@@ -892,20 +893,15 @@ export function MailPage() {
selectedMailId={selectedMail?.id || null}
onSelectMail={handleSelectMail}
loading={loadingMails}
currentPage={mailsPage}
total={mailsTotal}
pageSize={PAGE_SIZE}
onPageChange={setMailsPage}
selectedMailIds={selectedMailIds}
onToggleSelect={handleToggleSelect}
onSelectAll={handleSelectAll}
sortBy={sortBy}
sortOrder={sortOrder}
onSortChange={(by, order) => {
setSortBy(by);
setSortOrder(order);
setMailsPage(1);
onLoadMore={() => {
if (mails.length < mailsTotal) {
setMailsPage((p) => p + 1);
}
}}
hasMore={mails.length < mailsTotal}
/>
</ResizablePanel>