@@ -3,70 +3,34 @@ import { NextPage } from 'next'
33import { FaLock } from 'react-icons/fa'
44import { NextAppPageProps } from '~/types/app'
55import Layout from '~/components/Layout'
6- import { useMessage } from '~/lib/message'
7- import { useFormFields } from '~/lib/utils'
8- import { supabase } from '~/lib/supabase'
96import Spinner from '~/components/Spinner'
10-
7+ import { useFormFields } from '~/lib/utils'
8+ import { useAuth } from '~/lib/auth'
119
1210
1311type SignUpFieldProps = {
1412 email : string ,
1513 password : string
1614}
1715
18- type SupabaseAuthPayload = SignUpFieldProps
19-
2016const FORM_VALUES : SignUpFieldProps = {
2117 email : '' ,
2218 password : ''
2319}
2420
2521const IndexPage : NextPage < NextAppPageProps > = ( { } ) => {
26- const [ loading , setLoading ] = useState ( false )
27- const [ isSignIn , setIsSignIn ] = useState ( true )
28- const { handleMessage } = useMessage ( )
22+ const [ isSignIn , setIsSignIn ] = useState ( true )
23+ const { loading, signIn, signUp } = useAuth ( )
2924 // Now since we have our form ready, what we're gonna need for signing up our users
3025 // 1. let users provide email and password
31- const [ values , handleChange ] = useFormFields < SignUpFieldProps > ( FORM_VALUES )
26+ const [ values , handleChange ] = useFormFields < SignUpFieldProps > ( FORM_VALUES )
3227 // 2. send the provided details to Supabase
33- const signUp = async ( payload : SupabaseAuthPayload ) => {
34- try {
35- setLoading ( true )
36- const { error } = await supabase . auth . signUp ( payload )
37- if ( error ) {
38- handleMessage ( { message : error . message , type : 'error' } )
39- }
40- else {
41- handleMessage ( { message : 'Signup successful. Please check your inbox for a confirmation email!' , type : 'success' } )
42- }
43- } catch ( error ) {
44- handleMessage ( { message : error . error_description || error , type : 'error' } )
45- } finally {
46- setLoading ( false )
47- }
48- }
49-
50- const signIn = async ( payload : SupabaseAuthPayload ) => {
51- try {
52- const { error } = await supabase . auth . signIn ( payload )
53- if ( error ) {
54- handleMessage ( { message : error . message , type : 'error' } )
55- } else {
56- handleMessage ( { message : 'Log in successful. I\'ll redirect you once I\'m done' , type : 'success' } )
57- }
58- } catch ( error ) {
59- handleMessage ( { message : error . error_description || error , type : 'error' } )
60- }
61- }
62-
6328
6429 const handleSumbit = ( event : React . FormEvent ) => {
6530 event . preventDefault ( )
66- isSignIn ? signIn ( values ) : signUp ( values )
31+ isSignIn ? signIn ( values ) : signUp ( values )
6732 }
6833
69-
7034 return (
7135 < Layout useBackdrop = { true } usePadding = { false } >
7236 < div className = "h-screen flex flex-col justify-center items-center relative" >
0 commit comments