From 3b8644bc4c92a6ed685cdec99e0f69a9284b6164 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 28 Nov 2025 20:25:33 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20d=C3=A9placer=20les=20statistiques=20da?= =?UTF-8?q?ns=20un=20modal=20popup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Créer un nouveau composant StatsModal pour afficher les statistiques - Ajouter une icône BarChart3 dans le header à côté du bouton de thème - Retirer le StatsDashboard de sa position sous le calendrier - Afficher les statistiques dans un modal au clic sur l'icône --- src/components/StatsModal.tsx | 31 +++++++++++++++++++++++++++++++ src/pages/Index.tsx | 23 +++++++++++++++++++---- 2 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 src/components/StatsModal.tsx diff --git a/src/components/StatsModal.tsx b/src/components/StatsModal.tsx new file mode 100644 index 0000000..2bfd938 --- /dev/null +++ b/src/components/StatsModal.tsx @@ -0,0 +1,31 @@ +import { + Dialog, + DialogContent, + DialogHeader, + DialogTitle, +} from "@/components/ui/dialog"; +import { StatsDashboard } from "./StatsDashboard"; +import { Note } from "@/services/NotesService"; +import { Todo } from "@/services/TodosService"; + +interface StatsModalProps { + open: boolean; + onOpenChange: (open: boolean) => void; + notes: Note[]; + todos: Todo[]; +} + +export function StatsModal({ open, onOpenChange, notes, todos }: StatsModalProps) { + return ( + + + + Statistiques + +
+ +
+
+
+ ); +} diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx index f6b22a9..7a0d7bb 100644 --- a/src/pages/Index.tsx +++ b/src/pages/Index.tsx @@ -15,7 +15,7 @@ import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, Command import { RichTextEditor } from "@/components/RichTextEditor"; import { PlusCircle, Search, User, LogOut, Settings, ChevronDown, Plus, Archive, Trash2, - Image as ImageIcon, CheckSquare, FileText, Rss, ExternalLink, RefreshCw, Key, Zap, Paperclip, X, Edit, Calendar as CalendarIcon, Tag as TagIcon, MessageSquare, Send, Check, ChevronsUpDown, Star, Activity, FileDown, LayoutGrid, List, Sparkles + Image as ImageIcon, CheckSquare, FileText, Rss, ExternalLink, RefreshCw, Key, Zap, Paperclip, X, Edit, Calendar as CalendarIcon, Tag as TagIcon, MessageSquare, Send, Check, ChevronsUpDown, Star, Activity, FileDown, LayoutGrid, List, Sparkles, BarChart3 } from "lucide-react"; import AuthService from "@/services/AuthService"; import AdminService from "@/services/AdminService"; @@ -42,6 +42,7 @@ import { KanbanBoard } from "@/components/KanbanBoard"; import { getSmartTagSuggestions } from "@/utils/smartTags"; import { QuickCaptureWidget } from "@/components/QuickCaptureWidget"; import { StatsDashboard } from "@/components/StatsDashboard"; +import { StatsModal } from "@/components/StatsModal"; import { KeyboardShortcutsHelp } from "@/components/KeyboardShortcutsHelp"; import { useKeyboardShortcuts, type KeyboardShortcut } from "@/hooks/useKeyboardShortcuts"; @@ -1093,6 +1094,15 @@ const Index = () => { Nouvelle Note + + {user && ( @@ -1262,9 +1272,6 @@ const Index = () => { )} - - {/* Statistics Dashboard */} - {/* Middle Column: Notes or Open Note */} @@ -3149,6 +3156,14 @@ const Index = () => { shortcuts={keyboardShortcuts} /> + {/* Statistics Modal */} + + {/* Quick Capture Widget */}