1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-04-10 01:16:39 +02:00
unleash.unleash/frontend/src/page/admin/users/update-user-component.jsx
Ivar Conradi Østhus 5342c86b60 fix: one and only one front (#244)
Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>
Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2021-02-24 11:03:18 +01:00

103 lines
3.1 KiB
JavaScript

import React, { useState } from 'react';
import PropTypes from 'prop-types';
import Modal from 'react-modal';
import { Button, Textfield, DialogTitle, DialogContent, DialogActions, RadioGroup, Radio } from 'react-mdl';
import { showPermissions, modalStyles } from './util';
Modal.setAppElement('#app');
function AddUser({ user, showDialog, closeDialog, updateUser }) {
if (!user) {
return null;
}
const [data, setData] = useState(user);
const [error, setError] = useState({});
const updateField = e => {
setData({
...data,
[e.target.name]: e.target.value,
});
};
const submit = async e => {
e.preventDefault();
try {
await updateUser(data);
closeDialog();
} catch (error) {
setError({ general: 'Could not create user' });
}
};
const onCancel = e => {
e.preventDefault();
closeDialog();
};
const userType = data.userType || showPermissions(user.permissions);
return (
<Modal isOpen={showDialog} style={modalStyles} onRequestClose={onCancel}>
<form onSubmit={submit}>
<DialogTitle>Edit user</DialogTitle>
<DialogContent>
<p>{error.general}</p>
<Textfield
floatingLabel
label="Full name"
name="name"
value={data.name}
error={error.name}
type="name"
onChange={updateField}
/>
<Textfield
floatingLabel
label="Email"
name="email"
contentEditable="false"
editable="false"
readOnly
value={data.email}
type="email"
/>
<br />
<br />
<RadioGroup name="userType" value={userType} onChange={updateField} childContainer="div">
<Radio value="regular" ripple>
Regular user
</Radio>
<Radio value="admin" ripple>
Admin user
</Radio>
<Radio value="read" ripple>
Read only
</Radio>
</RadioGroup>
</DialogContent>
<DialogActions>
<Button type="button" raised colored type="submit">
Update
</Button>
<Button type="button" onClick={onCancel}>
Cancel
</Button>
</DialogActions>
</form>
</Modal>
);
}
AddUser.propTypes = {
showDialog: PropTypes.bool.isRequired,
closeDialog: PropTypes.func.isRequired,
updateUser: PropTypes.func.isRequired,
user: PropTypes.object,
};
export default AddUser;