diff --git a/src/components/auth/Register.svelte b/src/components/auth/Register.svelte
index 3453f2d..af807b0 100644
--- a/src/components/auth/Register.svelte
+++ b/src/components/auth/Register.svelte
@@ -1,10 +1,14 @@
diff --git a/src/lib/common/webnative.ts b/src/lib/common/webnative.ts
index 87e7339..6ba6f6c 100644
--- a/src/lib/common/webnative.ts
+++ b/src/lib/common/webnative.ts
@@ -1,8 +1,9 @@
import * as webnative from 'webnative'
-
// import type FileSystem from 'webnative/fs/index'
import { setup } from 'webnative'
+
import { asyncDebounce } from '$lib/common/utils'
+import { sessionStore } from '../../stores'
// runfission.net = staging
setup.endpoints({ api: 'https://runfission.net', user: 'fissionuser.net' })
@@ -14,16 +15,23 @@ setup.debug({ enabled: true })
export const initialize = async (): Promise
=> {
try {
- const st = await webnative.app({ useWnfs: true })
- state = st
+ state = await webnative.app({ useWnfs: true })
switch (state.scenario) {
case webnative.AppScenario.NotAuthed:
- console.log('Not logged in')
+ sessionStore.set({
+ username: '',
+ authed: false,
+ loading: false
+ })
break
case webnative.AppScenario.Authed:
- console.log('Logged in')
+ sessionStore.set({
+ username: state.username,
+ authed: state.authenticated,
+ loading: false
+ })
break
default:
@@ -32,11 +40,19 @@ export const initialize = async (): Promise => {
} catch (error) {
switch (error) {
case webnative.InitialisationError.InsecureContext:
- console.log('Insecure context')
+ sessionStore.update(session => ({
+ ...session,
+ loading: false,
+ error: 'Insecure Context'
+ }))
break
case webnative.InitialisationError.UnsupportedBrowser:
- console.log('Unsupported browser')
+ sessionStore.update(session => ({
+ ...session,
+ loading: false,
+ error: 'Unsupported Browser'
+ }))
break
}
}
@@ -58,7 +74,6 @@ export const isUsernameAvailable = async (
}
export const register = async (username: string): Promise => {
- await initialize()
const { success } = await webnative.account.register({ username })
return success
diff --git a/src/lib/session.ts b/src/lib/session.ts
new file mode 100644
index 0000000..fccfd38
--- /dev/null
+++ b/src/lib/session.ts
@@ -0,0 +1,6 @@
+export type Session = {
+ username: string
+ authed: boolean
+ loading: boolean
+ error?: 'Insecure Context' | 'Unsupported Browser'
+}
\ No newline at end of file
diff --git a/src/routes/__layout.svelte b/src/routes/__layout.svelte
index 02d83e8..7bba9ba 100644
--- a/src/routes/__layout.svelte
+++ b/src/routes/__layout.svelte
@@ -1,12 +1,25 @@
diff --git a/src/routes/index.svelte b/src/routes/index.svelte
index 4864330..c89866f 100644
--- a/src/routes/index.svelte
+++ b/src/routes/index.svelte
@@ -1,11 +1,4 @@
Application Interface
diff --git a/src/stores.ts b/src/stores.ts
index 8e8333d..60af46c 100644
--- a/src/stores.ts
+++ b/src/stores.ts
@@ -1,6 +1,13 @@
import { writable } from 'svelte/store'
-import type { Writable } from 'svelte/store'
import { loadTheme } from '$lib/theme'
+import type { Session } from '$lib/session'
import type { Theme } from '$lib/theme'
+import type { Writable } from 'svelte/store'
export const theme: Writable = writable(loadTheme())
+
+export const sessionStore: Writable = writable({
+ username: '',
+ authed: false,
+ loading: true
+})
\ No newline at end of file