From 28861660ef5986223f31d8cf54da4c18406a7c2c Mon Sep 17 00:00:00 2001 From: Khreed <135299775+KhreedAI@users.noreply.github.com> Date: Wed, 9 Oct 2024 19:17:42 -0400 Subject: [PATCH] Fix Priority Sort Corrected and expanded priority sort logic to sort by: First constant, then normal, then disabled, then by comment. --- public/scripts/world-info.js | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/public/scripts/world-info.js b/public/scripts/world-info.js index 6aad5d92e..a36d405c2 100644 --- a/public/scripts/world-info.js +++ b/public/scripts/world-info.js @@ -1678,11 +1678,34 @@ export function sortWorldInfoEntries(data, { customSort = null } = {}) { return aValue - bValue; }; } else if (sortRule === 'priority') { - // First constant, then normal, then disabled. + // First constant, then normal, then disabled, then by comment. primarySort = (a, b) => { - const aValue = a.constant ? 0 : a.disable ? 2 : 1; - const bValue = b.constant ? 0 : b.disable ? 2 : 1; - return aValue - bValue; + // Determine priority based on disable and constant flags + const aPriority = a.disable ? 2 : a.constant ? 0 : 1; + const bPriority = b.disable ? 2 : b.constant ? 0 : 1; + + // Compare priorities first + if (aPriority !== bPriority) { + return aPriority - bPriority; + } + + // Normalize comments for comparison, handling null/undefined + const commentA = a.comment ? a.comment.toLowerCase() : ''; + const commentB = b.comment ? b.comment.toLowerCase() : ''; + + // Assign constant values for further comparison + const constantA = a.constant ? 0 : 1; + const constantB = b.constant ? 0 : 1; + + // If priorities are equal, compare constants + if (aPriority === bPriority) { + if (constantA !== constantB) { + return constantA - constantB; + } + } + + // Finally, compare comments alphabetically + return commentA.localeCompare(commentB); }; } else { primarySort = (a, b) => {