@@ -4,7 +4,11 @@ import { state } from "../App";
44import { EvaluationRow } from "./EvaluationRow" ;
55import Button from "./Button" ;
66import Select from "./Select" ;
7- import TableContainer , { TableHeader , TableHead } from "./TableContainer" ;
7+ import {
8+ TableHeader ,
9+ TableHead ,
10+ TableBody as TableBodyBase ,
11+ } from "./TableContainer" ;
812
913const TableBody = observer (
1014 ( { currentPage, pageSize } : { currentPage : number ; pageSize : number } ) => {
@@ -13,23 +17,23 @@ const TableBody = observer(
1317 const paginatedData = state . sortedDataset . slice ( startIndex , endIndex ) ;
1418
1519 return (
16- < tbody className = "divide-y divide-gray-200" >
20+ < TableBodyBase >
1721 { paginatedData . map ( ( row , index ) => (
1822 < EvaluationRow
1923 key = { row . rollout_id }
2024 row = { row }
2125 index = { startIndex + index }
2226 />
2327 ) ) }
24- </ tbody >
28+ </ TableBodyBase >
2529 ) ;
2630 }
2731) ;
2832
2933// Dedicated component for rendering the list - following MobX best practices
3034export const EvaluationTable = observer ( ( ) => {
3135 const [ currentPage , setCurrentPage ] = useState ( 1 ) ;
32- const [ pageSize , setPageSize ] = useState ( 50 ) ;
36+ const [ pageSize , setPageSize ] = useState ( 25 ) ;
3337
3438 const totalRows = state . sortedDataset . length ;
3539 const totalPages = Math . ceil ( totalRows / pageSize ) ;
@@ -51,8 +55,8 @@ export const EvaluationTable = observer(() => {
5155 } , [ totalRows ] ) ;
5256
5357 return (
54- < TableContainer >
55- { /* Pagination Controls */ }
58+ < div className = "bg-white border border-gray-200" >
59+ { /* Pagination Controls - Fixed outside scrollable area */ }
5660 < div className = "px-3 py-2 border-b border-gray-200 bg-gray-50 flex items-center justify-between" >
5761 < div className = "flex items-center gap-4" >
5862 < div className = "text-xs text-gray-600" >
@@ -111,23 +115,26 @@ export const EvaluationTable = observer(() => {
111115 </ div >
112116 </ div >
113117
114- < table className = "w-full min-w-max" >
115- { /* Table Header */ }
116- < TableHead >
117- < tr >
118- < TableHeader className = "w-8" > </ TableHeader >
119- < TableHeader > Name</ TableHeader >
120- < TableHeader > Status</ TableHeader >
121- < TableHeader > Rollout ID</ TableHeader >
122- < TableHeader > Model</ TableHeader >
123- < TableHeader > Score</ TableHeader >
124- < TableHeader > Created</ TableHeader >
125- </ tr >
126- </ TableHead >
118+ { /* Table Container - Only this area scrolls */ }
119+ < div className = "overflow-x-auto" >
120+ < table className = "w-full min-w-max" >
121+ { /* Table Header */ }
122+ < TableHead >
123+ < tr >
124+ < TableHeader className = "w-8" > </ TableHeader >
125+ < TableHeader > Name</ TableHeader >
126+ < TableHeader > Status</ TableHeader >
127+ < TableHeader > Rollout ID</ TableHeader >
128+ < TableHeader > Model</ TableHeader >
129+ < TableHeader > Score</ TableHeader >
130+ < TableHeader > Created</ TableHeader >
131+ </ tr >
132+ </ TableHead >
127133
128- { /* Table Body */ }
129- < TableBody currentPage = { currentPage } pageSize = { pageSize } />
130- </ table >
131- </ TableContainer >
134+ { /* Table Body */ }
135+ < TableBody currentPage = { currentPage } pageSize = { pageSize } />
136+ </ table >
137+ </ div >
138+ </ div >
132139 ) ;
133140} ) ;
0 commit comments