import { Dropdown, Item, Form, FormRow, FormButtons, FormInput, TextField, SubmitButton, PasswordField, } from 'react-basics'; import { useApi, useLogin, useMessages } from 'components/hooks'; import { ROLES } from 'lib/constants'; import { useContext, useRef } from 'react'; import { UserContext } from './UserProvider'; export function UserEditForm({ userId, onSave }: { userId: string; onSave?: () => void }) { const { formatMessage, labels, messages } = useMessages(); const { post, useMutation } = useApi(); const { mutate, error } = useMutation({ mutationFn: ({ username, password, role, }: { username: string; password: string; role: string; }) => post(`/users/${userId}`, { username, password, role }), }); const ref = useRef(null); const user = useContext(UserContext); const { user: login } = useLogin(); const handleSubmit = async (data: any) => { mutate(data, { onSuccess: async () => { ref.current.reset(data); onSave?.(); }, }); }; const renderValue = (value: string) => { if (value === ROLES.user) { return formatMessage(labels.user); } if (value === ROLES.admin) { return formatMessage(labels.admin); } if (value === ROLES.viewOnly) { return formatMessage(labels.viewOnly); } }; return (
{user.id !== login.id && ( {formatMessage(labels.viewOnly)} {formatMessage(labels.user)} {formatMessage(labels.admin)} )} {formatMessage(labels.save)}
); } export default UserEditForm;