diff --git a/src/components/auth/LocalLoginForm.tsx b/src/components/auth/LocalLoginForm.tsx index c2403b3..430f076 100644 --- a/src/components/auth/LocalLoginForm.tsx +++ b/src/components/auth/LocalLoginForm.tsx @@ -1,5 +1,6 @@ import React, { useState } from 'react'; import { Button } from '@/components/ui/Button'; +import { Input } from '../ui/Input'; interface LocalLoginFormProps { onSubmit: (email: string, pass: string) => void; @@ -20,10 +21,9 @@ export const LocalLoginForm: React.FC = ({ onSubmit, isLoad
- setEmail(e.target.value)} - className="block w-full rounded-md border border-slate-300 px-3 py-2 shadow-sm focus:border-blue-900 focus:ring-blue-900 sm:text-sm" />
@@ -31,10 +31,9 @@ export const LocalLoginForm: React.FC = ({ onSubmit, isLoad
- setPassword(e.target.value)} - className="block w-full rounded-md border border-slate-300 px-3 py-2 shadow-sm focus:border-blue-900 focus:ring-blue-900 sm:text-sm" + value={password} onChange={(e) => setPassword(e.target.value)} />
diff --git a/src/components/ui/Badge.tsx b/src/components/ui/Badge.tsx new file mode 100644 index 0000000..00bd24e --- /dev/null +++ b/src/components/ui/Badge.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import { cn } from '@/utils/utils'; + +interface BadgeProps { + className?: string; + name: string +} + +export const StatusBadge: React.FC = ({ className, name }) => { + + return ( +
+ {name} +
+ ); +}; + +export default StatusBadge; \ No newline at end of file diff --git a/src/components/ui/Card.tsx b/src/components/ui/Card.tsx index df858c0..8ee89ca 100644 --- a/src/components/ui/Card.tsx +++ b/src/components/ui/Card.tsx @@ -43,7 +43,7 @@ export const CardHeader = React.forwardRef (
) diff --git a/src/components/ui/LogoGise.tsx b/src/components/ui/LogoGise.tsx new file mode 100644 index 0000000..b40f817 --- /dev/null +++ b/src/components/ui/LogoGise.tsx @@ -0,0 +1,20 @@ +export function LogoGise(){ + return( +
+
+
+ + + +
+
+

+ AEGIS by GISE +

+

+ Accès restreint +

+
+ ); +}; +export default LogoGise; \ No newline at end of file diff --git a/src/components/ui/StatusBadge.tsx b/src/components/ui/StatusBadge.tsx index 010be32..347ce94 100644 --- a/src/components/ui/StatusBadge.tsx +++ b/src/components/ui/StatusBadge.tsx @@ -1,5 +1,3 @@ -// Fichier : src/components/ui/StatusBadge.tsx - import React from 'react'; import { cn } from '@/utils/utils'; import type { AegisStatus } from '@/types/Status'; diff --git a/src/components/widgets/AccessWidget.tsx b/src/components/widgets/AccessWidget.tsx new file mode 100644 index 0000000..4c54c76 --- /dev/null +++ b/src/components/widgets/AccessWidget.tsx @@ -0,0 +1,43 @@ +import { Card, CardContent, CardHeader } from '@/components/ui/Card'; +import { Lock } from "lucide-react"; + +export function AccessWidget() { + + return ( + + +

Sécurité de l'accès

+
+ + + {/* MFA Status */} +
+
+

Authentification à double facteur (MFA)

+

Exigée par les politiques de sécurité GISE

+
+ + + Actif + +
+ +
+ +
+ + {/* Mot de passe */} +
+

Mot de passe institutionnel

+

Dernière modification : Il y a 43 jours

+ +
+
+
+ ); +} +export default AccessWidget; \ No newline at end of file diff --git a/src/components/widgets/InformationWidget.tsx b/src/components/widgets/InformationWidget.tsx new file mode 100644 index 0000000..ea59a71 --- /dev/null +++ b/src/components/widgets/InformationWidget.tsx @@ -0,0 +1,37 @@ +import { Card, CardContent, CardHeader } from '@/components/ui/Card'; +import { Building } from "lucide-react"; + +export function InformationWidget() { + return ( + + +

+ + Profil de l'Organisation +

+
+ + +
+
+
Entité Légale
+
Cabinet Juridique Example & Associés
+
+
+
Administrateur du compte
+
Direction Générale (direction@example.com)
+
+
+
Niveau d'Infogérance (SLA)
+
+ VIP PLATINUM + Couverture 24/7 (99.99%) +
+
+
+
+
+ ); +} + +export default InformationWidget; \ No newline at end of file diff --git a/src/pages/AccountSettings.tsx b/src/pages/AccountSettings.tsx index 2b893cd..3c196f3 100644 --- a/src/pages/AccountSettings.tsx +++ b/src/pages/AccountSettings.tsx @@ -1,88 +1,26 @@ +import PageHeader from "@/components/ui/PageHeader"; +import AccessWidget from "@/components/widgets/AccessWidget"; +import InformationWidget from "@/components/widgets/InformationWidget"; + export default function AccountSettings() { return ( -
- - {/* Header */} -
-
-
-

Paramètres du compte

-

Gestion de la sécurité et informations contractuelles

-
-
-
+
+ {/* Contenu Principal */} -
- +
+ {/* Header */} + +
- + {/* Colonne 1 : Sécurité */} -
-
-

- - Sécurité de l'accès -

- -
- {/* MFA Status */} -
-
-

Authentification à double facteur (MFA)

-

Exigée par les politiques de sécurité GISE

-
- - - Actif - -
- -
- -
- - {/* Mot de passe */} -
-

Mot de passe institutionnel

-

Dernière modification : Il y a 43 jours

- -
-
-
-
+ {/* Colonne 2 : Organisation & Contrat */} -
-
-

- - Profil de l'Organisation -

- -
-
-
Entité Légale
-
Cabinet Juridique Example & Associés
-
-
-
Administrateur du compte
-
Direction Générale (direction@example.com)
-
-
-
Niveau d'Infogérance (SLA)
-
- VIP PLATINUM - Couverture 24/7 (99.99%) -
-
-
-
-
+
diff --git a/src/pages/DocumentVault.tsx b/src/pages/DocumentVault.tsx index 70cda68..6a61374 100644 --- a/src/pages/DocumentVault.tsx +++ b/src/pages/DocumentVault.tsx @@ -17,21 +17,12 @@ export default function DocumentVault() {
{/* Barre de recherche (Visuelle) */} -
-
-
- - - -
- setSearchTerm(e.target.value)} - /> -
-
+ setSearchTerm(e.target.value)} + /> {/* Liste des Documents (La Carte) */} diff --git a/src/pages/Login.tsx b/src/pages/Login.tsx index 6e932bf..0eaa153 100644 --- a/src/pages/Login.tsx +++ b/src/pages/Login.tsx @@ -2,42 +2,32 @@ import { useLoginFlow } from '@/hooks/useLoginFlow'; import { LocalLoginForm } from '@/components/auth/LocalLoginForm'; import { MfaForm } from '@/components/auth/MfaForm'; import { Card, CardContent } from '@/components/ui/Card'; +import LogoGise from '@/components/ui/LogoGise'; +import { Button } from '@/components/ui/Button'; +import { GlobeLock } from 'lucide-react'; +import Badge from '@/components/ui/Badge'; interface LoginProps { onLoginSuccess: () => void; } export default function Login({ onLoginSuccess }: LoginProps) { - const { - step, isLoading, error, mfaConfig, - loginWithZitadel, loginWithLocal, verifyMfa, cancelMfa + const { + step, isLoading, error, mfaConfig, + loginWithZitadel, loginWithLocal, verifyMfa, cancelMfa } = useLoginFlow(onLoginSuccess); return ( -
- +
+ {/* HEADER LOGO */} -
-
-
- - - -
-
-

- AEGIS by GISE -

-

- Accès restreint -

-
+ {/* BOÎTE CENTRALE DÉCLINÉE AVEC NOTRE OBJET CARD */} -
- +
+ - + {/* AFFICHAGE DES ERREURS GLOBALES */} {error && (
@@ -47,32 +37,28 @@ export default function Login({ onLoginSuccess }: LoginProps) { {/* ROUTAGE INTERNE DES ÉTAPES */} {step === 1 ? ( -
- +
- Ou via vos identifiants locaux +
) : ( -