diff --git a/src/App.svelte b/src/App.svelte
index f534055..e236184 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -2,25 +2,17 @@
import { emit, listen } from '@tauri-apps/api/event';
import { invoke } from '@tauri-apps/api/tauri';
+import { appState } from './lib/state.js';
import { currentView } from './lib/routing.js';
-import queue from './lib/queue.js';
-const VIEWS = import.meta.glob('./views/*.svelte', {eager: true});
-var appState = {
- currentRequest: null,
- pendingRequests: queue(),
- credentialStatus: 'locked',
-}
-
listen('credentials-request', (tauriEvent) => {
- appState.pendingRequests.put(tauriEvent.payload);
+ $appState.pendingRequests.put(tauriEvent.payload);
});
diff --git a/src/lib/routing.js b/src/lib/routing.js
index 284e8ca..5526bbd 100644
--- a/src/lib/routing.js
+++ b/src/lib/routing.js
@@ -1,8 +1,13 @@
-import { writable } from 'svelte/store';
+import { writable, derived } from 'svelte/store';
+
+const VIEWS = import.meta.glob('../views/*.svelte', {eager: true});
-export const currentView = writable('Home');
+export let currentView = writable();
export function navigate(viewName) {
- currentView.set(viewName);
+ let view = VIEWS[`../views/${viewName}.svelte`].default;
+ currentView.set(view);
}
+
+navigate('Home');
diff --git a/src/lib/state.js b/src/lib/state.js
new file mode 100644
index 0000000..c88725b
--- /dev/null
+++ b/src/lib/state.js
@@ -0,0 +1,9 @@
+import { writable } from 'svelte/store';
+
+import queue from './queue.js';
+
+export let appState = writable({
+ currentRequest: null,
+ pendingRequests: queue(),
+ credentialStatus: 'locked',
+});
diff --git a/src/ui/Link.svelte b/src/ui/Link.svelte
index 75d7c21..2e3deef 100644
--- a/src/ui/Link.svelte
+++ b/src/ui/Link.svelte
@@ -1,9 +1,9 @@
diff --git a/src/views/ShowApproved.svelte b/src/views/ShowApproved.svelte
index 0ce9f9e..54a722a 100644
--- a/src/views/ShowApproved.svelte
+++ b/src/views/ShowApproved.svelte
@@ -1,28 +1,28 @@