feat: creation d'un FormRenderer.js pour creer un formulaire dynamique [NEWTS-17]

This commit is contained in:
Luc SORIGNET
2025-08-31 12:26:04 +02:00
parent 482e8c1357
commit 9481a0132d
47 changed files with 324 additions and 130 deletions

View File

@ -3,9 +3,9 @@ import React, { useState } from 'react';
import DjangoCSRFToken from '@/components/DjangoCSRFToken';
import Logo from '@/components/Logo';
import { useRouter } from 'next/navigation';
import InputTextIcon from '@/components/InputTextIcon';
import InputTextIcon from '@/components/Form/InputTextIcon';
import Loader from '@/components/Loader'; // Importez le composant Loader
import Button from '@/components/Button'; // Importez le composant Button
import Button from '@/components/Form/Button'; // Importez le composant Button
import { User, KeySquare } from 'lucide-react'; // Importez directement les icônes nécessaires
import { FE_USERS_NEW_PASSWORD_URL, getRedirectUrlFromRole } from '@/utils/Url';
import { login } from '@/app/actions/authAction';
@ -35,11 +35,7 @@ export default function Page() {
logger.debug('Sign In Result', result);
if (result.error) {
showNotification(
result.error,
'error',
'Erreur'
);
showNotification(result.error, 'error', 'Erreur');
setIsLoading(false);
} else {
// On initialise le contexte establishement avec la session
@ -50,11 +46,7 @@ export default function Page() {
if (url) {
router.push(url);
} else {
showNotification(
'Type de rôle non géré',
'error',
'Erreur'
);
showNotification('Type de rôle non géré', 'error', 'Erreur');
}
});
setIsLoading(false);

View File

@ -3,9 +3,9 @@
import React, { useState } from 'react';
import DjangoCSRFToken from '@/components/DjangoCSRFToken';
import Logo from '@/components/Logo';
import InputTextIcon from '@/components/InputTextIcon';
import InputTextIcon from '@/components/Form/InputTextIcon';
import Loader from '@/components/Loader';
import Button from '@/components/Button';
import Button from '@/components/Form/Button';
import { User } from 'lucide-react';
import { FE_USERS_LOGIN_URL } from '@/utils/Url';
import { useCsrfToken } from '@/context/CsrfContext';
@ -25,25 +25,13 @@ export default function Page() {
.then((data) => {
logger.debug('Success:', data);
if (data.message !== '') {
showNotification(
data.message,
'success',
'Succès'
);
showNotification(data.message, 'success', 'Succès');
router.push(`${FE_USERS_LOGIN_URL}`);
} else {
if (data.errorMessage) {
showNotification(
data.errorMessage,
'error',
'Erreur'
);
showNotification(data.errorMessage, 'error', 'Erreur');
} else if (data.errorFields) {
showNotification(
data.errorFields.email,
'error',
'Erreur'
);
showNotification(data.errorFields.email, 'error', 'Erreur');
}
}
setIsLoading(false);

View File

@ -5,9 +5,9 @@ import React, { useState, useEffect } from 'react';
import DjangoCSRFToken from '@/components/DjangoCSRFToken';
import Logo from '@/components/Logo';
import { useSearchParams, useRouter } from 'next/navigation';
import InputTextIcon from '@/components/InputTextIcon';
import InputTextIcon from '@/components/Form/InputTextIcon';
import Loader from '@/components/Loader';
import Button from '@/components/Button';
import Button from '@/components/Form/Button';
import { FE_USERS_LOGIN_URL } from '@/utils/Url';
import { KeySquare } from 'lucide-react';
import { useCsrfToken } from '@/context/CsrfContext';
@ -33,21 +33,12 @@ export default function Page() {
resetPassword(uuid, data, csrfToken)
.then((data) => {
if (data.message !== '') {
logger.debug('Success:', data);
showNotification(
data.message,
'success',
'Succès'
);
showNotification(data.message, 'success', 'Succès');
router.push(`${FE_USERS_LOGIN_URL}`);
} else {
if (data.errorMessage) {
showNotification(
data.errorMessage,
'error',
'Erreur'
);
showNotification(data.errorMessage, 'error', 'Erreur');
} else if (data.errorFields) {
showNotification(
data.errorFields.password1 || data.errorFields.password2,

View File

@ -4,9 +4,9 @@ import React, { useState, useEffect } from 'react';
import DjangoCSRFToken from '@/components/DjangoCSRFToken';
import Logo from '@/components/Logo';
import { useSearchParams, useRouter } from 'next/navigation';
import InputTextIcon from '@/components/InputTextIcon';
import InputTextIcon from '@/components/Form/InputTextIcon';
import Loader from '@/components/Loader';
import Button from '@/components/Button';
import Button from '@/components/Form/Button';
import { User, KeySquare } from 'lucide-react';
import { FE_USERS_LOGIN_URL } from '@/utils/Url';
import { useCsrfToken } from '@/context/CsrfContext';
@ -36,22 +36,16 @@ export default function Page() {
.then((data) => {
logger.debug('Success:', data);
if (data.message !== '') {
showNotification(
data.message,
'success',
'Succès'
);
showNotification(data.message, 'success', 'Succès');
router.push(`${FE_USERS_LOGIN_URL}`);
} else {
if (data.errorMessage) {
showNotification(
data.errorMessage,
'error',
'Erreur'
);
showNotification(data.errorMessage, 'error', 'Erreur');
} else if (data.errorFields) {
showNotification(
data.errorFields.email || data.errorFields.password1 || data.errorFields.password2,
data.errorFields.email ||
data.errorFields.password1 ||
data.errorFields.password2,
'error',
'Erreur'
);