diff --git a/Cargo.toml b/Cargo.toml index 5822712..47a476e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -67,6 +67,15 @@ console_error_panic_hook = { version = "0.1", optional = true } # Pont entre Rust/WASM et JavaScript : permet d'appeler du JS depuis Rust wasm-bindgen = { version = "0.2", optional = true } +# Configuration Leptos lue par get_configuration(Some("Cargo.toml")) +# Définit les chemins des fichiers compilés et l'adresse du serveur. +[package.metadata.leptos] +output-name = "rust-ipam" # Nom de base des fichiers .wasm et .js générés +site-root = "target/site" # Dossier racine des fichiers compilés par trunk +site-pkg-dir = "pkg" # Sous-dossier des assets WASM/JS dans site-root +site-addr = "127.0.0.1:3000" # Adresse d'écoute du serveur Axum +reload-port = 3001 # Port WebSocket pour le hot-reload en développement + # Profil de compilation WASM optimisé pour réduire la taille du fichier .wasm # Un fichier WASM plus petit = page qui charge plus vite [profile.wasm-release] diff --git a/src/app.rs b/src/app.rs index 3a033d4..3484308 100644 --- a/src/app.rs +++ b/src/app.rs @@ -1,10 +1,8 @@ -// app.rs — Composant racine de l'application Leptos +// app.rs — Composants racine de l'application Leptos // -// Ce composant est le point d'entrée de toute l'interface. -// Il définit : -// - Les métadonnées globales (title, CSS...) -// - Le routeur : quelle page afficher selon l'URL -// - Les contextes globaux partagés (à ajouter plus tard : auth, thème...) +// Ce fichier contient deux composants : +// - `Shell` : le document HTML complet (head + body) — SSR uniquement +// - `App` : le contenu de la page avec le routeur — partagé SSR + WASM use leptos::prelude::*; use leptos_meta::*; @@ -15,44 +13,88 @@ use leptos_router::{ use crate::client::home::HomePage; -// `#[component]` est un attribut procédural Leptos. -// Il transforme une fonction Rust normale en composant réutilisable et traçable. +// Shell — document HTML complet rendu par le serveur Axum // -// Règle de nommage : toujours PascalCase pour les composants Leptos. +// Ce composant n'existe qu'en mode SSR (`#[cfg(feature = "ssr")]`). +// Il fournit la structure HTML de base que leptos_meta ne peut pas créer seul : +// un
et un valides. Sans ça, les composants