@@ -5,18 +5,34 @@ import { useDebouncedValue, useDocumentTitle } from '@mantine/hooks';
5
5
import { JournalListSkeleton } from '../components/skeletons/journalListSkeleton' ;
6
6
import { useAtomValue } from 'jotai/index' ;
7
7
import { breadcrumbAtom , titleAtom } from '../states/basic' ;
8
- import { groupedJournalsAtom , journalAtom , journalFetcher , journalKeywordAtom , journalLinksAtom , journalPageAtom , journalTagsAtom } from '../states/journals' ;
8
+ import {
9
+ groupedJournalsAtom ,
10
+ journalAtom ,
11
+ journalFetcher ,
12
+ journalKeywordAtom ,
13
+ journalLinksAtom ,
14
+ journalPageAtom ,
15
+ journalTagsAtom ,
16
+ } from '../states/journals' ;
9
17
import { useAtom , useSetAtom } from 'jotai' ;
10
18
import { loadable_unwrap } from '../states' ;
11
19
import { selectAtom } from 'jotai/utils' ;
12
20
import { Input } from '@/components/ui/input' ;
13
21
import { Button } from '@/components/ui/button' ;
14
22
import { Table , TableBody , TableCell , TableHead , TableHeader , TableRow } from '@/components/ui/table' ;
15
- import { Pagination , PaginationContent , PaginationItem , PaginationLink , PaginationNext , PaginationPrevious } from '@/components/ui/pagination' ;
23
+ import {
24
+ Pagination ,
25
+ PaginationContent ,
26
+ PaginationItem ,
27
+ PaginationLink ,
28
+ PaginationNext ,
29
+ PaginationPrevious ,
30
+ } from '@/components/ui/pagination' ;
16
31
import { X } from 'lucide-react' ;
17
32
import { JOURNALS_LINK } from '@/layout/Sidebar' ;
18
33
import { TransactionPreviewModal } from '@/components/modals/TransactionPreviewModal' ;
19
34
import { TransactionEditModal } from '@/components/modals/TransactionEditModal' ;
35
+
20
36
function Journals ( ) {
21
37
const setBreadcrumb = useSetAtom ( breadcrumbAtom ) ;
22
38
const { t } = useTranslation ( ) ;
@@ -122,35 +138,55 @@ function Journals() {
122
138
</ TableBody >
123
139
</ Table >
124
140
</ div >
125
- < Pagination className = "my-4" >
126
- < PaginationContent >
127
- { journalPage > 1 && (
128
- < PaginationItem >
129
- < PaginationPrevious href = "#" onClick = { ( ) => onPage ( journalPage - 1 ) } />
130
- </ PaginationItem >
131
- ) }
132
- { journalPage > 1 && (
133
- < PaginationItem >
134
- < PaginationLink href = "#" > { journalPage - 1 } </ PaginationLink >
135
- </ PaginationItem >
136
- ) }
137
- < PaginationItem >
138
- < PaginationLink href = "#" isActive >
139
- { journalPage }
140
- </ PaginationLink >
141
- </ PaginationItem >
142
- { journalPage < total_page && (
141
+ < div className = "flex items-center gap-4 my-4" >
142
+ < div
143
+ className = { 'inline-block' } > { journalItems . state === 'hasData' ? journalItems . data ?. total_page : 0 } { t ( 'PAGE' ) } </ div >
144
+ < Pagination >
145
+ < PaginationContent >
146
+ { journalPage > 1 && (
147
+ < PaginationItem >
148
+ < PaginationPrevious className = "cursor-pointer" onClick = { ( ) => onPage ( journalPage - 1 ) } />
149
+ </ PaginationItem >
150
+ ) }
151
+ { journalPage > 2 && (
152
+ < PaginationItem >
153
+ < PaginationLink className = "cursor-pointer"
154
+ onClick = { ( ) => onPage ( journalPage - 2 ) } > { journalPage - 2 } </ PaginationLink >
155
+ </ PaginationItem >
156
+ ) }
157
+ { journalPage > 1 && (
158
+ < PaginationItem >
159
+ < PaginationLink className = "cursor-pointer"
160
+ onClick = { ( ) => onPage ( journalPage - 1 ) } > { journalPage - 1 } </ PaginationLink >
161
+ </ PaginationItem >
162
+ ) }
143
163
< PaginationItem >
144
- < PaginationLink href = "#" > { journalPage + 1 } </ PaginationLink >
164
+ < PaginationLink isActive >
165
+ { journalPage }
166
+ </ PaginationLink >
145
167
</ PaginationItem >
146
- ) }
147
- { journalPage < total_page && (
148
- < PaginationItem >
149
- < PaginationNext href = "#" onClick = { ( ) => onPage ( journalPage + 1 ) } />
150
- </ PaginationItem >
151
- ) }
152
- </ PaginationContent >
153
- </ Pagination >
168
+ { journalPage < total_page && (
169
+ < PaginationItem >
170
+ < PaginationLink className = "cursor-pointer"
171
+ onClick = { ( ) => onPage ( journalPage + 1 ) } > { journalPage + 1 } </ PaginationLink >
172
+ </ PaginationItem >
173
+ ) }
174
+ { journalPage + 1 < total_page && (
175
+ < PaginationItem >
176
+ < PaginationLink className = "cursor-pointer"
177
+ onClick = { ( ) => onPage ( journalPage + 2 ) } > { journalPage + 2 } </ PaginationLink >
178
+ </ PaginationItem >
179
+ ) }
180
+ { journalPage < total_page && (
181
+ < PaginationItem >
182
+ < PaginationNext className = "cursor-pointer" onClick = { ( ) => onPage ( journalPage + 1 ) } />
183
+ </ PaginationItem >
184
+ ) }
185
+ </ PaginationContent >
186
+ </ Pagination >
187
+ < div > </ div >
188
+ </ div >
189
+
154
190
</ div >
155
191
) ;
156
192
}
0 commit comments