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.
 
 
 
 
 
 

28 lines
898 B

import { isLoggedIn } from "./ksp-task-grabber"
import { grabTaskSummary } from './ksp-submit-api'
import type { TaskStatus } from "./ksp-submit-api"
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() {
if (!isLoggedIn()) return;
return grabTaskSummary().then(t => {
const tt = Array.from(t.entries())
writeFn(new Map(Array.from(lastVal.entries()).concat(tt)))
localStorage.setItem("taskStatuses-cache", JSON.stringify(tt))
})
}
refresh()