2020-11-19 18:55:40 +01:00
|
|
|
import * as API from "../api"
|
2021-06-29 18:41:02 +02:00
|
|
|
import { writable } from "svelte/store"
|
2020-11-11 13:25:50 +01:00
|
|
|
|
2020-11-18 20:18:18 +01:00
|
|
|
const createAuthStore = () => {
|
2021-01-28 15:29:35 +01:00
|
|
|
const store = writable(null)
|
2020-11-11 13:25:50 +01:00
|
|
|
|
2021-01-28 15:29:35 +01:00
|
|
|
// Fetches the user object if someone is logged in and has reloaded the page
|
|
|
|
const fetchUser = async () => {
|
2021-06-29 18:41:02 +02:00
|
|
|
const user = await API.fetchSelf()
|
|
|
|
store.set(user)
|
2021-01-28 15:29:35 +01:00
|
|
|
}
|
|
|
|
|
2020-11-17 13:08:24 +01:00
|
|
|
return {
|
|
|
|
subscribe: store.subscribe,
|
2021-06-21 10:56:46 +02:00
|
|
|
actions: { fetchUser },
|
2020-11-11 13:25:50 +01:00
|
|
|
}
|
2020-11-17 13:08:24 +01:00
|
|
|
}
|
2020-11-11 13:25:50 +01:00
|
|
|
|
2020-11-18 20:18:18 +01:00
|
|
|
export const authStore = createAuthStore()
|