: ${e.message}`)
dispatch({ type: 'LOGOUT.FAIL', payload: e.message })
}
}
// index.js
import React from 'react'
import { AuthProvider } from 'contexts/auth-context'
import { authInitialState, authReducer } from 'reducers/auth-reducer'
import { App } from 'App'
ReactDOM.render(
,
document.getElementById("root")
);
// components/AuthenticatedApp
import React from 'react'
import { useAuthState, useAuthDispatch } from 'components/auth-context'
import { logout } from 'actions/auth-actions'
export const AuthenticatedApp = () => {
const authState = useAuthState()
const authDispatch = useAuthDispatch()
return (
{authState.user.name}
)
}
// components/UnAuthenticatedApp
import React, { useState } from 'react'
import { useAuthDispatch } from 'components/auth-context'
import { login } from 'actions/auth-actions'
export const UnAuthenticatedApp = () => {
const [user, setUser] = useState('')
const [password, setPassword] = useState('')
const authDispatch = useAuthDispatch()
return (
setUser(e.target.value)} placeholder="Insert you username" />
setPassword(e.target.value)} placeholder="Insert your password" />
)
}
// App.js
import React, {} from 'react'
import { AuthenticatedApp } from 'components/AuthenticatedApp'
import { UnAuthenticatedApp } from 'components/UnAuthenticatedApp'
import { useAuthState } from 'contexts/auth-context.js'
export const App = () => {
const authState = useAuthState()
return authState.user ? :
}