From 333ce5947a80b93effd39b6fcb11760e42671609 Mon Sep 17 00:00:00 2001 From: caty21 Date: Mon, 29 Jun 2026 17:58:21 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20onglet=20Id=C3=A9es=20=E2=80=94=202=20e?= =?UTF-8?q?spaces=20recherche=20avec=20chart=20+=20notes=20persistantes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - nouvel onglet πŸ’‘ IdΓ©es entre MarchΓ©s et Calendrier - 2 slots indΓ©pendants (Recherche A / B) avec : - graphique TradingView (symbole libre + dropdown 15 paires, 4 timeframes) - zone de notes avec titre, texte, coller image (Ctrl+V), β†— agrandir plein Γ©cran - persistance automatique localStorage (symbole, interval, notes, images) - bouton Archiver : sauvegarde + reset du slot - panel Archives collapsible avec aperΓ§u notes et miniatures images Co-Authored-By: Claude Sonnet 4.6 --- app/page.tsx | 8 +- components/IdeesTab.tsx | 397 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 403 insertions(+), 2 deletions(-) create mode 100644 components/IdeesTab.tsx diff --git a/app/page.tsx b/app/page.tsx index d59bd11..47fa569 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -14,6 +14,7 @@ import YieldsTab from "@/components/YieldsTab"; import NewsTab from "@/components/NewsTab"; import CotTab from "@/components/CotTab"; import ReportTab from "@/components/ReportTab"; +import IdeesTab from "@/components/IdeesTab"; import { TvAdvancedChart } from "@/components/TvChart"; import type { CalendarEvent } from "@/app/api/calendar/route"; import type { NewsItem } from "@/app/api/news/route"; @@ -29,7 +30,7 @@ export default function Dashboard() { const [cot, setCot] = useState | null>(null); const [calEvents, setCalEvents] = useState([]); const [nextWeekAvail, setNextWeekAvail] = useState(false); - const [activeTab, setActiveTab] = useState<"dashboard" | "calendar" | "pairs" | "yields" | "news" | "cot" | "report" | "markets">("dashboard"); + const [activeTab, setActiveTab] = useState<"dashboard" | "calendar" | "pairs" | "yields" | "news" | "cot" | "report" | "markets" | "idees">("dashboard"); const [newsItems, setNewsItems] = useState([]); const [newsLoading, setNewsLoading] = useState(false); const [cotHistory, setCotHistory] = useState(null); @@ -340,7 +341,7 @@ export default function Dashboard() { {/* Tab navigation */}
- {(["dashboard", "markets", "calendar", "pairs", "yields", "news", "cot", "report"] as const).map((tab) => ( + {(["dashboard", "markets", "idees", "calendar", "pairs", "yields", "news", "cot", "report"] as const).map((tab) => ( +
+