3 Commits

4 changed files with 28 additions and 14 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "discipleofland", "name": "discipleofland",
"version": "0.0.8", "version": "0.0.9",
"private": true, "private": true,
"type": "module", "type": "module",
"scripts": { "scripts": {
+1 -2
View File
@@ -135,8 +135,7 @@ export default defineComponent({
watch: { watch: {
filters: { filters: {
handler(newFilters) { handler(newFilters) {
const filters = new Filters(newFilters); window.localStorage.setItem("filters", newFilters.serialize());
window.localStorage.setItem("filters", filters.serialize());
}, },
deep: true, deep: true,
}, },
+1 -1
View File
@@ -72,7 +72,7 @@ export default defineComponent(
let filters: Filters | null = null; let filters: Filters | null = null;
let filtersString = window.localStorage.getItem("filters"); let filtersString = window.localStorage.getItem("filters");
if (filtersString === null) { if (filtersString === null) {
window.localStorage.setItem("filters", JSON.stringify(new Filters())); window.localStorage.setItem("filters", new Filters().serialize());
filtersString = window.localStorage.getItem("filters"); filtersString = window.localStorage.getItem("filters");
} }
if (filtersString === null) { if (filtersString === null) {
+20 -5
View File
@@ -18,7 +18,13 @@ export default class Filters {
) { ) {
this.minLevel = data?.minLevel || 91; this.minLevel = data?.minLevel || 91;
this.maxLevel = data?.maxLevel || 100; 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) { for (const job of jobData) {
const parsedJob = jobFromString(job); const parsedJob = jobFromString(job);
@@ -26,24 +32,33 @@ export default class Filters {
this.jobs.add(parsedJob); this.jobs.add(parsedJob);
} }
const nodeTypeData = data?.nodeTypes || [ let nodeTypeData = [
NodeType.UNSPOILED, 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) { for (const nodeType of nodeTypeData) {
const parsedNodeType = nodeTypeFromString(nodeType); const parsedNodeType = nodeTypeFromString(nodeType);
if (!parsedNodeType) continue; if (!parsedNodeType) continue;
this.nodeTypes.add(parsedNodeType); this.nodeTypes.add(parsedNodeType);
} }
}
} }
serialize(): string { serialize(): string {
const serializedJobs = Array.from(this.jobs);
const serializedNodeTypes = Array.from(this.nodeTypes);
return JSON.stringify({ return JSON.stringify({
minLevel: this.minLevel, minLevel: this.minLevel,
maxLevel: this.maxLevel, maxLevel: this.maxLevel,
jobs: Array.from(this.jobs).map(job => job), jobs: serializedJobs,
nodeTypes: Array.from(this.nodeTypes).map(nodeType => nodeType), nodeTypes: serializedNodeTypes,
}); });
} }