diff --git a/client/src/App.tsx b/client/src/App.tsx index 095879c..93550cc 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -6,6 +6,8 @@ import ErrorBoundary from "./components/ErrorBoundary"; import { ThemeProvider } from "./contexts/ThemeContext"; import { ParametresProvider } from "./contexts/ParametresContext"; import { AnneeProvider } from "./contexts/AnneeContext"; +import { ImportModalProvider, useImportModal } from "./contexts/ImportModalContext"; +import { ImportModal } from "./components/ImportModal"; import Home from "./pages/Home"; import Parametres from "./pages/Parametres"; import Budget2027 from "./pages/Budget2027"; @@ -32,17 +34,26 @@ function Router() { ); } +// Rendu de la modale au niveau racine (hors de tout overflow:hidden) +function GlobalModals() { + const { open, closeModal } = useImportModal(); + return ; +} + function App() { return ( - - - - - - + + + + + + + + + diff --git a/client/src/components/AppSidebar.tsx b/client/src/components/AppSidebar.tsx index 2072442..83b69a2 100644 --- a/client/src/components/AppSidebar.tsx +++ b/client/src/components/AppSidebar.tsx @@ -13,7 +13,7 @@ // └── Paramètres → /parametres import { useState } from 'react'; -import { ImportModal } from './ImportModal'; +import { useImportModal } from '../contexts/ImportModalContext'; import { useLocation } from 'wouter'; import { BarChart3, @@ -205,7 +205,7 @@ interface AppSidebarProps { export function AppSidebar({ collapsed = false, onToggle }: AppSidebarProps) { const [location, navigate] = useLocation(); const [openMenus, setOpenMenus] = useState>(() => getInitialOpenSections(location)); - const [showImport, setShowImport] = useState(false); + const { openModal: openImportModal } = useImportModal(); // Mode accordéon : ferme les autres sections du même niveau lors de l'ouverture const toggleSection = (id: string) => { @@ -392,7 +392,7 @@ export function AppSidebar({ collapsed = false, onToggle }: AppSidebarProps) {
{/* Bouton Imports & Données */} - {/* Modale d'import */} - setShowImport(false)} />