fixed a few bugs, fleshed out a few cornerstones

This commit is contained in:
authentik Default Admin 2026-03-04 11:26:57 -08:00
parent b54c89c9c4
commit 4e612cb224
4 changed files with 22 additions and 5 deletions

View file

@ -40,7 +40,7 @@ class NavBar extends LitElement {
#link(route, label) {
return html`
<a
href="/${route}"
?active=${this.#route.value === route}
@click=${(e) => this.#navigate(route, e)}

View file

@ -4,8 +4,18 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="importmap" src="importmap.json"></script>
<script src="https://ga.jspm.io/npm:es-module-shims@1.10.0/dist/es-module-shims.js"></script>
<script type="importmap">
{
"imports": {
"lit": "https://esm.sh/lit@3",
"lit/decorators.js": "https://esm.sh/lit@3/decorators.js",
"zustand/vanilla": "https://esm.sh/zustand@5/vanilla",
"zustand/middleware": "https://esm.sh/zustand@5/middleware",
"idb-keyval": "https://esm.sh/idb-keyval@6"
}
}
</script>
<script async src="https://ga.jspm.io/npm:es-module-shims@1.10.0/dist/es-module-shims.js"></script>
</head>
<body>
<script type="module" src="components/app-root.js"></script>

View file

@ -5,14 +5,21 @@ import { idbStorage } from './middleware/persistence.js'
export const store = createStore(
persist(
(set, get) => ({
_hydrated: false,
user: null,
items: [],
route: 'home',
setUser: (user) => set({ user }),
addItem: (item) => set(s => ({ items: [...s.items, item] })),
removeItem: (id) => set(s => ({ items: s.items.filter(i => i.id !== id) })),
navigate: (route) => set({ route }),
}),
{
name: 'app-store',
storage: idbStorage, // custom adapter (see below)
storage: idbStorage,
onRehydrateStorage: () => (state) => {
if (state) state._hydrated = true
},
}
)
)