bugfixing

This commit is contained in:
MuslemRahimi 2024-10-01 22:02:18 +02:00
parent 7311ae7dac
commit 7ef9794f8d

View File

@ -284,8 +284,8 @@ async function handleDeleteStrategy() {
filteredData = [];
displayResults = [];
}
checkedItems = new Set(ruleOfList.flatMap(rule => rule.value));
await updateStockScreenerData();
checkedItems = new Map(ruleOfList?.map(rule => [rule.name, new Set(rule.value)]));
}
else if ( output === 'failure')
{
@ -372,8 +372,9 @@ async function switchStrategy(item) {
filteredData = [];
displayResults = [];
}
checkedItems = new Set(ruleOfList.flatMap(rule => rule.value));
await updateStockScreenerData();
checkedItems = new Map(ruleOfList.map(rule => [rule.name, new Set(rule.value)]));
}
function changeRule(state: string)
@ -481,6 +482,11 @@ async function handleResetAll() {
ruleName = '';
filteredData = [];
displayResults = [];
checkedItems = new Map(ruleOfList.map(rule => [rule.name, new Set(rule.value)]));
Object.keys(allRules).forEach(ruleName => {
ruleCondition[ruleName] = allRules[ruleName].defaultCondition;
valueMappings[ruleName] = allRules[ruleName].defaultValue;
});
await handleSave(false);
}
@ -504,7 +510,7 @@ async function handleDeleteRule(state) {
{
ruleName = '';
}
//checkedItems = new Map(ruleOfList?.map(rule => [rule.name, new Set(rule.value)]));
await handleSave(false);
}
@ -685,18 +691,30 @@ function changeRuleCondition(name: string, state: string) {
ruleCondition[ruleName] = state;
}
let checkedItems = new Set(ruleOfList.flatMap(rule => rule.value));
let checkedItems = new Map(
ruleOfList.map(rule => [rule.name, new Set(rule.value)])
);
function isChecked(item, ruleName) {
return checkedItems.has(ruleName) && checkedItems.get(ruleName).has(item);
}
function isChecked(item) {
return checkedItems.has(item);
}
async function handleChangeValue(value) {
if (checkedItems.has(value)) {
checkedItems.delete(value);
if (checkedItems.has(ruleName)) {
const itemsSet = checkedItems.get(ruleName);
if (itemsSet.has(value)) {
itemsSet.delete(value); // Remove the value if it's already in the set
} else {
checkedItems.add(value);
itemsSet.add(value); // Add the value if it's not in the set
}
} else {
// If the ruleName is not in checkedItems, create a new set for this rule
checkedItems.set(ruleName, new Set([value]));
}
console.log(checkedItems)
if (['sma20','sma50','sma100','sma200','ema20', 'ema50', 'ema100', 'ema200','analystRating','score','sector','industry','country']?.includes(ruleName)) {
// Ensure valueMappings[ruleName] is initialized as an array
searchQuery = '';
@ -1152,7 +1170,7 @@ function handleInput(event) {
<DropdownMenu.Item class="sm:hover:bg-[#27272A]">
<div class="flex items-center" on:click|capture={(event) => event.preventDefault()}>
<label on:click={() => {handleChangeValue(item)}} class="cursor-pointer text-white" for={item}>
<input type="checkbox" class="rounded" checked={isChecked(item)}>
<input type="checkbox" class="rounded" checked={isChecked(item, row?.rule)}>
<span class="ml-2">{item}</span>
</label>
</div>
@ -1163,7 +1181,7 @@ function handleInput(event) {
<DropdownMenu.Item class="sm:hover:bg-[#27272A]">
<div class="flex items-center" on:click|capture={(event) => event.preventDefault()}>
<label on:click={() => {handleChangeValue(item)}} class="cursor-pointer text-white" for={item}>
<input type="checkbox" class="rounded" checked={isChecked(item)}>
<input type="checkbox" class="rounded" checked={isChecked(item, row?.rule)}>
<span class="ml-2">{item}</span>
</label>
</div>