✨ Verify sms request working
This commit is contained in:
parent
0cf67261a0
commit
6017803cee
29
src/front/Api/Auth/Customer/Auth.ts
Normal file
29
src/front/Api/Auth/Customer/Auth.ts
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
import BaseApiService from "@Front/Api/BaseApiService";
|
||||||
|
|
||||||
|
export type IMailVerifyParams = {
|
||||||
|
email: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type IMailVerifyReturn = {
|
||||||
|
partialPhoneNumber: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default class Auth extends BaseApiService {
|
||||||
|
private static instance: Auth;
|
||||||
|
protected readonly namespaceUrl = this.getBaseUrl().concat("/customer");
|
||||||
|
private readonly baseURl = this.namespaceUrl.concat("/auth");
|
||||||
|
|
||||||
|
public static getInstance() {
|
||||||
|
return (this.instance ??= new this());
|
||||||
|
}
|
||||||
|
|
||||||
|
public async mailVerifySms(body: IMailVerifyParams): Promise<IMailVerifyReturn> {
|
||||||
|
const url = new URL(this.baseURl.concat("/mail/verify-sms"));
|
||||||
|
try {
|
||||||
|
return this.postRequest<IMailVerifyReturn>(url, body);
|
||||||
|
} catch (err) {
|
||||||
|
this.onError(err);
|
||||||
|
return Promise.reject(err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -8,15 +8,17 @@ import { useCallback, useEffect, useState } from "react";
|
|||||||
import Customers from "@Front/Api/Auth/Id360/Customers/Customers";
|
import Customers from "@Front/Api/Auth/Id360/Customers/Customers";
|
||||||
import classes from "./classes.module.scss";
|
import classes from "./classes.module.scss";
|
||||||
import LandingImage from "./landing-connect.jpeg";
|
import LandingImage from "./landing-connect.jpeg";
|
||||||
import Link from "next/link";
|
|
||||||
import Confirm from "@Front/Components/DesignSystem/Modal/Confirm";
|
import Confirm from "@Front/Components/DesignSystem/Modal/Confirm";
|
||||||
import Form from "@Front/Components/DesignSystem/Form";
|
import Form from "@Front/Components/DesignSystem/Form";
|
||||||
import TextField from "@Front/Components/DesignSystem/Form/TextField";
|
import TextField from "@Front/Components/DesignSystem/Form/TextField";
|
||||||
|
import Module from "@Front/Config/Module";
|
||||||
|
import { ValidationError } from "class-validator";
|
||||||
|
import Auth from "@Front/Api/Auth/Customer/Auth";
|
||||||
|
|
||||||
export default function Login() {
|
export default function Login() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const error = router.query["error"];
|
const error = router.query["error"];
|
||||||
|
const [validationError, setValidationError] = useState<ValidationError[]>([]);
|
||||||
const [isErrorModalOpen, setIsErrorModalOpen] = useState(false);
|
const [isErrorModalOpen, setIsErrorModalOpen] = useState(false);
|
||||||
|
|
||||||
const redirectCustomerOnConnection = useCallback(() => {
|
const redirectCustomerOnConnection = useCallback(() => {
|
||||||
@ -43,6 +45,25 @@ export default function Login() {
|
|||||||
if (error === "1") openErrorModal();
|
if (error === "1") openErrorModal();
|
||||||
}, [error, openErrorModal]);
|
}, [error, openErrorModal]);
|
||||||
|
|
||||||
|
const onSubmitHandler = useCallback(
|
||||||
|
async (e: React.FormEvent<HTMLFormElement> | null, values: { [key: string]: string }) => {
|
||||||
|
try {
|
||||||
|
console.log(values);
|
||||||
|
if (!values["email"]) return;
|
||||||
|
const phoneNumber = await Auth.getInstance().mailVerifySms({ email: values["email"] });
|
||||||
|
/* router.push(
|
||||||
|
Module.getInstance().get().modules.pages.DeedTypes.pages.DeedTypesInformations.props.path.replace("[uid]", "1"),
|
||||||
|
); */
|
||||||
|
} catch (validationErrors: Array<ValidationError> | any) {
|
||||||
|
console.log(validationErrors);
|
||||||
|
if (validationErrors.length > 0) {
|
||||||
|
setValidationError(validationErrors as ValidationError[]);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[router],
|
||||||
|
);
|
||||||
return (
|
return (
|
||||||
<DefaultDoubleSidePage title={"Login"} image={LandingImage}>
|
<DefaultDoubleSidePage title={"Login"} image={LandingImage}>
|
||||||
<div className={classes["root"]}>
|
<div className={classes["root"]}>
|
||||||
@ -55,8 +76,12 @@ export default function Login() {
|
|||||||
<Typography className={classes["or"]} typo={ITypo.P_16}>
|
<Typography className={classes["or"]} typo={ITypo.P_16}>
|
||||||
Ou
|
Ou
|
||||||
</Typography>
|
</Typography>
|
||||||
<Form className={classes["form"]}>
|
<Form className={classes["form"]} onSubmit={onSubmitHandler}>
|
||||||
<TextField placeholder="E-mail" name="email" />
|
<TextField
|
||||||
|
placeholder="E-mail"
|
||||||
|
name="email"
|
||||||
|
validationError={validationError.find((error) => error.property === "email")}
|
||||||
|
/>
|
||||||
<Button type="submit" variant={EButtonVariant.PRIMARY} className={classes["submit_button"]}>
|
<Button type="submit" variant={EButtonVariant.PRIMARY} className={classes["submit_button"]}>
|
||||||
Suivant
|
Suivant
|
||||||
</Button>
|
</Button>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user