ian_
05/16/2022, 3:00 AMNeedle
05/16/2022, 3:00 AMian_
05/16/2022, 3:08 AMian_
05/16/2022, 3:09 AMjs
import type { ApiError, Session, User } from '@supabase/supabase-js'
import { toast } from '@zerodevx/svelte-toast'
import { supabase } from './supabase'
let authResult: {
session?: Session
user?: User
error?: ApiError
}
window.supabase = supabase
console.log(supabase.auth.user() ? 'logged in' : 'not logged in')
await new Promise<void>((resolve, reject) => {
console.log('waiting for load')
if (document.readyState === 'complete') resolve()
window.addEventListener('load', () => resolve())
})
console.log('loaded', document.readyState)
if (supabase.auth.user() === null && !window.location.pathname.includes('#')) {
console.log('logging in...')
authResult = await supabase.auth.signIn({
provider: 'discord'
},
{
redirectTo: window.location.href
}
)
if (authResult.error) toast.push(`Login failed, try reloading: ${authResult.error.message}`)
} else {
console.log('already logged in')
authResult = { user: supabase.auth.user(), session: supabase.auth.session() }
}
const { user, session } = authResult
const identity = user ? user.identities[0] : null
console.log(authResult)
export { supabase, user, session, identity }