2022-11-07 17:23:11 +00:00
|
|
|
import type {IBucket} from '@/modelTypes/IBucket'
|
2022-11-13 21:04:57 +00:00
|
|
|
import type {IProject} from '@/modelTypes/IProject'
|
2022-02-13 19:09:12 +00:00
|
|
|
|
2021-07-07 19:58:29 +00:00
|
|
|
const key = 'collapsedBuckets'
|
|
|
|
|
2022-11-07 17:23:11 +00:00
|
|
|
export type CollapsedBuckets = {[id: IBucket['id']]: boolean}
|
2021-07-07 19:58:29 +00:00
|
|
|
|
2022-11-07 17:23:11 +00:00
|
|
|
function getAllState() {
|
|
|
|
const saved = localStorage.getItem(key)
|
|
|
|
return saved === null
|
|
|
|
? {}
|
|
|
|
: JSON.parse(saved)
|
2021-07-07 19:58:29 +00:00
|
|
|
}
|
|
|
|
|
2022-07-20 22:42:36 +00:00
|
|
|
export const saveCollapsedBucketState = (
|
2022-11-13 21:04:57 +00:00
|
|
|
projectId: IProject['id'],
|
2022-11-07 17:23:11 +00:00
|
|
|
collapsedBuckets: CollapsedBuckets,
|
2022-07-20 22:42:36 +00:00
|
|
|
) => {
|
2021-07-07 19:58:29 +00:00
|
|
|
const state = getAllState()
|
2022-11-13 21:04:57 +00:00
|
|
|
state[projectId] = collapsedBuckets
|
|
|
|
for (const bucketId in state[projectId]) {
|
|
|
|
if (!state[projectId][bucketId]) {
|
|
|
|
delete state[projectId][bucketId]
|
2021-07-07 19:58:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
localStorage.setItem(key, JSON.stringify(state))
|
|
|
|
}
|
|
|
|
|
2022-11-13 21:04:57 +00:00
|
|
|
export function getCollapsedBucketState(projectId : IProject['id']) {
|
2021-07-07 19:58:29 +00:00
|
|
|
const state = getAllState()
|
2022-11-13 21:04:57 +00:00
|
|
|
return typeof state[projectId] !== 'undefined'
|
|
|
|
? state[projectId]
|
2022-11-07 17:23:11 +00:00
|
|
|
: {}
|
2021-07-07 19:58:29 +00:00
|
|
|
}
|