Skip to content

Commit 0a57acf

Browse files
authored
Hide details panel on result change (#9)
It fixes the bug when the details panel is shown and the selected row is no longer available.
1 parent eb098b3 commit 0a57acf

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

src/components/result/ResultTable.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
TableRow,
66
} from "../ui/table";
77
import { TabularResult } from "../../lib/types";
8-
import React, { useState } from 'react';
8+
import React, { useEffect, useState } from 'react';
99
import { RowDetailPanel } from "./RowDetailPanel";
1010
import { ChevronDownIcon, ChevronRightIcon } from "@heroicons/react/24/solid";
1111

@@ -233,6 +233,11 @@ export function ResultTable({ tabularResult, onFilterChange, onOrderChange }: Re
233233
const [isDetailOpen, setIsDetailOpen] = useState(false);
234234
const [hoveredRow, setHoveredRow] = useState<number | null>(null);
235235

236+
useEffect(() => {
237+
setIsDetailOpen(false);
238+
setSelectedRow(null);
239+
}, [tabularResult]);
240+
236241
const handleRowClick = (row: number) => {
237242
setSelectedRow(row);
238243
setIsDetailOpen(true);

src/components/result/RowDetailPanel.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -281,13 +281,14 @@ export function RowDetailPanel({ tabularResult, selectedRow, onClose, isOpen }:
281281
}, 300);
282282
};
283283

284-
285-
286-
287284
if (selectedRow == null) {
288285
return null;
289286
}
290287

288+
if (selectedRow >= tabularResult.rows.length) {
289+
return null;
290+
}
291+
291292
return (
292293
<div className={`detail-panel ${isOpen ? 'open' : ''}`}>
293294
<div className="detail-panel-content">

0 commit comments

Comments
 (0)