Added password changing

This commit is contained in:
2021-02-27 04:38:59 +11:00
parent 2d7f6894ab
commit 648f8a16cc
4 changed files with 35 additions and 8 deletions
+26 -5
View File
@@ -13,7 +13,7 @@ const Account = props => {
}
//refs
let contactElement;
let contactElement, passwordElement, retypeElement;
//once before render
useEffect(() => {
@@ -31,11 +31,24 @@ const Account = props => {
<h1 className='centered'>Account</h1>
<form className='constricted' onSubmit={async evt => {
evt.preventDefault();
await update(contactElement.checked);
await update(contactElement.checked, passwordElement.value, retypeElement.value);
passwordElement.value = retypeElement.value = '';
}}>
<div>
<label htmlFor='contact'>Allow Promotional Emails:</label>
<input type='checkbox' name='contact' ref={e => contactElement = e} />
<div>
<label htmlFor='contact'>Allow Promotional Emails:</label>
<input type='checkbox' name='contact' ref={e => contactElement = e} />
</div>
<div>
<label htmlFor='password'>Change Password:</label>
<input type='password' name='password' ref={e => passwordElement = e} />
</div>
<div>
<label htmlFor='retype'>Retype Password:</label>
<input type='password' name='retype' ref={e => retypeElement = e} />
</div>
</div>
<button type='submit'>Update Information</button>
@@ -46,12 +59,20 @@ const Account = props => {
);
};
const update = async (contact) => {
const update = async (contact, password, retype) => {
if (password != retype) {
alert('Passwords do not match');
}
//generate a new formdata payload
let formData = new FormData();
formData.append('contact', contact);
if (password) {
formData.append('password', password);
}
const result = await fetch('/api/accounts', { method: 'PATCH', body: formData });
if (result.ok) {