diff --git a/src/components/LoginForm.vue b/src/components/LoginForm.vue
index eccb489..9e4edb3 100644
--- a/src/components/LoginForm.vue
+++ b/src/components/LoginForm.vue
@@ -1,6 +1,6 @@
diff --git a/src/components/auctions/Index.vue b/src/components/auctions/Index.vue
index f757262..c028a8c 100644
--- a/src/components/auctions/Index.vue
+++ b/src/components/auctions/Index.vue
@@ -1,30 +1,35 @@
-
+
+
-
{{ auction.name }}
{{ auction.current_bid }}
diff --git a/src/components/lib/check_user.js b/src/components/lib/check_user.js
index ae9059c..3000067 100644
--- a/src/components/lib/check_user.js
+++ b/src/components/lib/check_user.js
@@ -1,5 +1,3 @@
-import {$token, Anonymous} from "../stores/token.js";
+import {loadToken, Anonymous} from "../scripts/load_token.js";
-$token.subscribe(token => {
- if(token === Anonymous) { location.replace("/login") }
-})
\ No newline at end of file
+if(loadToken() === Anonymous) { location.replace("/login") }
\ No newline at end of file
diff --git a/src/components/scripts/load_token.js b/src/components/scripts/load_token.js
new file mode 100644
index 0000000..2e1bfb6
--- /dev/null
+++ b/src/components/scripts/load_token.js
@@ -0,0 +1,26 @@
+const LOCAL_STORAGE_KEY="token"
+
+export const Anonymous = Symbol("anonymous")
+class Token {
+ constructor({token, expiresAt}) {
+ this.token = token
+ this.expiresAt = new Date(expiresAt)
+ }
+}
+
+export function loadToken() {
+ let data = localStorage[LOCAL_STORAGE_KEY]
+ if (data == null) { return Anonymous }
+ data = JSON.parse(data)
+ if (data == null || data.token == null) { return Anonymous }
+
+ let token = new Token(data)
+ if(token.expiresAt < new Date()) { return Anonymous }
+
+ return token
+}
+
+export function saveToken(value) {
+ if(value == null || !value.token) return;
+ localStorage[LOCAL_STORAGE_KEY] = JSON.stringify(value)
+}
\ No newline at end of file
diff --git a/src/components/scripts/user_store.js b/src/components/scripts/user_store.js
deleted file mode 100644
index 394879d..0000000
--- a/src/components/scripts/user_store.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import {$token, setAnon, setToken} from "../stores/token.js";
-
-const LOCAL_STORAGE_KEY="token"
-
-$token.subscribe(value => {
- if(value == null || !value.token) return;
- localStorage[LOCAL_STORAGE_KEY] = JSON.stringify(value)
-})
-
-window.addEventListener('load', () => {
- let data = localStorage[LOCAL_STORAGE_KEY]
- if (data == null) { return setAnon() }
- data = JSON.parse(data)
- if (data == null || data.token == null) { return setAnon() }
-
- setToken(data)
-})
\ No newline at end of file
diff --git a/src/components/stores/token.js b/src/components/stores/token.js
deleted file mode 100644
index 640c9d4..0000000
--- a/src/components/stores/token.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import { atom } from 'nanostores'
-
-export const Loading = Symbol("loading")
-export const Anonymous = Symbol("anonymous")
-class Token {
- constructor({token, expiresAt}) {
- this.token = token
- this.expiresAt = new Date(expiresAt)
- }
-}
-
-export const $token = atom(Loading)
-
-export function setAnon() {
- $token.set(Anonymous)
-}
-
-export function setToken(data) {
- let token = new Token(data)
- if(token.expiresAt >= new Date()) {
- $token.set(token)
- } else { setAnon() }
-}
\ No newline at end of file
diff --git a/src/components/top_nav/UserAction.vue b/src/components/top_nav/UserAction.vue
index 2bfd8b9..fed2306 100644
--- a/src/components/top_nav/UserAction.vue
+++ b/src/components/top_nav/UserAction.vue
@@ -1,8 +1,13 @@
diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro
index ad0ab90..0e61fbf 100644
--- a/src/layouts/Layout.astro
+++ b/src/layouts/Layout.astro
@@ -13,7 +13,7 @@ const {title} = Astro.props
Neon Vertigo
-
+
@@ -25,9 +25,8 @@ const {title} = Astro.props
{import.meta.env.DEV &&
}