mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-07-09 14:08:25 +02:00
Add files via upload
This commit is contained in:
+33
-9
@@ -6621,10 +6621,15 @@ function renderConversationsPagination(visibleCount) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function goConversationsPage(page) {
|
function goConversationsPage(page) {
|
||||||
const next = Math.min(Math.max(1, page), getConversationsTotalPages());
|
const requestedPage = Math.max(1, parseInt(page, 10) || 1);
|
||||||
const scrollToTop = next !== conversationsPagination.page;
|
const scrollToTop = requestedPage !== conversationsPagination.page;
|
||||||
conversationsPagination.page = next;
|
conversationsPagination.page = requestedPage;
|
||||||
loadConversationsWithGroups(conversationsSearchQuery, { refreshMeta: false, scrollToTop });
|
// intentPage:用户主动翻页,不在此处用可能已被并发刷新污染的 total 做钳制
|
||||||
|
loadConversationsWithGroups(conversationsSearchQuery, {
|
||||||
|
refreshMeta: false,
|
||||||
|
scrollToTop,
|
||||||
|
intentPage: requestedPage,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeConversationsPageSize() {
|
function changeConversationsPageSize() {
|
||||||
@@ -6737,12 +6742,17 @@ async function loadGroups() {
|
|||||||
async function loadConversationsWithGroups(searchQuery = '', options = {}) {
|
async function loadConversationsWithGroups(searchQuery = '', options = {}) {
|
||||||
const refreshMeta = options.refreshMeta !== false;
|
const refreshMeta = options.refreshMeta !== false;
|
||||||
const scrollToTop = options.scrollToTop === true;
|
const scrollToTop = options.scrollToTop === true;
|
||||||
|
const intentPage = Number.isFinite(options.intentPage) ? options.intentPage : null;
|
||||||
const loadSeq = ++conversationsListLoadSeq;
|
const loadSeq = ++conversationsListLoadSeq;
|
||||||
try {
|
try {
|
||||||
conversationsSearchQuery = searchQuery || '';
|
conversationsSearchQuery = searchQuery || '';
|
||||||
conversationsPagination.pageSize = getConversationsPageSize();
|
const pageSize = getConversationsPageSize();
|
||||||
const pageSize = conversationsPagination.pageSize;
|
conversationsPagination.pageSize = pageSize;
|
||||||
const offset = (conversationsPagination.page - 1) * pageSize;
|
const activePage = intentPage != null ? intentPage : conversationsPagination.page;
|
||||||
|
if (intentPage != null) {
|
||||||
|
conversationsPagination.page = intentPage;
|
||||||
|
}
|
||||||
|
const offset = (activePage - 1) * pageSize;
|
||||||
const convParams = new URLSearchParams({ limit: String(pageSize), offset: String(offset) });
|
const convParams = new URLSearchParams({ limit: String(pageSize), offset: String(offset) });
|
||||||
if (conversationSortBy === 'created_at') {
|
if (conversationSortBy === 'created_at') {
|
||||||
convParams.set('sort_by', 'created_at');
|
convParams.set('sort_by', 'created_at');
|
||||||
@@ -6789,10 +6799,24 @@ async function loadConversationsWithGroups(searchQuery = '', options = {}) {
|
|||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
if (loadSeq !== conversationsListLoadSeq) return;
|
if (loadSeq !== conversationsListLoadSeq) return;
|
||||||
const parsed = parseConversationsListResponse(data);
|
const parsed = parseConversationsListResponse(data);
|
||||||
conversationsPagination.total = await resolveConversationsListTotal(convParams, parsed, pageSize, offset);
|
const resolvedTotal = await resolveConversationsListTotal(convParams, parsed, pageSize, offset);
|
||||||
if (loadSeq !== conversationsListLoadSeq) return;
|
if (loadSeq !== conversationsListLoadSeq) return;
|
||||||
|
conversationsPagination.total = resolvedTotal;
|
||||||
|
|
||||||
if (clampConversationsPageToTotal()) {
|
const totalPages = getConversationsTotalPages();
|
||||||
|
if (activePage > totalPages) {
|
||||||
|
conversationsPagination.page = totalPages;
|
||||||
|
if (loadSeq !== conversationsListLoadSeq) return;
|
||||||
|
loadConversationsWithGroups(searchQuery, {
|
||||||
|
...options,
|
||||||
|
intentPage: null,
|
||||||
|
scrollToTop: options.scrollToTop === true || activePage !== totalPages,
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
conversationsPagination.page = activePage;
|
||||||
|
if (intentPage == null && clampConversationsPageToTotal()) {
|
||||||
|
if (loadSeq !== conversationsListLoadSeq) return;
|
||||||
loadConversationsWithGroups(searchQuery, options);
|
loadConversationsWithGroups(searchQuery, options);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user