mirror of
https://github.com/R0m1k3/CollectFlow.git
synced 2026-10-19 05:06:56 +02:00
Interface : passage de Next.js à une SPA React (Vite + React Router)
Le serveur étant réécrit en Rust, l'interface devient une application
React 19 côté navigateur, compilée par Vite dans dist/ et servie par le
serveur Rust (STATIC_DIR). Composants, styles et logique cliente
inchangés : seule la plomberie Next.js est remplacée.
- Outillage : Vite 8, @vitejs/plugin-react, Tailwind 4 via PostCSS,
React Router 7 (mode déclaratif), index.html, src/main.tsx, alias @/,
proxy /api → localhost:5643 en développement, ESLint sans plugin Next.
- Adaptations (src/shims) : next/link, next/navigation (useRouter avec
refresh, usePathname/useSearchParams suivant aussi les replaceState de
l'interface), next-auth/react (session lue sur /api/auth/session,
déconnexion par /api/auth/logout).
- Actions serveur → POST /api/actions/{nom} (src/lib/rpc.ts) : mêmes noms,
mêmes signatures, mêmes types. La connexion passe par /api/auth/login.
- Pages → table des routes (src/router.tsx) : données lues sur
/api/pages/{nom} avec Suspense (loading.tsx au premier chargement,
page conservée pendant une navigation ou un router.refresh()),
error.tsx en frontière d'erreur, not-found.tsx, titres d'onglet,
pages d'administration réservées aux administrateurs.
- Suppression du code serveur Next.js (routes /api, accès base, Qlik,
authentification, middleware…) ; types utiles à l'interface recopiés
dans src/types/ff.ts.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LG2LLJuswrrTTPKJmunEVf
This commit is contained in:
170 files changed
+2528
-24445
No files matched your search
@@ -0,0 +1,38 @@
|
||||
import { fileURLToPath, URL } from "node:url";
|
||||
import { defineConfig } from "vite";
|
||||
import react from "@vitejs/plugin-react";
|
||||
|
||||
const src = (chemin: string) => fileURLToPath(new URL(`./src/${chemin}`, import.meta.url));
|
||||
|
||||
/**
|
||||
* Interface CollectFlow : SPA React compilée dans `dist/`, servie par le
|
||||
* serveur Rust (`STATIC_DIR`). Tailwind 4 passe par PostCSS (postcss.config.mjs).
|
||||
*
|
||||
* Les modules `next/link`, `next/navigation` et `next-auth/react` sont
|
||||
* remplacés par de petites adaptations à React Router et à l'authentification
|
||||
* du serveur Rust (src/shims) : les composants restent inchangés.
|
||||
*/
|
||||
export default defineConfig({
|
||||
plugins: [react()],
|
||||
resolve: {
|
||||
alias: [
|
||||
{ find: /^next\/link$/, replacement: src("shims/next-link.tsx") },
|
||||
{ find: /^next\/navigation$/, replacement: src("shims/next-navigation.ts") },
|
||||
{ find: /^next-auth\/react$/, replacement: src("shims/next-auth-react.ts") },
|
||||
{ find: /^@\//, replacement: src("") },
|
||||
],
|
||||
},
|
||||
server: {
|
||||
port: 3000,
|
||||
proxy: {
|
||||
"/api": { target: "http://localhost:5643", changeOrigin: false },
|
||||
},
|
||||
},
|
||||
build: {
|
||||
outDir: "dist",
|
||||
emptyOutDir: true,
|
||||
sourcemap: false,
|
||||
// exceljs et jspdf (chargés à la demande) dépassent le seuil par défaut.
|
||||
chunkSizeWarningLimit: 1000,
|
||||
},
|
||||
});
|
||||
Reference in new issue
Block a user