Adicionando dinamica status de perfil do usuário
This commit is contained in:
@@ -9,6 +9,9 @@ const usersRoutes = {
|
||||
update: {
|
||||
url: `${usersRoutesDefault}/edit`
|
||||
},
|
||||
checkIfUserIsDriver: {
|
||||
url: `${usersRoutesDefault}/isDriver`
|
||||
},
|
||||
getSocialInfo: {
|
||||
url: `${usersRoutesDefault}/social`
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ import {
|
||||
} from "@ionic/react";
|
||||
import { useHistory, useLocation } from "react-router-dom";
|
||||
import React, { useState, useEffect, useReducer, useContext } from "react";
|
||||
import { callOutline, cardOutline, carOutline, createOutline, exitOutline, logoFacebook, logoWhatsapp, shieldCheckmarkOutline, starOutline } from "ionicons/icons";
|
||||
import { callOutline, cardOutline, carOutline, createOutline, exitOutline, logoFacebook, logoWhatsapp, personOutline, shieldCheckmarkOutline, starOutline } from "ionicons/icons";
|
||||
|
||||
import './Perfil.css'
|
||||
import LocalStorage from "../LocalStorage";
|
||||
@@ -54,6 +54,7 @@ const Perfil: React.FC<ScanNewProps> = (props) => {
|
||||
const location = useLocation<LocationState>();
|
||||
|
||||
const [isVisitor, setIsVisitor] = useState(true)
|
||||
const [isDriver, setIsDriver] = useState(false)
|
||||
|
||||
const [incompleteProfile, setIncompleteProfile] = useState(false)
|
||||
const [incompleteProfileCounter, setIncompleteProfileCounter] = useState(0)
|
||||
@@ -134,6 +135,20 @@ const Perfil: React.FC<ScanNewProps> = (props) => {
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// check if user is driver (if they have vans)
|
||||
const userIsDriverRes = await usersService.checkIfUserIsDriver(userId)
|
||||
|
||||
// if (userIsDriverRes.error) {
|
||||
// setToastColor('warning')
|
||||
// setToastMessage(userIsDriverRes.error.errorMessage)
|
||||
// setShowToast(true)
|
||||
// return
|
||||
// }
|
||||
|
||||
if (!userIsDriverRes.error && userIsDriverRes.result !== undefined) {
|
||||
setIsDriver(userIsDriverRes.result)
|
||||
}
|
||||
|
||||
if (getByIdRes.userData) {
|
||||
const userData = getByIdRes.userData
|
||||
@@ -209,8 +224,16 @@ const Perfil: React.FC<ScanNewProps> = (props) => {
|
||||
</IonCardHeader>
|
||||
|
||||
<div id='profile-status'>
|
||||
{ isDriver ?
|
||||
<>
|
||||
<IonChip>
|
||||
<IonIcon icon={carOutline}></IonIcon>
|
||||
<IonLabel color="primary">Motorista</IonLabel>
|
||||
</IonChip>
|
||||
</> : <></>
|
||||
}
|
||||
<IonChip>
|
||||
{/* TODO, deve vir do backend */}
|
||||
<IonIcon icon={personOutline}></IonIcon>
|
||||
<IonLabel color="primary">Passageiro</IonLabel>
|
||||
</IonChip>
|
||||
</div>
|
||||
|
||||
@@ -73,6 +73,13 @@ export async function update(userData: UpdateUserRequest) {
|
||||
return response.data;
|
||||
}
|
||||
|
||||
export async function checkIfUserIsDriver(id_user: string) {
|
||||
updateHeader();
|
||||
|
||||
const response = await instance.get(userRoutes.checkIfUserIsDriver.url + `/${id_user}`, { headers: header });
|
||||
return response.data;
|
||||
}
|
||||
|
||||
// TODO, continuar
|
||||
export async function getSocialInfo(userId: string) {
|
||||
updateHeader();
|
||||
|
||||
@@ -92,4 +92,44 @@ const getUserSocialInfo = async (userId: string): Promise<getByIdReturn> => {
|
||||
}
|
||||
};
|
||||
|
||||
export default { getById, getUserSocialInfo }
|
||||
interface checkIfUserIsDriverReturn {
|
||||
result?: boolean;
|
||||
error?: {
|
||||
errorMessage: string;
|
||||
}
|
||||
}
|
||||
|
||||
interface checkIfUserIsDriverResponse {
|
||||
status: string;
|
||||
message: string;
|
||||
result?: boolean;
|
||||
error?: {
|
||||
errorMessage: string;
|
||||
}
|
||||
}
|
||||
|
||||
const checkIfUserIsDriver = async (id_user: string): Promise<checkIfUserIsDriverReturn> => {
|
||||
try {
|
||||
let res: checkIfUserIsDriverResponse = await usersRoutes.checkIfUserIsDriver(id_user)
|
||||
|
||||
if (res.status === "error") {
|
||||
return {
|
||||
error: {
|
||||
errorMessage: res.message,
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
result: res.result,
|
||||
};
|
||||
} catch(err) {
|
||||
return {
|
||||
error: {
|
||||
errorMessage: "Por favor, autentique-se.",
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
export default { getById, getUserSocialInfo, checkIfUserIsDriver }
|
||||
Reference in New Issue
Block a user