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" import { auth } from "stores/backend"
let modal let modal
console.log($auth.user)
</script> </script>
{#if $auth.user} {#if $auth}
<div class="root"> {#if $auth.user}
<div class="ui-nav"> <div class="root">
<div class="home-logo"> <div class="ui-nav">
<img src={Logo} alt="Budibase icon" /> <div class="home-logo">
</div> <img src={Logo} alt="Budibase icon" />
<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>
<div class="nav-bottom"> <div class="nav-section">
<BuilderSettingsButton /> <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> </div>
<div class="main">
<slot />
</div>
</div> </div>
<div class="main"> {:else}
<slot /> <section class="login">
</div> <LoginForm />
</div> </section>
{:else} {/if}
<section class="login">
<LoginForm />
</section>
{/if} {/if}
<style> <style>

View File

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