Dynamic my account

This commit is contained in:
Maxime Lalo 2023-09-11 16:06:07 +02:00
parent 67881deb56
commit 38cde6148e
4 changed files with 77 additions and 17 deletions

View File

@ -35,8 +35,9 @@ export default class Users extends BaseNotary {
} }
} }
public async getByUid(uid: string): Promise<User> { public async getByUid(uid: string, q?: any): Promise<User> {
const url = new URL(this.baseURl.concat("/").concat(uid)); const url = new URL(this.baseURl.concat("/").concat(uid));
if (q) Object.entries(q).forEach(([key, value]) => url.searchParams.set(key, JSON.stringify(value)));
try { try {
return await this.getRequest<User>(url); return await this.getRequest<User>(url);
} catch (err) { } catch (err) {

View File

@ -117,12 +117,6 @@ export default function DeedTypesInformations(props: IProps) {
</div> </div>
<div className={classes["deed-type-container"]}> <div className={classes["deed-type-container"]}>
<div className={classes["infos"]}> <div className={classes["infos"]}>
<div className={classes["box"]}>
<Typography typo={ITypo.NAV_INPUT_16} className={classes["box-title"]} color={ITypoColor.BLACK}>
Nom du type d'acte
</Typography>
<Typography typo={ITypo.P_18}>{deedTypeSelected?.name}</Typography>
</div>
<div className={classNames(classes["middle-box"], classes["box"])}> <div className={classNames(classes["middle-box"], classes["box"])}>
<Typography typo={ITypo.NAV_INPUT_16} className={classes["box-title"]} color={ITypoColor.BLACK}> <Typography typo={ITypo.NAV_INPUT_16} className={classes["box-title"]} color={ITypoColor.BLACK}>
Description Description

View File

@ -6,11 +6,23 @@ import DefaultTemplate from "@Front/Components/LayoutTemplates/DefaultTemplate";
import React from "react"; import React from "react";
import classes from "./classes.module.scss"; import classes from "./classes.module.scss";
import User from "le-coffre-resources/dist/Notary";
import Users from "@Front/Api/LeCoffreApi/Notary/Users/Users";
import JwtService from "@Front/Services/JwtService/JwtService";
type IProps = {}; type IProps = {};
type IState = {}; type IState = {
user: User | null;
};
export default class MyAccount extends Base<IProps, IState> { export default class MyAccount extends Base<IProps, IState> {
constructor(props: IProps) {
super(props);
this.state = {
user: null,
};
}
public override render(): JSX.Element { public override render(): JSX.Element {
return ( return (
<DefaultTemplate title={"Mon compte"}> <DefaultTemplate title={"Mon compte"}>
@ -25,19 +37,31 @@ export default class MyAccount extends Base<IProps, IState> {
</Typography> </Typography>
<Form onSubmit={this.onFormSubmit}> <Form onSubmit={this.onFormSubmit}>
<div className={classes["form-container"]}> <div className={classes["form-container"]}>
<TextField name="name" placeholder="Nom" defaultValue={"BIHR"} disabled canCopy /> <TextField
<TextField name="surname" placeholder="Prénom" defaultValue={"Nicolas"} disabled canCopy /> name="name"
placeholder="Nom"
defaultValue={this.state.user?.contact?.last_name}
disabled
canCopy
/>
<TextField
name="surname"
placeholder="Prénom"
defaultValue={this.state.user?.contact?.first_name}
disabled
canCopy
/>
<TextField <TextField
name="email" name="email"
placeholder="E-mail" placeholder="E-mail"
defaultValue={"nicolas.bihr@notaires.fr"} defaultValue={this.state.user?.contact?.email}
disabled disabled
canCopy canCopy
/> />
<TextField <TextField
name="phone" name="phone"
placeholder="Numéro de téléphone" placeholder="Numéro de téléphone"
defaultValue={"06 74 83 90 23"} defaultValue={this.state.user?.contact?.phone_number as string}
disabled disabled
canCopy canCopy
/> />
@ -53,13 +77,35 @@ export default class MyAccount extends Base<IProps, IState> {
<TextField <TextField
name="office_denomination" name="office_denomination"
placeholder="Dénomination de l'office" placeholder="Dénomination de l'office"
defaultValue="Etude Office notarial du Cormier" defaultValue={this.state.user?.office_membership?.name}
disabled
canCopy
/>
<TextField
name="crpcen"
placeholder="CRPCEN"
defaultValue={this.state.user?.office_membership?.crpcen}
disabled
canCopy
/>
<TextField
name="cp_address"
placeholder="Adresse CP"
defaultValue={this.state.user?.office_membership?.address?.address}
disabled
canCopy
/>
<TextField
name="city"
placeholder="Ville"
defaultValue={
this.state.user?.office_membership?.address?.zip_code +
" - " +
this.state.user?.office_membership?.address?.city
}
disabled disabled
canCopy canCopy
/> />
<TextField name="crpcen" placeholder="CRPCEN" defaultValue="35137" disabled canCopy />
<TextField name="cp_address" placeholder="Adresse CP" defaultValue="2 RUE DE RENNES" disabled canCopy />
<TextField name="city" placeholder="Ville" defaultValue="35140 ST AUBIN DU CORMIER" disabled canCopy />
</div> </div>
</Form> </Form>
</div> </div>
@ -69,6 +115,25 @@ export default class MyAccount extends Base<IProps, IState> {
); );
} }
public override async componentDidMount() {
const jwtUncoded = JwtService.getInstance().decodeCustomerJwt();
console.log(jwtUncoded);
if (!jwtUncoded) return;
const user = await Users.getInstance().getByUid(jwtUncoded.userId, {
q: {
office_membership: {
include: {
address: true,
},
},
contact: true,
},
});
if (!user) return;
this.setState({
user,
});
}
private onFormSubmit( private onFormSubmit(
e: React.FormEvent<HTMLFormElement> | null, e: React.FormEvent<HTMLFormElement> | null,
values: { values: {

View File

@ -20,7 +20,7 @@ export interface IUserJwtPayload {
} }
export interface ICustomerJwtPayload { export interface ICustomerJwtPayload {
customerId: string; userId: string;
email: string; email: string;
} }