refactor: change password errors

pull/3813/head
Arik Chakma 2 years ago
parent 7dc2d9169b
commit 61fe3a16bc
  1. 46
      src/components/Setting/ChangePasswordForm.tsx

@ -9,8 +9,10 @@ export default function ChangePasswordForm() {
const [currentPassword, setCurrentPassword] = useState(''); const [currentPassword, setCurrentPassword] = useState('');
const [newPassword, setNewPassword] = useState(''); const [newPassword, setNewPassword] = useState('');
const [newPasswordConfirmation, setNewPasswordConfirmation] = useState(''); const [newPasswordConfirmation, setNewPasswordConfirmation] = useState('');
const [error, setError] = useState(''); const [message, setMessage] = useState<{
const [successMessage, setSuccessMessage] = useState(''); type: 'error' | 'success' | 'info';
message: string;
}>();
const [isLoading, setIsLoading] = useState(false); const [isLoading, setIsLoading] = useState(false);
const handleSubmit = (e: Event) => { const handleSubmit = (e: Event) => {
@ -18,7 +20,10 @@ export default function ChangePasswordForm() {
setIsLoading(true); setIsLoading(true);
if (newPassword !== newPasswordConfirmation) { if (newPassword !== newPasswordConfirmation) {
setError('New password and confirmation do not match'); setMessage({
type: 'error',
message: 'Passwords do not match',
});
setIsLoading(false); setIsLoading(false);
return; return;
} }
@ -54,11 +59,17 @@ export default function ChangePasswordForm() {
setNewPassword(''); setNewPassword('');
setNewPasswordConfirmation(''); setNewPasswordConfirmation('');
fetchProfile(); fetchProfile();
setSuccessMessage('Password updated successfully'); setMessage({
type: 'success',
message: 'Password updated successfully',
});
}) })
.catch((err) => { .catch((err) => {
setIsLoading(false); setIsLoading(false);
setError(err.message); setMessage({
type: 'error',
message: err.message,
});
}); });
}; };
@ -88,7 +99,10 @@ export default function ChangePasswordForm() {
throw new Error(json.message); throw new Error(json.message);
} }
} catch (error: any) { } catch (error: any) {
setError(error?.message || 'Something went wrong'); setMessage({
type: 'error',
message: error?.message || 'Something went wrong',
});
} }
setIsLoading(false); setIsLoading(false);
}, []); }, []);
@ -169,15 +183,17 @@ export default function ChangePasswordForm() {
/> />
</div> </div>
{error && ( {message && (
<div className="text-sm font-medium text-red-500"> <div
<p>{error}</p> className={`mt-2 rounded-lg p-2 ${
</div> message.type === 'error'
)} ? 'bg-red-100 text-red-700'
: message.type === 'success'
{successMessage && ( ? 'bg-green-100 text-green-700'
<div className="text-sm font-medium text-green-500"> : 'bg-blue-100 text-blue-700'
<p>{successMessage}</p> }`}
>
{message.message}
</div> </div>
)} )}

Loading…
Cancel
Save