Add Snackbar component for displaying error messages in SignupView and ChoreView
This commit is contained in:
parent
e974568374
commit
ea4783ff39
2 changed files with 66 additions and 17 deletions
|
@ -7,6 +7,7 @@ import {
|
|||
FormHelperText,
|
||||
Input,
|
||||
Sheet,
|
||||
Snackbar,
|
||||
Typography,
|
||||
} from '@mui/joy'
|
||||
import React from 'react'
|
||||
|
@ -25,6 +26,8 @@ const SignupView = () => {
|
|||
const [emailError, setEmailError] = React.useState('')
|
||||
const [displayNameError, setDisplayNameError] = React.useState('')
|
||||
const [error, setError] = React.useState(null)
|
||||
const [snackbarOpen, setSnackbarOpen] = React.useState(false)
|
||||
const [snackbarMessage, setSnackbarMessage] = React.useState('')
|
||||
const handleLogin = (username, password) => {
|
||||
login(username, password).then(response => {
|
||||
if (response.status === 200) {
|
||||
|
@ -39,6 +42,7 @@ const SignupView = () => {
|
|||
})
|
||||
} else {
|
||||
console.log('Login failed', response)
|
||||
|
||||
// Navigate('/login')
|
||||
}
|
||||
})
|
||||
|
@ -101,7 +105,10 @@ const SignupView = () => {
|
|||
handleLogin(username, password)
|
||||
} else {
|
||||
console.log('Signup failed')
|
||||
setError('Signup failed')
|
||||
response.json().then(res => {
|
||||
setError(res.error)
|
||||
}
|
||||
)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -256,6 +263,14 @@ const SignupView = () => {
|
|||
</Button>
|
||||
</Sheet>
|
||||
</Box>
|
||||
<Snackbar
|
||||
open={error !== null}
|
||||
onClose={() => setError(null)}
|
||||
autoHideDuration={5000}
|
||||
message={error}
|
||||
>
|
||||
{error}
|
||||
</Snackbar>
|
||||
</Container>
|
||||
)
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ import {
|
|||
CancelScheduleSend,
|
||||
Check,
|
||||
Checklist,
|
||||
Edit,
|
||||
History,
|
||||
PeopleAlt,
|
||||
Person,
|
||||
|
@ -258,7 +259,7 @@ const ChoreView = () => {
|
|||
>
|
||||
<Grid container spacing={1}>
|
||||
{infoCards.map((detail, index) => (
|
||||
<Grid item xs={4} key={index}>
|
||||
<Grid item xs={6} key={index}>
|
||||
{/* divider between the list items: */}
|
||||
|
||||
<ListItem key={index}>
|
||||
|
@ -411,19 +412,6 @@ const ChoreView = () => {
|
|||
}}
|
||||
/>
|
||||
)}
|
||||
|
||||
<Button
|
||||
fullWidth
|
||||
size='lg'
|
||||
onClick={handleTaskCompletion}
|
||||
disabled={isPendingCompletion}
|
||||
color={isPendingCompletion ? 'danger' : 'success'}
|
||||
startDecorator={<Check />}
|
||||
>
|
||||
<Box>Mark as done</Box>
|
||||
</Button>
|
||||
<Divider sx={{ my: 0.5 }}>or</Divider>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
display: 'flex',
|
||||
|
@ -433,6 +421,22 @@ const ChoreView = () => {
|
|||
justifyContent: 'center',
|
||||
}}
|
||||
>
|
||||
<Button
|
||||
fullWidth
|
||||
size='lg'
|
||||
onClick={handleTaskCompletion}
|
||||
disabled={isPendingCompletion}
|
||||
color={isPendingCompletion ? 'danger' : 'success'}
|
||||
startDecorator={<Check />}
|
||||
sx={
|
||||
{
|
||||
flex: 4,
|
||||
}
|
||||
}
|
||||
>
|
||||
<Box>Mark as done</Box>
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
fullWidth
|
||||
size='lg'
|
||||
|
@ -454,9 +458,26 @@ const ChoreView = () => {
|
|||
})
|
||||
}}
|
||||
startDecorator={<SwitchAccessShortcut />}
|
||||
sx={
|
||||
{
|
||||
flex: 1,
|
||||
}
|
||||
}
|
||||
>
|
||||
<Box>Skip</Box>
|
||||
</Button>
|
||||
</Box>
|
||||
<Divider sx={{ my: 0.5 }}>More</Divider>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
display: 'flex',
|
||||
flexDirection: 'row',
|
||||
gap: 1,
|
||||
alignContent: 'center',
|
||||
justifyContent: 'center',
|
||||
}}
|
||||
>
|
||||
<Button
|
||||
startDecorator={<History />}
|
||||
size='lg'
|
||||
|
@ -469,8 +490,21 @@ const ChoreView = () => {
|
|||
>
|
||||
History
|
||||
</Button>
|
||||
</Box>
|
||||
|
||||
<Button
|
||||
startDecorator={<Edit />}
|
||||
size='lg'
|
||||
color='primary'
|
||||
variant='outlined'
|
||||
fullWidth
|
||||
onClick={() => {
|
||||
navigate(`/chores/${choreId}/edit`)
|
||||
}}
|
||||
>
|
||||
Edit
|
||||
</Button>
|
||||
|
||||
</Box>
|
||||
<Snackbar
|
||||
open={isPendingCompletion}
|
||||
endDecorator={
|
||||
|
|
Loading…
Add table
Reference in a new issue