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 @@