Skip to content

refonte(front): palette unique noir/blanc/bleu, sidebar, skeletons/loading, perf cache + server streaming#125

Merged
makcimerrr merged 10 commits into
mainfrom
refonte/frontend-dashboard
Jun 4, 2026
Merged

refonte(front): palette unique noir/blanc/bleu, sidebar, skeletons/loading, perf cache + server streaming#125
makcimerrr merged 10 commits into
mainfrom
refonte/frontend-dashboard

Conversation

@makcimerrr

Copy link
Copy Markdown
Owner

Refonte front du dashboard (FRONT ONLY — zéro logique de fetch modifiée)

Branche refonte/frontend-dashboard. Build Next vérifié OK (next build exit 0). Endpoints/services/requêtes inchangés.

Vagues

  1. Palette unique noir/blanc/bleu (sombre défaut + clair), tokens sémantiques success/warning/info, suppression des 6 thèmes + sélecteur, charts re-mappés.
  2. Sidebar + icônes : style épuré, icônes lucide, logo + favicon (grille bleue).
  3. Skeletons + loading : kit léger unifié + 25 loading.tsx (squelette instantané), gros skeleton allégé.
  4. Couleurs en dur → tokens (~55 fichiers).
  5. Archi : découpe monolithes (alternants 1329→321 l., planning 648→495 l.), primitives partagées, cleanup config.

Perf chargement

  • Cache client lib/client-cache.ts (stale-while-revalidate + dédup, sans dépendance) sur ~18 pages → retours/navigation instantanés.
  • Server streaming : analytics + history en Server Components (mêmes services).
  • Décascade planning (fetchs parallélisés).
  • Pages délicates traitées (student detail, détail alternant, messages assistant) en préservant les maj optimistes ; 01deck = Firebase (hors périmètre cache HTTP).
    🤖 Generated with Claude Code

makcimerrr and others added 10 commits June 4, 2026 16:57
- app-sidebar: tokens sidebar partout (bg-sidebar-accent + text-sidebar-primary
  + barre gauche bleue pour l'actif), titres de sections discrets (Onglets,
  Outils Zone01, Préférences), logo en pastille bleue, items 18px homogènes
- icons/zone-apps: retrait des fills verts/blancs en dur -> currentColor
  (les icônes héritent du token: bleu actif / muted sinon)
- bottom-nav + app-tabs: alignés sur les tokens (actif bleu)

S'adapte au retrait du theme-picker (contexte ui-preferences refondu sur la branche).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ession multi-thèmes

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ique)

~55 fichiers : code-reviews, planning (+ slotTypeConfig), students/skills/specialties/discord,
analytics, history, settings, employees, 01deck, word_assistant, alternants, hub/docs, charts.
Mapping : blue/cyan/indigo/violet->primary, emerald/green->success, amber/orange->warning,
red/rose->destructive, gray/zinc/slate->muted/border. Présentation uniquement, zéro logique/fetch.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… config

- alternants/page.tsx 1329->321 l. (6 sous-composants présentationnels _components/)
- planning/page.tsx 648->495 l. (PersonView/TableView extraites)
- primitives partagées components/dashboard/ (StatCard, FilterToolbar) ; FilterToolbar adoptée dans history
- suppression code mort config (page-old + 3 *-management anciens, 0 importeur)
Extraction structurelle/présentationnelle uniquement — state/fetch/handlers inchangés.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…te bleue)

- nav-apps: icônes d'app maison Zone01 -> lucide cohérentes (LayoutDashboard, GraduationCap, CalendarDays, Wrench, Layers, Signature, Network, Settings2, Settings)
- sidebar: logo = pastille bleue + LayoutDashboard (remplace l'ancien '01')
- favicon: app/icon.svg (carré bleu + grille dashboard), suppression de l'ancien favicon.ico

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… de l'icône dashboard)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…story en server streaming

Levier 1 — lib/client-cache.ts (stale-while-revalidate + dédup, sans dépendance) adopté
sur ~15 pages client (employees, alternants, config, assistant, word_assistant, students
discord/skills/specialties, code-reviews client) : retours/navigation instantanés, plus de
re-fetch identique. Levier 3 — planning: employees+schedules en parallèle (Promise.all).
Levier 2 — analytics & history convertis en Server Component (mêmes services getActivePromotions/
getEnrichedHistory) + îlot client : plus de fetch au montage. Mêmes endpoints/services/requêtes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…nt, messages assistant)

- students/[id] : useData pour /api/student/{id} + /api/zone01/external/{login} (fetchWithRetry),
  redirect-404 préservé, toggle alternant optimiste via override local + revalidation.
- alternants : détail (contracts/documents) en useData keyé par id -> réouverture instantanée ;
  refresh/ajout via mutateKey.
- assistant/[id] : historique en useData keyé par conversation (réouverture instantanée),
  state local conservé pour l'envoi optimiste + redirect-on-fail.
Mêmes endpoints/services/requêtes. 01deck = Firebase (hors périmètre du cache HTTP).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…es.ts)

Un fichier page Next.js ne peut exporter que le composant + la config de route.
Le split alternants exportait des interfaces/constantes depuis page.tsx -> build cassé.
Déplacé dans alternants/types.ts ; page + _components importent depuis ./types.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
admin-dashboard Ready Ready Preview, Comment Jun 4, 2026 7:24pm

@makcimerrr makcimerrr merged commit 427edca into main Jun 4, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant