Skip to content

Commit ec9192a

Browse files
committed
feat: enhance regex controls with multiple matching modes and improved configuration options
1 parent 3685ef5 commit ec9192a

File tree

3 files changed

+587
-61
lines changed

3 files changed

+587
-61
lines changed

src/App.jsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import { FileConfigModal } from './components/FileConfigModal';
99

1010
function App() {
1111
const [uploadedFiles, setUploadedFiles] = useState([]);
12-
const [lossRegex, setLossRegex] = useState('loss:\\s*([\\d.]+)');
13-
const [gradNormRegex, setGradNormRegex] = useState('grad norm:\\s*([\\d.]+)');
12+
const [lossRegex, setLossRegex] = useState('loss:\\s*([\\d.eE+-]+)');
13+
const [gradNormRegex, setGradNormRegex] = useState('grad[\\s_]norm:\\s*([\\d.eE+-]+)');
1414
const [showDataPoints, setShowDataPoints] = useState(true);
1515
const [compareMode, setCompareMode] = useState('normal');
1616
const [relativeBaseline, setRelativeBaseline] = useState(0.002);
@@ -27,8 +27,8 @@ function App() {
2727
...file,
2828
enabled: true,
2929
config: {
30-
lossRegex: 'loss:\\s*([\\d.]+)',
31-
gradNormRegex: 'grad norm:\\s*([\\d.]+)',
30+
lossRegex: 'loss:\\s*([\\d.eE+-]+)',
31+
gradNormRegex: 'grad[\\s_]norm:\\s*([\\d.eE+-]+)',
3232
dataRange: {
3333
start: '',
3434
end: '',
@@ -229,6 +229,7 @@ function App() {
229229
lossRegex={lossRegex}
230230
gradNormRegex={gradNormRegex}
231231
onRegexChange={handleRegexChange}
232+
uploadedFiles={uploadedFiles}
232233
/>
233234

234235
<FileList
@@ -238,7 +239,7 @@ function App() {
238239
onFileConfig={handleFileConfig}
239240
/>
240241

241-
{uploadedFiles.length === 2 && (
242+
{uploadedFiles.filter(file => file.enabled).length === 2 && (
242243
<ComparisonControls
243244
compareMode={compareMode}
244245
onCompareModeChange={setCompareMode}

src/components/ChartContainer.jsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -392,10 +392,11 @@ export default function ChartContainer({
392392
const gradNormDataArray = parsedData.map(file => file.gradNormData).filter(data => data && data.length > 0);
393393

394394
// 计算显示的图表数量来决定布局
395+
const enabledFiles = files.filter(file => file.enabled !== false);
395396
const showingLossCharts = showLoss && lossDataArray.length > 0;
396397
const showingGradNormCharts = showGradNorm && gradNormDataArray.length > 0;
397-
const showingLossComparison = showLoss && lossDataArray.length === 2;
398-
const showingGradNormComparison = showGradNorm && gradNormDataArray.length === 2;
398+
const showingLossComparison = showLoss && enabledFiles.length === 2 && lossDataArray.length === 2;
399+
const showingGradNormComparison = showGradNorm && enabledFiles.length === 2 && gradNormDataArray.length === 2;
399400

400401
// 计算实际显示的图表列数(不是图表总数)
401402
const showingLossColumn = showingLossCharts || showingLossComparison;
@@ -509,7 +510,7 @@ export default function ChartContainer({
509510
)}
510511

511512
{/* Statistics for comparison - spans all columns when showing both types */}
512-
{parsedData.length === 2 && (showingLossComparison || showingGradNormComparison) && (
513+
{enabledFiles.length === 2 && (showingLossComparison || showingGradNormComparison) && (
513514
<div className={`${useFullWidth ? '' : 'lg:col-span-2'} bg-white rounded-lg shadow-md p-3`}>
514515
<h3 className="text-base font-semibold text-gray-800 mb-2">差值分析统计</h3>
515516
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">

0 commit comments

Comments
 (0)