vikunja-frontend/src/helpers/saveCollapsedBucketState.ts
Dominik Pschenitschni d85abbd77a feat: ListKanban script setup (#2643)
Co-authored-by: Dominik Pschenitschni <mail@celement.de>
Reviewed-on: vikunja/frontend#2643
Co-authored-by: Dominik Pschenitschni <dpschen@noreply.kolaente.de>
Co-committed-by: Dominik Pschenitschni <dpschen@noreply.kolaente.de>
2022-11-07 17:23:11 +00:00

35 lines
818 B
TypeScript

import type {IBucket} from '@/modelTypes/IBucket'
import type {IList} from '@/modelTypes/IList'
const key = 'collapsedBuckets'
export type CollapsedBuckets = {[id: IBucket['id']]: boolean}
function getAllState() {
const saved = localStorage.getItem(key)
return saved === null
? {}
: JSON.parse(saved)
}
export const saveCollapsedBucketState = (
listId: IList['id'],
collapsedBuckets: CollapsedBuckets,
) => {
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']) {
const state = getAllState()
return typeof state[listId] !== 'undefined'
? state[listId]
: {}
}