bugfixing
This commit is contained in:
parent
703d30b6ab
commit
671dcb3258
@ -330,7 +330,7 @@
|
|||||||
return parseValue(a) - parseValue(b);
|
return parseValue(a) - parseValue(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleChangeValue(value) {
|
async function handleChangeValue(value, { shouldSort = true } = {}) {
|
||||||
// Toggle checkedItems logic
|
// Toggle checkedItems logic
|
||||||
if (checkedItems.has(value)) {
|
if (checkedItems.has(value)) {
|
||||||
checkedItems.delete(value);
|
checkedItems.delete(value);
|
||||||
@ -358,8 +358,11 @@
|
|||||||
const index = valueMappings[ruleName].indexOf(value);
|
const index = valueMappings[ruleName].indexOf(value);
|
||||||
if (index === -1) {
|
if (index === -1) {
|
||||||
valueMappings[ruleName].push(value);
|
valueMappings[ruleName].push(value);
|
||||||
// Sort the array when a new value is added
|
|
||||||
|
// Sort the array when a new value is added, respecting shouldSort parameter
|
||||||
|
if (shouldSort) {
|
||||||
valueMappings[ruleName] = valueMappings[ruleName].sort(customSort);
|
valueMappings[ruleName] = valueMappings[ruleName].sort(customSort);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
valueMappings[ruleName].splice(index, 1);
|
valueMappings[ruleName].splice(index, 1);
|
||||||
}
|
}
|
||||||
@ -371,8 +374,8 @@
|
|||||||
} else if (ruleName in valueMappings) {
|
} else if (ruleName in valueMappings) {
|
||||||
// For rules that require sorting (like range or numeric values)
|
// For rules that require sorting (like range or numeric values)
|
||||||
if (ruleCondition[ruleName] === "between" && Array.isArray(value)) {
|
if (ruleCondition[ruleName] === "between" && Array.isArray(value)) {
|
||||||
// Sort the array for between conditions
|
// Sort the array for between conditions, respecting shouldSort parameter
|
||||||
valueMappings[ruleName] = value.sort(customSort);
|
valueMappings[ruleName] = shouldSort ? value.sort(customSort) : value;
|
||||||
} else {
|
} else {
|
||||||
// Handle non-specific rules as single values
|
// Handle non-specific rules as single values
|
||||||
valueMappings[ruleName] = value;
|
valueMappings[ruleName] = value;
|
||||||
@ -417,7 +420,7 @@
|
|||||||
if (ruleCondition[ruleName] === "between") {
|
if (ruleCondition[ruleName] === "between") {
|
||||||
const currentValues = valueMappings[ruleName] || ["", ""];
|
const currentValues = valueMappings[ruleName] || ["", ""];
|
||||||
currentValues[index] = newValue;
|
currentValues[index] = newValue;
|
||||||
await handleChangeValue(currentValues);
|
await handleChangeValue(currentValues, { shouldSort: false });
|
||||||
} else {
|
} else {
|
||||||
await handleChangeValue(newValue);
|
await handleChangeValue(newValue);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1920,12 +1920,14 @@ const handleKeyDown = (event) => {
|
|||||||
return parseValue(a) - parseValue(b);
|
return parseValue(a) - parseValue(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Main function
|
async function handleChangeValue(value, { shouldSort = true } = {}) {
|
||||||
async function handleChangeValue(value) {
|
|
||||||
if (checkedItems.has(ruleName)) {
|
if (checkedItems.has(ruleName)) {
|
||||||
const itemsSet = checkedItems.get(ruleName);
|
const itemsSet = checkedItems.get(ruleName);
|
||||||
|
|
||||||
const sortedValue = Array.isArray(value) ? value.sort(customSort) : value;
|
// Apply sorting only if shouldSort is true
|
||||||
|
const sortedValue =
|
||||||
|
shouldSort && Array.isArray(value) ? value.sort(customSort) : value;
|
||||||
|
|
||||||
const valueKey = Array.isArray(sortedValue)
|
const valueKey = Array.isArray(sortedValue)
|
||||||
? sortedValue.join("-")
|
? sortedValue.join("-")
|
||||||
: sortedValue;
|
: sortedValue;
|
||||||
@ -1936,10 +1938,14 @@ const handleKeyDown = (event) => {
|
|||||||
itemsSet?.add(valueKey);
|
itemsSet?.add(valueKey);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const sortedValue = Array.isArray(value) ? value.sort(customSort) : value;
|
// Apply sorting only if shouldSort is true
|
||||||
|
const sortedValue =
|
||||||
|
shouldSort && Array.isArray(value) ? value.sort(customSort) : value;
|
||||||
|
|
||||||
const valueKey = Array.isArray(sortedValue)
|
const valueKey = Array.isArray(sortedValue)
|
||||||
? sortedValue.join("-")
|
? sortedValue.join("-")
|
||||||
: sortedValue;
|
: sortedValue;
|
||||||
|
|
||||||
checkedItems?.set(ruleName, new Set([valueKey]));
|
checkedItems?.set(ruleName, new Set([valueKey]));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1963,19 +1969,19 @@ const handleKeyDown = (event) => {
|
|||||||
]?.includes(ruleName)
|
]?.includes(ruleName)
|
||||||
) {
|
) {
|
||||||
searchQuery = "";
|
searchQuery = "";
|
||||||
|
|
||||||
if (!Array.isArray(valueMappings[ruleName])) {
|
if (!Array.isArray(valueMappings[ruleName])) {
|
||||||
valueMappings[ruleName] = [];
|
valueMappings[ruleName] = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
const sortedValue = Array?.isArray(value)
|
// Apply sorting only if shouldSort is true
|
||||||
? value?.sort(customSort)
|
const sortedValue =
|
||||||
: value;
|
shouldSort && Array?.isArray(value) ? value?.sort(customSort) : value;
|
||||||
|
|
||||||
const valueKey = Array?.isArray(sortedValue)
|
const valueKey = Array?.isArray(sortedValue)
|
||||||
? sortedValue.join("-")
|
? sortedValue.join("-")
|
||||||
: sortedValue;
|
: sortedValue;
|
||||||
const index = valueMappings[ruleName].indexOf(valueKey);
|
|
||||||
|
|
||||||
|
const index = valueMappings[ruleName].indexOf(valueKey);
|
||||||
if (index === -1) {
|
if (index === -1) {
|
||||||
valueMappings[ruleName].push(valueKey);
|
valueMappings[ruleName].push(valueKey);
|
||||||
} else {
|
} else {
|
||||||
@ -1989,7 +1995,8 @@ const handleKeyDown = (event) => {
|
|||||||
await updateStockScreenerData();
|
await updateStockScreenerData();
|
||||||
} else if (ruleName in valueMappings) {
|
} else if (ruleName in valueMappings) {
|
||||||
if (ruleCondition[ruleName] === "between" && Array?.isArray(value)) {
|
if (ruleCondition[ruleName] === "between" && Array?.isArray(value)) {
|
||||||
valueMappings[ruleName] = value?.sort(customSort);
|
// Apply sorting only if shouldSort is true
|
||||||
|
valueMappings[ruleName] = shouldSort ? value?.sort(customSort) : value;
|
||||||
} else {
|
} else {
|
||||||
valueMappings[ruleName] = value;
|
valueMappings[ruleName] = value;
|
||||||
}
|
}
|
||||||
@ -2021,7 +2028,7 @@ const handleKeyDown = (event) => {
|
|||||||
if (ruleCondition[ruleName] === "between") {
|
if (ruleCondition[ruleName] === "between") {
|
||||||
const currentValues = valueMappings[ruleName] || ["", ""];
|
const currentValues = valueMappings[ruleName] || ["", ""];
|
||||||
currentValues[index] = newValue;
|
currentValues[index] = newValue;
|
||||||
await handleChangeValue(currentValues);
|
await handleChangeValue(currentValues, { shouldSort: false });
|
||||||
} else {
|
} else {
|
||||||
await handleChangeValue(newValue);
|
await handleChangeValue(newValue);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user