Skip to content

Commit eafd06b

Browse files
committed
492: Convert app to use useAlert
1 parent 4235f52 commit eafd06b

File tree

5 files changed

+14
-34
lines changed

5 files changed

+14
-34
lines changed

src/client/src/pages/UserManagement/Components/Dialog/ChangePasswordDialog.jsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,17 @@ import { useForm } from 'react-hook-form';
1313
import * as Yup from 'yup';
1414
import { updateUser } from "../../../../utils/api";
1515
import { buildPasswordValidation } from '../../Validations';
16+
import useAlert from "../../../../hooks/useAlert";
1617

1718

1819
export default function ChangePasswordDialog(props) {
1920
const {
2021
onClose,
21-
notifyResult,
2222
token,
2323
user
2424
} = props;
2525
const { username } = user;
26+
const { setAlert } = useAlert();
2627

2728
const validationSchema = Yup.object().shape({
2829
password: buildPasswordValidation(username),
@@ -39,14 +40,14 @@ export default function ChangePasswordDialog(props) {
3940
updateUser({ username, password }, token)
4041
.then((res) => {
4142
if (res === "Updated") {
42-
notifyResult({ success: true, message: `Password for user ${username} successfully changed!` });
43+
setAlert({ type: "success", text: `Password for user ${username} successfully changed!` });
4344
} else {
44-
notifyResult({ success: false, message: res });
45+
setAlert({ type: "error", text: res });
4546
}
4647
})
4748
.catch(e => {
4849
console.warn(e)
49-
notifyResult({ success: false, message: e })
50+
setAlert({ type: "error", text: e })
5051
});
5152
onClose();
5253
}

src/client/src/pages/UserManagement/Components/Dialog/NewUserDialog.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@ import {
1818
buildRoleValidation,
1919
buildUsernameValidation
2020
} from '../../Validations';
21+
import useAlert from "../../../../hooks/useAlert";
2122

2223

2324
export default function NewUserDialog(props) {
2425
const [responseError, setResponseError] = React.useState(undefined);
26+
const { setAlert } = useAlert();
2527
const {
2628
onClose,
27-
notifyResult,
2829
token,
2930
updateUsers
3031
} = props;
@@ -56,7 +57,7 @@ export default function NewUserDialog(props) {
5657
if (res.indexOf("duplicate key") > -1) {
5758
setResponseError(`User with username ${data.username} already exists`)
5859
} else {
59-
notifyResult({ success: true, message: `New user ${res} created successfully` });
60+
setAlert({ type: "success", text: `New user ${res} created successfully` });
6061
updateUsers(newUser);
6162
onClose();
6263
}

src/client/src/pages/UserManagement/Components/Dialog/UpdateUserDialog.jsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ import { useForm } from 'react-hook-form';
1515
import * as Yup from 'yup';
1616
import { updateUser } from "../../../../utils/api";
1717
import { buildNameValidation, buildRoleValidation } from '../../Validations';
18+
import useAlert from "../../../../hooks/useAlert";
1819

1920

2021
export default function UpdateUserDialog(props) {
2122
const {
2223
onClose,
23-
notifyResult,
2424
token,
2525
updateUsers,
2626
user
@@ -32,6 +32,8 @@ export default function UpdateUserDialog(props) {
3232
active
3333
} = user;
3434

35+
const { setAlert } = useAlert();
36+
3537
const validationSchema = Yup.object().shape({
3638
name: buildNameValidation(),
3739
role: buildRoleValidation(),
@@ -53,16 +55,16 @@ export default function UpdateUserDialog(props) {
5355
updateUser(newUser, token)
5456
.then((res) => {
5557
if (res === "Updated") {
56-
notifyResult({ success: true, message: `User ${username} updated successfully` });
58+
setAlert({ type: "success", text: `User ${username} updated successfully` });
5759
updateUsers(newUser);
5860
onClose();
5961
} else {
60-
notifyResult({ success: false, message: res })
62+
setAlert({ type: "error", text: res })
6163
}
6264
})
6365
.catch(e => {
6466
console.warn(e)
65-
notifyResult({ success: false, message: e })
67+
setAlert({ type: "error", text: e })
6668
})
6769
}
6870

src/client/src/pages/UserManagement/Components/Dialog/UserDialog.jsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ export const DialogTypes = {
1111

1212
export default function UserDialog(props) {
1313
const {
14-
notifyResult,
1514
onClose,
1615
selectedUser,
1716
type,
@@ -23,7 +22,6 @@ export default function UserDialog(props) {
2322
case DialogTypes.NewUser:
2423
return (
2524
<NewUserDialog
26-
notifyResult={notifyResult}
2725
onClose={onClose}
2826
token={token}
2927
updateUsers={updateUsers}
@@ -32,7 +30,6 @@ export default function UserDialog(props) {
3230
case DialogTypes.UpdateUser:
3331
return (
3432
<UpdateUserDialog
35-
notifyResult={notifyResult}
3633
onClose={onClose}
3734
token={token}
3835
updateUsers={updateUsers}
@@ -42,7 +39,6 @@ export default function UserDialog(props) {
4239
case DialogTypes.ChangePassword:
4340
return (
4441
<ChangePasswordDialog
45-
notifyResult={notifyResult}
4642
onClose={onClose}
4743
token={token}
4844
user={selectedUser}

src/client/src/pages/UserManagement/UserManagement.jsx

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import {
1212
TableRow,
1313
Typography
1414
} from '@material-ui/core';
15-
import { Alert, AlertTitle } from '@material-ui/lab';
1615
import _ from 'lodash';
1716
import React from 'react';
1817
import { fetchUsers } from '../../utils/api';
@@ -22,7 +21,6 @@ import UserRow from './Components/UserRow';
2221
export default function UserManagement(props) {
2322
const [users, setUsers] = React.useState(undefined);
2423
const [isLoading, setIsLoading] = React.useState(undefined);
25-
const [resultBanner, setResultBanner] = React.useState(undefined);
2624
const [dialogOpen, setDialogOpen] = React.useState(false);
2725
const [dialogType, setDialogType] = React.useState(undefined)
2826
const [selectedUser, setSelectedUser] = React.useState(undefined);
@@ -36,17 +34,6 @@ export default function UserManagement(props) {
3634
})
3735
setIsLoading(false);
3836
}, [token]);
39-
40-
const notifyResult = ({ success, message }) => {
41-
setResultBanner({ success, message });
42-
43-
if (success) {
44-
setTimeout(() => {
45-
setResultBanner(null);
46-
}, 5000)
47-
}
48-
}
49-
5037
const updateUsers = (newOrUpdatedUser) => {
5138
setUsers(prevUsers => {
5239
const existingUserIndex = _.findIndex(users, existingUser => {
@@ -108,12 +95,6 @@ export default function UserManagement(props) {
10895
</Button>
10996
</Grid>
11097
</Grid >
111-
{resultBanner &&
112-
<Alert onClose={() => setResultBanner(null)} severity={resultBanner.success ? "success" : "error"} spacing={2}>
113-
<AlertTitle><Typography variant='h6'>{resultBanner.success ? "Success" : "Error"}</Typography></AlertTitle>
114-
<Typography>{resultBanner.message}</Typography>
115-
</Alert>
116-
}
11798
{isLoading &&
11899
<Backdrop open={true}>
119100
<CircularProgress size={60} />
@@ -142,7 +123,6 @@ export default function UserManagement(props) {
142123
}
143124
{dialogOpen &&
144125
<UserDialog
145-
notifyResult={notifyResult}
146126
onClose={closeDialog}
147127
selectedUser={selectedUser}
148128
token={token}

0 commit comments

Comments
 (0)