Skip to content

Commit d1e0917

Browse files
deo002heliocastro
authored andcommitted
fix(search): Reeeset pagination when search value changes
1 parent 941c28d commit d1e0917

File tree

13 files changed

+134
-18
lines changed

13 files changed

+134
-18
lines changed

src/app/[locale]/admin/bulkreleaseedit/components/ReleaseEditPage.tsx

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,10 @@ export default function BulkReleaseEdit(): JSX.Element {
409409
),
410410
)
411411
const response = await ApiUtils.GET(queryUrl, session.data.user.access_token, signal)
412+
if (response.status === StatusCodes.NO_CONTENT) {
413+
setReleaseData([])
414+
return
415+
}
412416
if (response.status !== StatusCodes.OK) {
413417
const err = (await response.json()) as ErrorDetails
414418
throw new Error(err.message)
@@ -441,6 +445,16 @@ export default function BulkReleaseEdit(): JSX.Element {
441445
reloadKey,
442446
])
443447

448+
useEffect(() => {
449+
setPageableQueryParam({
450+
page: 0,
451+
page_entries: 10,
452+
sort: '',
453+
})
454+
}, [
455+
search,
456+
])
457+
444458
const table = useReactTable({
445459
data: memoizedData,
446460
columns,
@@ -474,8 +488,8 @@ export default function BulkReleaseEdit(): JSX.Element {
474488
},
475489
})
476490

477-
const doSearch = (event: React.KeyboardEvent<HTMLInputElement>) => {
478-
setSearch(event.currentTarget.value)
491+
const doSearch = (value: string) => {
492+
setSearch(value)
479493
setReloadKey(reloadKey + 1)
480494
}
481495

src/app/[locale]/admin/licenseTypes/components/LicenseTypesDetail.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,9 +169,9 @@ export default function LicenseTypesDetail(): ReactNode {
169169
setLicenseTypeName(licenseTypeName)
170170
}
171171

172-
const doSearch = (event: React.KeyboardEvent<HTMLInputElement>) => {
172+
const doSearch = (value: string) => {
173173
setQuickFilter({
174-
search: event.currentTarget.value,
174+
search: value,
175175
})
176176
}
177177

src/app/[locale]/admin/obligations/components/Obligations.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,9 +295,19 @@ function Obligations(): ReactNode {
295295
},
296296
})
297297

298-
const doSearch = (event: React.KeyboardEvent<HTMLInputElement>) => {
298+
useEffect(() => {
299+
setPageableQueryParam({
300+
page: 0,
301+
page_entries: 10,
302+
sort: '',
303+
})
304+
}, [
305+
search,
306+
])
307+
308+
const doSearch = (value: string) => {
299309
setSearch({
300-
search: event.currentTarget.value,
310+
search: value,
301311
})
302312
}
303313

src/app/[locale]/admin/users/components/UserAdministration.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,16 @@ export default function UserAdminstration(): JSX.Element {
326326
session,
327327
])
328328

329+
useEffect(() => {
330+
setPageableQueryParam({
331+
page: 0,
332+
page_entries: 10,
333+
sort: '',
334+
})
335+
}, [
336+
params.toString(),
337+
])
338+
329339
const table = useReactTable({
330340
data: memoizedData,
331341
columns,

src/app/[locale]/admin/vendors/components/VendorsList.tsx

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ export default function VendorsList(): JSX.Element {
110110
const [numVendors, setNumVendors] = useState<null | number>(null)
111111
const [delVendor, setDelVendor] = useState<Vendor | null>(null)
112112
const session = useSession()
113+
const [search, setSearch] = useState({})
113114

114115
useEffect(() => {
115116
if (session.status === 'unauthenticated') {
@@ -243,7 +244,10 @@ export default function VendorsList(): JSX.Element {
243244
const queryUrl = CommonUtils.createUrlWithParams(
244245
`vendors`,
245246
Object.fromEntries(
246-
Object.entries(pageableQueryParam).map(([key, value]) => [
247+
Object.entries({
248+
...pageableQueryParam,
249+
...search,
250+
}).map(([key, value]) => [
247251
key,
248252
String(value),
249253
]),
@@ -318,6 +322,22 @@ export default function VendorsList(): JSX.Element {
318322
},
319323
})
320324

325+
useEffect(() => {
326+
setPageableQueryParam({
327+
page: 0,
328+
page_entries: 10,
329+
sort: '',
330+
})
331+
}, [
332+
search,
333+
])
334+
335+
const doSearch = (value: string) => {
336+
setSearch({
337+
searchText: value,
338+
})
339+
}
340+
321341
const handleExportSpreadsheet = async () => {
322342
try {
323343
const session = await getSession()
@@ -343,7 +363,10 @@ export default function VendorsList(): JSX.Element {
343363
<div className='container page-content'>
344364
<div className='row'>
345365
<div className='col-lg-2'>
346-
<QuickFilter id='vendorSearch' />
366+
<QuickFilter
367+
id='vendorSearch'
368+
searchFunction={doSearch}
369+
/>
347370
</div>
348371
<div className='col-lg-10'>
349372
<div className='row d-flex justify-content-between'>

src/app/[locale]/components/components/ComponentsTable.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,16 @@ export default function ComponentsTable({ setNumberOfComponent }: Props) {
251251
session,
252252
])
253253

254+
useEffect(() => {
255+
setPageableQueryParam({
256+
page: 0,
257+
page_entries: 10,
258+
sort: '',
259+
})
260+
}, [
261+
params.toString(),
262+
])
263+
254264
const table = useReactTable({
255265
data: memoizedData,
256266
columns,

src/app/[locale]/licenses/components/LicensePage.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,19 @@ function LicensePage(): ReactNode {
4141
const { data: session, status } = useSession()
4242
const deleteLicense = params.get('delete')
4343

44-
const doSearch = (event: React.KeyboardEvent<HTMLInputElement>) => {
44+
useEffect(() => {
45+
setPageableQueryParam({
46+
page: 0,
47+
page_entries: 10,
48+
sort: '',
49+
})
50+
}, [
51+
search,
52+
])
53+
54+
const doSearch = (value: string) => {
4555
setSearch({
46-
searchText: event.currentTarget.value,
56+
searchText: value,
4757
})
4858
}
4959

src/app/[locale]/packages/components/Packages.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,16 @@ function Packages(): ReactNode {
358358
status,
359359
])
360360

361+
useEffect(() => {
362+
setPageableQueryParam({
363+
page: 0,
364+
page_entries: 10,
365+
sort: '',
366+
})
367+
}, [
368+
params.toString(),
369+
])
370+
361371
const table = useReactTable({
362372
data: memoizedData,
363373
columns,

src/app/[locale]/projects/components/Projects.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,16 @@ function Project(): JSX.Element {
389389
params.toString(),
390390
])
391391

392+
useEffect(() => {
393+
setPageableQueryParam({
394+
page: 0,
395+
page_entries: 10,
396+
sort: '',
397+
})
398+
}, [
399+
params.toString(),
400+
])
401+
392402
const table = useReactTable({
393403
data: memoizedData,
394404
columns,

src/app/[locale]/vulnerabilities/components/Vulnerabilities.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,16 @@ function Vulnerabilities(): ReactNode {
280280
session,
281281
])
282282

283+
useEffect(() => {
284+
setPageableQueryParam({
285+
page: 0,
286+
page_entries: 10,
287+
sort: '',
288+
})
289+
}, [
290+
params.toString(),
291+
])
292+
283293
const table = useReactTable({
284294
data: memoizedData,
285295
columns,

0 commit comments

Comments
 (0)