fix default filters not parsing correctly

This commit is contained in:
2025-03-22 23:37:59 +01:00
parent 521da22993
commit 3ff7d43086
2 changed files with 26 additions and 12 deletions
+1 -2
View File
@@ -135,8 +135,7 @@ export default defineComponent({
watch: {
filters: {
handler(newFilters) {
const filters = new Filters(newFilters);
window.localStorage.setItem("filters", filters.serialize());
window.localStorage.setItem("filters", newFilters.serialize());
},
deep: true,
},
+20 -5
View File
@@ -18,7 +18,13 @@ export default class Filters {
) {
this.minLevel = data?.minLevel || 91;
this.maxLevel = data?.maxLevel || 100;
const jobData = data?.jobs || [Job.BOTANIST, Job.MINER];
let jobData = [
Job.BOTANIST.toLowerCase(),
Job.MINER.toLowerCase()
];
if (data?.jobs && Array.isArray(data?.jobs) && data?.jobs?.length > 0) {
jobData = data.jobs;
}
for (const job of jobData) {
const parsedJob = jobFromString(job);
@@ -26,24 +32,33 @@ export default class Filters {
this.jobs.add(parsedJob);
}
const nodeTypeData = data?.nodeTypes || [
NodeType.UNSPOILED,
let nodeTypeData = [
NodeType.UNSPOILED.toLowerCase(),
];
if (data?.nodeTypes && Array.isArray(data?.nodeTypes) && data?.nodeTypes?.length > 0) {
nodeTypeData = data.nodeTypes;
}
if (Array.isArray(nodeTypeData)) {
for (const nodeType of nodeTypeData) {
const parsedNodeType = nodeTypeFromString(nodeType);
if (!parsedNodeType) continue;
this.nodeTypes.add(parsedNodeType);
}
}
}
serialize(): string {
const serializedJobs = Array.from(this.jobs);
const serializedNodeTypes = Array.from(this.nodeTypes);
return JSON.stringify({
minLevel: this.minLevel,
maxLevel: this.maxLevel,
jobs: Array.from(this.jobs).map(job => job),
nodeTypes: Array.from(this.nodeTypes).map(nodeType => nodeType),
jobs: serializedJobs,
nodeTypes: serializedNodeTypes,
});
}