From a99b406eff80b4c24c048f6925baaac77baaea07 Mon Sep 17 00:00:00 2001
From: JavaZero <71128095+JavaZeroo@users.noreply.github.com>
Date: Tue, 22 Jul 2025 17:44:48 +0800
Subject: [PATCH] feat: make sidebar collapsible and sections foldable
---
src/App.jsx | 106 ++++++++++++++++----------
src/components/CollapsibleSection.jsx | 27 +++++++
src/components/ComparisonControls.jsx | 35 +++++----
src/components/FileList.jsx | 30 ++++----
src/components/FileUpload.jsx | 16 ++--
src/components/RegexControls.jsx | 35 +++++----
6 files changed, 157 insertions(+), 92 deletions(-)
create mode 100644 src/components/CollapsibleSection.jsx
diff --git a/src/App.jsx b/src/App.jsx
index 6f3a265..d38ee43 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -6,9 +6,13 @@ import ChartContainer from './components/ChartContainer';
import { ComparisonControls } from './components/ComparisonControls';
import { Header } from './components/Header';
import { FileConfigModal } from './components/FileConfigModal';
+import CollapsibleSection from './components/CollapsibleSection';
+import { ChevronLeft, ChevronRight } from 'lucide-react';
function App() {
const [uploadedFiles, setUploadedFiles] = useState([]);
+
+ const [sidebarVisible, setSidebarVisible] = useState(true);
// 全局解析配置状态
const [globalParsingConfig, setGlobalParsingConfig] = useState({
@@ -231,17 +235,25 @@ function App() {
)}
-
-
+
+ )}
-
@@ -395,6 +412,15 @@ function App() {
/>
+ {!sidebarVisible && (
+
+ )}
+
+
+ {title}
+
+
+
+
+ {children}
+
+
+ );
+}
diff --git a/src/components/ComparisonControls.jsx b/src/components/ComparisonControls.jsx
index e2661ee..d74bad6 100644
--- a/src/components/ComparisonControls.jsx
+++ b/src/components/ComparisonControls.jsx
@@ -1,9 +1,10 @@
import React from 'react';
import { BarChart2 } from 'lucide-react';
-export function ComparisonControls({
- compareMode,
- onCompareModeChange
+export function ComparisonControls({
+ compareMode,
+ onCompareModeChange,
+ showTitle = true
}) {
const modes = [
{ value: 'normal', label: '📊 Normal', description: '原始差值' },
@@ -13,19 +14,21 @@ export function ComparisonControls({
return (
-
-
-
- ⚖️ 对比模式
-
-
+ {showTitle && (
+
+
+
+ ⚖️ 对比模式
+
+
+ )}