fix: affiliation request page minor bug
This commit is contained in:
@@ -2,15 +2,30 @@ import {useState} from "react";
|
||||
import {apiAxios} from "../utils/Tools.js";
|
||||
import {toast} from "react-toastify";
|
||||
import {useNavigate} from "react-router-dom";
|
||||
import {RoleList} from "../components/MemberCustomFiels.jsx";
|
||||
|
||||
const notUpperCase = ["de", "la", "le", "les", "des", "du", "d'", "l'", "sur"];
|
||||
|
||||
function formatAdresse(data) {
|
||||
const words = data.split(" ");
|
||||
|
||||
return words.map((word) => {
|
||||
if (notUpperCase.includes(word.toLowerCase())) {
|
||||
return word.toLowerCase();
|
||||
}
|
||||
return word[0].toUpperCase() + word.substring(1).toLowerCase();
|
||||
}).join(" ");
|
||||
}
|
||||
|
||||
function reconstruireAdresse(infos) {
|
||||
let adresseReconstruite = "";
|
||||
adresseReconstruite += infos.numero_voie + ' ' + infos.type_voie + ' ';
|
||||
adresseReconstruite += infos.libelle_voie + ', ';
|
||||
adresseReconstruite += infos.numero_voie + ' ' + formatAdresse(infos.type_voie) + ' ';
|
||||
|
||||
adresseReconstruite += formatAdresse(infos.libelle_voie) + ', ';
|
||||
adresseReconstruite += infos.code_postal + ' ' + infos.libelle_commune + ', ';
|
||||
|
||||
if (infos.complement_adresse) {
|
||||
adresseReconstruite += infos.complement_adresse + ', ';
|
||||
adresseReconstruite += infos.complement_adresse.toLowerCase() + ', ';
|
||||
}
|
||||
if (infos.code_cedex && infos.libelle_cedex) {
|
||||
adresseReconstruite += 'Cedex ' + infos.code_cedex + ' - ' + infos.libelle_cedex;
|
||||
@@ -31,6 +46,19 @@ export function DemandeAff() {
|
||||
event.preventDefault()
|
||||
const formData = new FormData(event.target)
|
||||
formData.append("m1_role", event.target.m1_role?.value)
|
||||
formData.append("rna", event.target.rna?.value)
|
||||
|
||||
let error = false;
|
||||
for (let i = 1; i <= 3; i++) {
|
||||
if (event.target[`m${i}_role`]?.value === "0") {
|
||||
toast.error(`Le rôle du membre ${i} est obligatoire`)
|
||||
error = true;
|
||||
}
|
||||
}
|
||||
if (error) {
|
||||
return;
|
||||
}
|
||||
|
||||
toast.promise(
|
||||
apiAxios.post(`/affiliation/request`, formData, {headers: {'Accept': '*/*'}}),
|
||||
{
|
||||
@@ -76,13 +104,11 @@ export function DemandeAff() {
|
||||
<MembreInfo role="m3"/>
|
||||
|
||||
<div className="mb-3" style={{marginTop: '1em'}}>
|
||||
<p>Après validation de votre demande, vous recevrez un login et mot de passe provisoire pour
|
||||
<p>Après validation de votre demande, vous recevrez un identifiant et mot de passe provisoire pour
|
||||
accéder à votre espace FFSAF</p>
|
||||
Notez que pour finaliser votre affiliation, il vous faudra :
|
||||
<ul>
|
||||
<li>Disposer d’au moins trois membres licenciés, dont le président, le trésorier et le
|
||||
secrétaire
|
||||
</li>
|
||||
<li>Disposer d’au moins trois membres licenciés, dont le président</li>
|
||||
<li>S'être acquitté des cotisations prévues par les règlements fédéraux</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -158,11 +184,16 @@ function AssoInfo() {
|
||||
disabled={!rnaEnable} name="rna" value={rna} onChange={e => setRna(e.target.value)}/>
|
||||
</div>
|
||||
|
||||
<div className="input-group mb-3">
|
||||
<span className="input-group-text" id="basic-addon1">Adresse*</span>
|
||||
<input type="text" className="form-control" placeholder="Adresse" aria-label="Adresse"
|
||||
aria-describedby="basic-addon1"
|
||||
required value={adresse} name="adresse" onChange={e => setAdresse(e.target.value)}/>
|
||||
<div className="mb-3">
|
||||
<div className="input-group">
|
||||
<span className="input-group-text" id="basic-addon1">Adresse de contact*</span>
|
||||
<input type="text" className="form-control" placeholder="Adresse de contact" aria-label="Adresse de contact"
|
||||
aria-describedby="basic-addon1"
|
||||
required value={adresse} name="adresse" onChange={e => setAdresse(e.target.value)}/>
|
||||
</div>
|
||||
<div className="form-text" id="adresse">Vous pourrez par la suite, ajouter des adresses visibles publiquement pour vos lieux
|
||||
d'entrainement
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="input-group mb-3">
|
||||
@@ -186,7 +217,7 @@ function MembreInfo({role}) {
|
||||
<label className="input-group-text" htmlFor="inputGroupSelect01">Rôles</label>
|
||||
<select className="form-select" id="inputGroupSelect01" defaultValue={role === "m1" ? "PRESIDENT" : 0}
|
||||
disabled={role === "m1"} name={role + "_role"} required>
|
||||
<option>Sélectionner...</option>
|
||||
<option value="0">Sélectionner...</option>
|
||||
<option value="PRESIDENT">Président</option>
|
||||
<option value="TRESORIER">Trésorier</option>
|
||||
<option value="SECRETAIRE">Secrétaire</option>
|
||||
@@ -200,22 +231,23 @@ function MembreInfo({role}) {
|
||||
<div className="row g-3 mb-3">
|
||||
<div className="col-sm-3">
|
||||
<div className="form-floating">
|
||||
<input type="text" className="form-control" id="floatingInput" placeholder="Nom" name={role + "_nom"} defaultValue={role + "-nom"} required/>
|
||||
<label htmlFor="floatingInput">Nom</label>
|
||||
<input type="text" className="form-control" id="floatingInput" placeholder="Nom" name={role + "_nom"} defaultValue={role + "-nom"}
|
||||
required/>
|
||||
<label htmlFor="floatingInput">Nom*</label>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-sm-3">
|
||||
<div className="form-floating">
|
||||
<input type="text" className="form-control" id="floatingInput" placeholder="Prénom"
|
||||
name={role + "_prenom"} defaultValue={role + "_prenom"} required/>
|
||||
<label htmlFor="floatingInput">Prénom</label>
|
||||
<label htmlFor="floatingInput">Prénom*</label>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-sm-5">
|
||||
<div className="form-floating">
|
||||
<input type="email" className="form-control" id="floatingInput" placeholder="name@example.com"
|
||||
name={role + "_mail"} defaultValue={role + "-mail@test.com"} required/>
|
||||
<label htmlFor="floatingInput">Email</label>
|
||||
<label htmlFor="floatingInput">Email*</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -231,7 +263,7 @@ function MembreInfo({role}) {
|
||||
<div className="col-sm-3">
|
||||
<div className="form-floating">
|
||||
<input type="number" className="form-control" id="floatingInput" placeholder="N° Licence"
|
||||
name={role + "_licence"}/>
|
||||
name={role + "_licence"} required/>
|
||||
<label htmlFor="floatingInput">N° Licence</label>
|
||||
</div>
|
||||
</div>
|
||||
@@ -244,7 +276,7 @@ export function DemandeAffOk() {
|
||||
return (
|
||||
<div>
|
||||
<h1 className="text-green-800 text-4xl">Demande d'affiliation envoyée avec succès</h1>
|
||||
<p>Une fois votre demande validée, vous recevrez un login et mot de passe provisoire pour accéder à votre
|
||||
<p>Une fois votre demande validée, vous recevrez un identifiant et mot de passe provisoire pour accéder à votre
|
||||
espace FFSAF</p>
|
||||
</div>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user