frontend/src/helpers/saveCollapsedBucketState.ts

35 lines
818 B
TypeScript
Raw Permalink Normal View History

import type {IBucket} from '@/modelTypes/IBucket'
2022-09-06 09:36:01 +00:00
import type {IList} from '@/modelTypes/IList'
2021-07-07 19:58:29 +00:00
const key = 'collapsedBuckets'
export type CollapsedBuckets = {[id: IBucket['id']]: boolean}
2021-07-07 19:58:29 +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 = (
listId: IList['id'],
collapsedBuckets: CollapsedBuckets,
2022-07-20 22:42:36 +00:00
) => {
2021-07-07 19:58:29 +00:00
const state = getAllState()
state[listId] = collapsedBuckets
for (const bucketId in state[listId]) {
if (!state[listId][bucketId]) {
delete state[listId][bucketId]
}
}
localStorage.setItem(key, JSON.stringify(state))
}
export function getCollapsedBucketState(listId : IList['id']) {
2021-07-07 19:58:29 +00:00
const state = getAllState()
return typeof state[listId] !== 'undefined'
? state[listId]
: {}
2021-07-07 19:58:29 +00:00
}