@@ -22,9 +22,9 @@ import {
2222} from "@/components/ui/table" ;
2323
2424interface BrowseProps {
25- setSelectedTable : ( value : SetStateAction < string | null > ) => void ;
25+ setSelectedTable : ( value : SetStateAction < string > ) => void ;
2626 tables : string [ ] ;
27- selectedTable : string | null ;
27+ selectedTable : string ;
2828 records : Columns ;
2929}
3030
@@ -38,7 +38,6 @@ export default function Browse(props: BrowseProps) {
3838 const endIndex = startIndex + ROWS_PER_PAGE ;
3939
4040 const totalPages = Math . ceil (
41- // @ts -ignore
4241 records [ selectedTable ] ?. [ Object . keys ( records [ selectedTable ] ) [ 0 ] ] ?. length /
4342 ROWS_PER_PAGE
4443 ) ;
@@ -53,7 +52,10 @@ export default function Browse(props: BrowseProps) {
5352 { selectedTable && (
5453 < Select
5554 value = { selectedTable }
56- onValueChange = { ( table : string ) => setSelectedTable ( table ) }
55+ onValueChange = { ( table : string ) => {
56+ setCurrentPage ( 1 ) ;
57+ setSelectedTable ( table ) ;
58+ } }
5759 >
5860 < SelectTrigger className = "w-[180px]" >
5961 < SelectValue placeholder = "Select Table" />
@@ -77,51 +79,63 @@ export default function Browse(props: BrowseProps) {
7779 0 } { " " }
7880 Rows
7981 </ span >
82+ < span className = "text-sm" >
83+ ( Page { currentPage } of { totalPages } )
84+ </ span >
8085 </ div >
81- < div className = "mt-2 h-[420px] overflow-auto" >
82- { selectedTable && records [ selectedTable ] && (
83- < >
84- < Table >
85- < TableHeader >
86- < TableRow >
87- { Object . keys ( records [ selectedTable ] ) . map ( ( column , index ) => (
88- < TableHead key = { index } > { column } </ TableHead >
89- ) ) }
90- </ TableRow >
91- </ TableHeader >
92- < TableBody >
93- { records [ selectedTable ] [ Object . keys ( records [ selectedTable ] ) [ 0 ] ]
94- . slice ( startIndex , endIndex )
95- . map ( ( _ , rowIndex ) => (
96- < TableRow key = { rowIndex } >
97- { Object . keys ( records [ selectedTable ] ) . map (
98- ( column , columnIndex ) => (
99- < TableCell
100- key = { columnIndex }
101- className = "max-w-[150px] truncate"
102- >
103- < span >
104- {
105- records [ selectedTable ] [ column ] [
106- rowIndex + startIndex
107- ]
108- }
109- </ span >
110- </ TableCell >
111- )
112- ) }
113- </ TableRow >
114- ) ) }
115- </ TableBody >
116- </ Table >
117- </ >
86+ < section className = "flex flex-col" >
87+ < div className = "mt-2 overflow-auto mb-[55px]" >
88+ { selectedTable && records [ selectedTable ] && (
89+ < >
90+ < Table >
91+ < TableHeader >
92+ < TableRow >
93+ { Object . keys ( records [ selectedTable ] ) . map (
94+ ( column , index ) => (
95+ < TableHead key = { index } > { column } </ TableHead >
96+ )
97+ ) }
98+ </ TableRow >
99+ </ TableHeader >
100+ < TableBody >
101+ { records [ selectedTable ] [
102+ Object . keys ( records [ selectedTable ] ) [ 0 ]
103+ ]
104+ . slice ( startIndex , endIndex )
105+ . map ( ( _ , rowIndex ) => (
106+ < TableRow key = { rowIndex } >
107+ { Object . keys ( records [ selectedTable ] ) . map (
108+ ( column , columnIndex ) => (
109+ < TableCell
110+ key = { columnIndex }
111+ className = "max-w-[150px] truncate"
112+ >
113+ < span >
114+ {
115+ records [ selectedTable ] [ column ] [
116+ rowIndex + startIndex
117+ ]
118+ }
119+ </ span >
120+ </ TableCell >
121+ )
122+ ) }
123+ </ TableRow >
124+ ) ) }
125+ </ TableBody >
126+ </ Table >
127+ </ >
128+ ) }
129+ </ div >
130+
131+ { totalPages > 1 && (
132+ < Pagination
133+ currentPage = { currentPage }
134+ totalPages = { totalPages }
135+ onPageChange = { handleChangePage }
136+ />
118137 ) }
119- </ div >
120- < Pagination
121- currentPage = { currentPage }
122- totalPages = { totalPages }
123- onPageChange = { handleChangePage }
124- />
138+ </ section >
125139 </ div >
126140 ) ;
127141}
@@ -137,11 +151,12 @@ const Pagination: React.FC<PaginationProps> = ({
137151 totalPages,
138152 onPageChange,
139153} ) => {
140- // @ts -ignore
141- const pageNumbers = [ ...Array ( totalPages ) . keys ( ) ] . map ( ( num ) => num + 1 ) ;
142-
154+ const pageNumbers = Array . from (
155+ { length : totalPages } ,
156+ ( _ , index ) => index + 1
157+ ) ;
143158 return (
144- < ul className = "flex overflow-x-scroll" >
159+ < ul className = "flex overflow-x-scroll fixed bottom-0 w-full " >
145160 { pageNumbers . map ( ( page ) => (
146161 < li
147162 key = { page }
0 commit comments