Files
windmill/frontend/src/lib/storeUtils.ts

51 lines
1.2 KiB
TypeScript

import { resourceTypesStore } from './components/resourceTypesStore'
import { refreshSuperadmin } from './refreshUser'
import {
workspaceStore,
userStore,
usersWorkspaceStore,
superadmin,
devopsRole,
clearWorkspaceFromStorage
} from './stores'
import { resetProtectionRules, loadProtectionRules } from './workspaceProtectionRules.svelte'
export function switchWorkspace(workspace: string | undefined) {
try {
localStorage.removeItem('flow')
localStorage.removeItem('app')
} catch (e) {
console.error('error interacting with local storage', e)
}
resourceTypesStore.set(undefined)
// Clear protection rules state
resetProtectionRules()
workspaceStore.set(workspace)
// Eagerly load protection rules for new workspace
if (workspace) {
loadProtectionRules(workspace)
}
}
export function clearStores(): void {
try {
localStorage.removeItem('flow')
localStorage.removeItem('app')
clearWorkspaceFromStorage()
} catch (e) {
console.error('error interacting with local storage', e)
}
resourceTypesStore.set(undefined)
resetProtectionRules()
userStore.set(undefined)
workspaceStore.set(undefined)
usersWorkspaceStore.set(undefined)
refreshSuperadmin.cancel()
superadmin.set(undefined)
devopsRole.set(undefined)
}