Skip to content

Commit 68c5f24

Browse files
committed
587: Add actual RolesRadioGroup file
1 parent 62bb2cd commit 68c5f24

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import {
2+
FormControlLabel,
3+
Radio,
4+
RadioGroup,
5+
} from "@material-ui/core";
6+
import React from "react";
7+
8+
const UserRoles = {
9+
Admin: "admin",
10+
User: "user",
11+
};
12+
13+
const options = [
14+
{
15+
label: "Admin",
16+
value: UserRoles.Admin,
17+
},
18+
{
19+
label: "User",
20+
value: UserRoles.User,
21+
},
22+
];
23+
24+
export default function RolesRadioGroup(props) {
25+
const { register, user } = props;
26+
const [selectedRole, setSelectedRole] = React.useState(user ? user.role : undefined);
27+
28+
React.useEffect(() => {
29+
setSelectedRole(user ? user.role : null);
30+
}, [user]);
31+
32+
const generateRadioOptions = () => {
33+
return options.map((option) => (
34+
<FormControlLabel
35+
key={option.value}
36+
value={option.value}
37+
label={option.label}
38+
control={<Radio />}
39+
checked={selectedRole === option.value}
40+
onClick={(() => setSelectedRole(option.value))}
41+
{...register("role")}
42+
/>
43+
));
44+
};
45+
46+
return (
47+
<RadioGroup
48+
row
49+
name="role"
50+
{...register("role")}
51+
>
52+
{generateRadioOptions()}
53+
</RadioGroup>
54+
);
55+
};

0 commit comments

Comments
 (0)