@@ -44,6 +44,8 @@ import { trpc } from '~/utils/trpc';
44
44
45
45
import type { FilterState } from '../../components/resumes/browse/resumeFilters' ;
46
46
47
+ const STALE_TIME = 5 * 60 * 1000 ;
48
+ const DEBOUNCE_DELAY = 800 ;
47
49
const PAGE_LIMIT = 10 ;
48
50
const filters : Array < Filter > = [
49
51
{
@@ -122,14 +124,14 @@ export default function ResumeHomePage() {
122
124
locationFilters : userFilters . location ,
123
125
numComments : userFilters . numComments ,
124
126
roleFilters : userFilters . role ,
125
- searchValue : useDebounceValue ( searchValue , 800 ) ,
127
+ searchValue : useDebounceValue ( searchValue , DEBOUNCE_DELAY ) ,
126
128
skip,
127
129
sortOrder,
128
130
} ,
129
131
] ,
130
132
{
131
133
enabled : tabsValue === BROWSE_TABS_VALUES . ALL ,
132
- staleTime : 5 * 60 * 1000 ,
134
+ staleTime : STALE_TIME ,
133
135
} ,
134
136
) ;
135
137
const starredResumesQuery = trpc . useQuery (
@@ -140,15 +142,15 @@ export default function ResumeHomePage() {
140
142
locationFilters : userFilters . location ,
141
143
numComments : userFilters . numComments ,
142
144
roleFilters : userFilters . role ,
143
- searchValue : useDebounceValue ( searchValue , 800 ) ,
145
+ searchValue : useDebounceValue ( searchValue , DEBOUNCE_DELAY ) ,
144
146
skip,
145
147
sortOrder,
146
148
} ,
147
149
] ,
148
150
{
149
151
enabled : tabsValue === BROWSE_TABS_VALUES . STARRED ,
150
152
retry : false ,
151
- staleTime : 5 * 60 * 1000 ,
153
+ staleTime : STALE_TIME ,
152
154
} ,
153
155
) ;
154
156
const myResumesQuery = trpc . useQuery (
@@ -159,15 +161,15 @@ export default function ResumeHomePage() {
159
161
locationFilters : userFilters . location ,
160
162
numComments : userFilters . numComments ,
161
163
roleFilters : userFilters . role ,
162
- searchValue : useDebounceValue ( searchValue , 800 ) ,
164
+ searchValue : useDebounceValue ( searchValue , DEBOUNCE_DELAY ) ,
163
165
skip,
164
166
sortOrder,
165
167
} ,
166
168
] ,
167
169
{
168
170
enabled : tabsValue === BROWSE_TABS_VALUES . MY ,
169
171
retry : false ,
170
- staleTime : 5 * 60 * 1000 ,
172
+ staleTime : STALE_TIME ,
171
173
} ,
172
174
) ;
173
175
@@ -238,6 +240,11 @@ export default function ResumeHomePage() {
238
240
: Math . floor ( numRecords / PAGE_LIMIT ) + 1 ;
239
241
} ;
240
242
243
+ const isFetchingResumes =
244
+ allResumesQuery . isFetching ||
245
+ starredResumesQuery . isFetching ||
246
+ myResumesQuery . isFetching ;
247
+
241
248
return (
242
249
< >
243
250
< Head >
@@ -271,7 +278,7 @@ export default function ResumeHomePage() {
271
278
leave = "transition ease-in-out duration-300 transform"
272
279
leaveFrom = "translate-x-0"
273
280
leaveTo = "translate-x-full" >
274
- < Dialog . Panel className = "relative ml-auto flex h-full w-full max-w-xs flex-col overflow-y-auto bg-white py-4 pb-12 shadow-xl" >
281
+ < Dialog . Panel className = "relative ml-auto flex h-full w-full max-w-xs flex-col overflow-y-scroll bg-white py-4 pb-12 shadow-xl" >
275
282
< div className = "flex items-center justify-between px-4" >
276
283
< h2 className = "text-lg font-medium text-gray-900" >
277
284
Shortcuts
@@ -362,20 +369,20 @@ export default function ResumeHomePage() {
362
369
</ Transition . Root >
363
370
</ div >
364
371
365
- < main className = "h-[calc(100vh-4rem)] flex-1 overflow-y-auto " >
366
- < div className = "ml-4 py-4" >
372
+ < main className = "h-[calc(100vh-4rem)] flex-1 overflow-y-scroll " >
373
+ < div className = "ml-8 py-4" >
367
374
< ResumeReviewsTitle />
368
375
</ div >
369
376
370
377
< div className = "mx-8 mt-4 flex justify-start" >
371
378
< div className = "hidden w-1/6 pt-2 lg:block" >
372
- < h3 className = "text-md mb-4 font-medium tracking-tight text-gray-900" >
373
- Shortcuts:
379
+ < h3 className = "text-md font-medium tracking-tight text-gray-900" >
380
+ Shortcuts
374
381
</ h3 >
375
382
< div className = "w-100 pt-4 sm:pr-0 md:pr-4" >
376
383
< form >
377
384
< ul
378
- className = "flex flex-wrap justify-start gap-4 pb-6 text-sm font-medium text-gray-900"
385
+ className = "flex w-11/12 flex-wrap justify-start gap-2 pb-6 text-sm font-medium text-gray-900"
379
386
role = "list" >
380
387
{ SHORTCUTS . map ( ( shortcut ) => (
381
388
< li key = { shortcut . name } >
@@ -387,8 +394,8 @@ export default function ResumeHomePage() {
387
394
</ li >
388
395
) ) }
389
396
</ ul >
390
- < h3 className = "text-md my-4 font-medium tracking-tight text-gray-900" >
391
- Explore these filters:
397
+ < h3 className = "text-md font-medium tracking-tight text-gray-900" >
398
+ Explore these filters
392
399
</ h3 >
393
400
{ filters . map ( ( filter ) => (
394
401
< Disclosure
@@ -529,9 +536,7 @@ export default function ResumeHomePage() {
529
536
</ div >
530
537
</ div >
531
538
< div className = "mb-6" >
532
- { allResumesQuery . isLoading ||
533
- starredResumesQuery . isLoading ||
534
- myResumesQuery . isLoading ? (
539
+ { isFetchingResumes ? (
535
540
< div className = "w-full pt-4" >
536
541
{ ' ' }
537
542
< Spinner display = "block" size = "lg" /> { ' ' }
@@ -553,23 +558,18 @@ export default function ResumeHomePage() {
553
558
</ div >
554
559
) : (
555
560
< >
556
- < ResumeListItems
557
- isLoading = {
558
- allResumesQuery . isFetching ||
559
- starredResumesQuery . isFetching ||
560
- myResumesQuery . isFetching
561
- }
562
- resumes = { getTabResumes ( ) }
563
- />
564
- < div className = "my-4 flex justify-center" >
565
- < Pagination
566
- current = { currentPage }
567
- end = { getTabTotalPages ( ) }
568
- label = "pagination"
569
- start = { 1 }
570
- onSelect = { ( page ) => setCurrentPage ( page ) }
571
- />
572
- </ div >
561
+ < ResumeListItems resumes = { getTabResumes ( ) } />
562
+ { getTabTotalPages ( ) > 1 && (
563
+ < div className = "my-4 flex justify-center" >
564
+ < Pagination
565
+ current = { currentPage }
566
+ end = { getTabTotalPages ( ) }
567
+ label = "pagination"
568
+ start = { 1 }
569
+ onSelect = { ( page ) => setCurrentPage ( page ) }
570
+ />
571
+ </ div >
572
+ ) }
573
573
</ >
574
574
) }
575
575
</ div >
0 commit comments