From f6e150ddae81717be6d37a8e6ecdd93b4b280949 Mon Sep 17 00:00:00 2001 From: Azmog <80716388+AzmogEx@users.noreply.github.com> Date: Thu, 18 Jun 2026 23:34:01 +0200 Subject: [PATCH] feat(frontend): convertit l'ensemble des pages et composants au DSFR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - composants UI (Input, Card, Badge, Modal, ConfirmDialog, Slider, Skeleton, ThemeToggle) + Sidebar - pages auth (connexion, inscription) - pages publiques (informations, détail, contacts urgence, mentions, RGPD) - espace membre (dashboard, journal, wizard saisie via fr-stepper, rapports, profil) + composants tracker (EditSaisieModal, EmotionPicker, TrackerTimeline, EmotionChart) - back-office admin (dashboard, utilisateurs, contenus, émotions) Suppression de Tailwind candlelight/malachite + lucide-react. Build OK (20 routes). Co-Authored-By: Claude Opus 4.8 (1M context) --- .../src/app/(admin)/admin/contenus/page.tsx | 195 +++++----- .../src/app/(admin)/admin/dashboard/page.tsx | 117 +++--- .../src/app/(admin)/admin/emotions/page.tsx | 366 +++++++++++------- .../app/(admin)/admin/utilisateurs/page.tsx | 199 +++++----- frontend/src/app/(admin)/layout.tsx | 18 +- frontend/src/app/(auth)/connexion/page.tsx | 150 ++++--- frontend/src/app/(auth)/inscription/page.tsx | 323 ++++++++-------- frontend/src/app/(auth)/layout.tsx | 13 + .../src/app/(protected)/dashboard/page.tsx | 319 ++++++++------- .../journal/nouvelle-saisie/page.tsx | 252 ++++++------ frontend/src/app/(protected)/journal/page.tsx | 195 +++++----- .../app/(protected)/journal/rapports/page.tsx | 281 +++++++------- frontend/src/app/(protected)/profil/page.tsx | 359 ++++++++++------- .../app/(public)/contacts-urgence/page.tsx | 86 ++-- .../app/(public)/informations/[slug]/page.tsx | 123 +++--- .../src/app/(public)/informations/page.tsx | 106 ++--- .../app/(public)/mentions-legales/page.tsx | 100 ++--- .../politique-de-confidentialite/page.tsx | 156 +++----- .../components/features/EditSaisieModal.tsx | 110 +++--- .../src/components/features/EmotionChart.tsx | 25 +- .../src/components/features/EmotionPicker.tsx | 121 +++--- .../components/features/TrackerTimeline.tsx | 161 ++++---- frontend/src/components/layout/Sidebar.tsx | 134 +++---- frontend/src/components/ui/Badge.tsx | 50 ++- frontend/src/components/ui/Card.tsx | 27 +- frontend/src/components/ui/ConfirmDialog.tsx | 55 +-- frontend/src/components/ui/Input.tsx | 32 +- frontend/src/components/ui/Modal.tsx | 87 +++-- frontend/src/components/ui/Skeleton.tsx | 24 +- frontend/src/components/ui/Slider.tsx | 56 +-- frontend/src/components/ui/ThemeToggle.tsx | 34 +- 31 files changed, 2205 insertions(+), 2069 deletions(-) create mode 100644 frontend/src/app/(auth)/layout.tsx diff --git a/frontend/src/app/(admin)/admin/contenus/page.tsx b/frontend/src/app/(admin)/admin/contenus/page.tsx index 340d0a8..a103f3b 100644 --- a/frontend/src/app/(admin)/admin/contenus/page.tsx +++ b/frontend/src/app/(admin)/admin/contenus/page.tsx @@ -1,13 +1,10 @@ 'use client'; import { useEffect, useState } from 'react'; -import { Plus, Edit2, Trash2 } from 'lucide-react'; import api from '@/lib/api'; import type { Feed } from '@/types'; -import Card from '@/components/ui/Card'; import Button from '@/components/ui/Button'; import Input from '@/components/ui/Input'; -import Badge from '@/components/ui/Badge'; import Modal from '@/components/ui/Modal'; import toast from 'react-hot-toast'; @@ -90,92 +87,107 @@ export default function AdminContenusPage() { return (
-
-
-

- Contenus -

-

+

+
+

Contenus

+

Gérez les articles et ressources de la plateforme

- +
+ +
{loading ? ( -
- {Array.from({ length: 3 }).map((_, i) => ( - -
-
- - ))} -
+

Chargement…

) : feeds.length === 0 ? ( - -

Aucun article

- -
+
+

Aucun article pour le moment.

+ +
) : ( -
- {feeds.map((feed) => ( - -
-
-

- {feed.titre} -

- - {feed.est_publie ? 'Publié' : 'Brouillon'} - -
-

- /{feed.slug} · Ordre: {feed.ordre} -

-
-
- - -
-
- ))} +
+ + + + + + + + + + + + {feeds.map((feed) => ( + + + + + + + + ))} + +
TitreSlugOrdreStatutActions
{feed.titre}/{feed.slug}{feed.ordre} + + {feed.est_publie ? 'Publié' : 'Brouillon'} + + +
    +
  • + +
  • +
  • + +
  • +
+
)} {/* Modal création/édition */} setModalOpen(false)} title={editingFeed ? 'Modifier l\'article' : 'Nouvel article'} size="lg"> -
+ setForm({ ...form, titre: e.target.value })} required /> -
-