You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
|
|
|
import { grabTaskStates, isLoggedIn} from "./ksp-task-grabber"
|
|
|
|
import type { TaskStatus } from "./ksp-task-grabber"
|
|
|
|
import { readable } from 'svelte/store';
|
|
|
|
|
|
|
|
let writeFn: (value: Map<string, TaskStatus>) => void = null!;
|
|
|
|
let lastVal = new Map<string, TaskStatus>()
|
|
|
|
if (isLoggedIn()) {
|
|
|
|
const cachedTaskStatuses = localStorage.getItem("taskStatuses-cache")
|
|
|
|
if (cachedTaskStatuses) {
|
|
|
|
lastVal = new Map(JSON.parse(cachedTaskStatuses))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
export const taskStatuses = readable(lastVal, write => {
|
|
|
|
writeFn = v => { lastVal = v; write(v); }
|
|
|
|
})
|
|
|
|
|
|
|
|
export function refresh(ids: string[]) {
|
|
|
|
if (!isLoggedIn()) return;
|
|
|
|
|
|
|
|
return grabTaskStates(ids).then(t => {
|
|
|
|
const tt = Array.from(t.entries())
|
|
|
|
writeFn(new Map(Array.from(lastVal.entries()).concat(tt)))
|
|
|
|
localStorage.setItem("taskStatuses-cache", JSON.stringify(tt))
|
|
|
|
})
|
|
|
|
}
|