prevent login page flash on initial render

This commit is contained in:
Martin McKeaveney 2021-04-13 13:41:12 +01:00
parent d72a6dc8df
commit 252c50029f
2 changed files with 40 additions and 43 deletions

View File

@ -13,49 +13,49 @@
import { auth } from "stores/backend"
let modal
console.log($auth.user)
</script>
{#if $auth.user}
<div class="root">
<div class="ui-nav">
<div class="home-logo">
<img src={Logo} alt="Budibase icon" />
</div>
<div class="nav-section">
<div class="nav-top">
<Link icon={AppsIcon} title="Apps" href="/" active />
<Link
icon={HostingIcon}
title="Hosting"
href="https://portal.budi.live/" />
<Link
icon={DocumentationIcon}
title="Documentation"
href="https://docs.budibase.com/" />
<Link
icon={CommunityIcon}
title="Community"
href="https://github.com/Budibase/budibase/discussions" />
<Link
icon={BugIcon}
title="Raise an issue"
href="https://github.com/Budibase/budibase/issues/new/choose" />
{#if $auth}
{#if $auth.user}
<div class="root">
<div class="ui-nav">
<div class="home-logo">
<img src={Logo} alt="Budibase icon" />
</div>
<div class="nav-bottom">
<BuilderSettingsButton />
<div class="nav-section">
<div class="nav-top">
<Link icon={AppsIcon} title="Apps" href="/" active />
<Link
icon={HostingIcon}
title="Hosting"
href="https://portal.budi.live/" />
<Link
icon={DocumentationIcon}
title="Documentation"
href="https://docs.budibase.com/" />
<Link
icon={CommunityIcon}
title="Community"
href="https://github.com/Budibase/budibase/discussions" />
<Link
icon={BugIcon}
title="Raise an issue"
href="https://github.com/Budibase/budibase/issues/new/choose" />
</div>
<div class="nav-bottom">
<BuilderSettingsButton />
</div>
</div>
</div>
<div class="main">
<slot />
</div>
</div>
<div class="main">
<slot />
</div>
</div>
{:else}
<section class="login">
<LoginForm />
</section>
{:else}
<section class="login">
<LoginForm />
</section>
{/if}
{/if}
<style>

View File

@ -10,7 +10,7 @@ async function checkAuth() {
}
export function createAuthStore() {
const { subscribe, set } = writable({})
const { subscribe, set } = writable(null)
checkAuth()
.then(user => set({ user }))
@ -21,16 +21,13 @@ export function createAuthStore() {
login: async creds => {
const response = await api.post(`/api/admin/auth`, creds)
const json = await response.json()
if (json.user) {
localStorage.setItem("auth:user", JSON.stringify(json.user))
set({ user: json.user })
}
set({ user: json })
return json
},
logout: async () => {
const response = await api.post(`/api/auth/logout`)
const json = await response.json()
set({ user: false })
set({ user: null })
},
createUser: async user => {
const response = await api.post(`/api/admin/users`, user)