added the new login endpoint

This commit was merged in pull request #27.
This commit is contained in:
victorAnumudu
2025-06-23 19:27:15 +01:00
parent 0984d78f1e
commit dbf81a4cf5
7 changed files with 154 additions and 70 deletions
+16 -11
View File
@@ -19,9 +19,9 @@ export default function Login() {
const navigate = useNavigate()
const [fields, setFields] = useState({
username: localStorage.getItem('username') || '',
username: '',
password: '',
remember: localStorage.getItem('username') ? true : false
remember: false
})
const handleChange = ({target:{name, value}}) => {
@@ -37,20 +37,25 @@ export default function Login() {
throw new Error('Please provide all fields marked *')
}
rememberMe(fields.remember) // FUNCTION TO SAVE USERNAME OF THE USER TO LOCAL STORAGE
delete fields.remember // REMOVING REMEMBER FROM THE PAYLOAD
return loginUser(fields)
},
onError: (error) => {
console.log(error)
},
onSuccess: (res) => {
const {token, room} = res?.data?.data
if(token){
localStorage.setItem('token', token)
localStorage.setItem('room', room)
// const data = {token}
// dispatch(updateUserDetails({ ...data }));
navigate('/dash') // later add redux to dispatch state
if(res?.data?.error_message){
throw({message: res?.data?.error_message})
}
const {token, room, uid} = res?.data
if(!token || !room){
throw({message: 'something went wrong, try again!'})
}
localStorage.setItem('token', token)
localStorage.setItem('room', room)
localStorage.setItem('uid', uid)
dispatch(updateUserDetails({ ...res?.data }));
navigate('/dash') // later add redux to dispatch state
}
})
@@ -85,13 +90,13 @@ export default function Login() {
<div className="col-12">
<div className="form-group">
<label className="control-label text-black fw-bold">Password*</label>
<input maxLength={15} name='password' value={fields.password} onChange={handleChange} type="password" className="form-control" placeholder="Password" />
<input maxLength={55} name='password' value={fields.password} onChange={handleChange} type="password" className="form-control" placeholder="Password" />
</div>
</div>
<div className="col-12">
<div className="d-block d-sm-flex align-items-center">
<div className="form-check">
<input className="form-check-input" type="checkbox" id="gridCheck" name='remember' checked={fields.remember} onChange={handleChange} disabled={!fields.username ? true : false} />
<input className="form-check-input" type="checkbox" id="gridCheck" name='remember' checked={fields.remember || false} onChange={handleChange} disabled={!fields.username ? true : false} />
<label className="form-check-label text-black" htmlFor="gridCheck">
Remember Me
</label>