Skip to content

Commit 4fda82f

Browse files
rkapoor10Harness
authored andcommitted
fix: branch tag page navigation with search query (#10383)
* 9a0726 fix: branch tag page navigation with search query
1 parent ae01334 commit 4fda82f

File tree

3 files changed

+32
-14
lines changed

3 files changed

+32
-14
lines changed

packages/ui/src/utils/utils.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,25 @@ export const getErrorMessage = (error: Error | string | null, defaultMessage: st
5454
(get(error, 'data.error', get(error, 'data.message', get(error, 'message', error))) as string) || defaultMessage
5555
)
5656
}
57+
58+
/**
59+
* Build pagination link with page number and optional search query
60+
* @param pageNumber - The page number to navigate to
61+
* @param searchQuery - Optional search query to preserve in URL
62+
* @returns Query string for pagination link
63+
*/
64+
export function buildPaginationLink(pageNumber: number, searchQuery?: string | null): string {
65+
const params = new URLSearchParams()
66+
params.set('page', pageNumber.toString())
67+
if (searchQuery) {
68+
params.set('query', searchQuery)
69+
}
70+
return `?${params.toString()}`
71+
}
72+
73+
export function createPaginationLinks(xPrevPage: number, xNextPage: number, searchQuery?: string | null) {
74+
const getPrevPageLink = () => buildPaginationLink(xPrevPage, searchQuery)
75+
const getNextPageLink = () => buildPaginationLink(xNextPage, searchQuery)
76+
77+
return { getPrevPageLink, getNextPageLink }
78+
}

packages/ui/src/views/repo/repo-branch/repo-branch-list-view.tsx

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { FC, useCallback, useMemo } from 'react'
22

33
import { Button, IconV2, Layout, ListActions, NoData, Pagination, SearchInput, Text } from '@/components'
44
import { useTranslation } from '@/context'
5+
import { createPaginationLinks } from '@/utils'
56
import { SandboxLayout } from '@/views'
67
import { cn } from '@utils/cn'
78

@@ -40,13 +41,10 @@ export const RepoBranchListView: FC<RepoBranchListViewProps> = ({
4041
const noBranches = !branchList?.length && !isLoading && !isDirtyList
4142
const noSearchResults = !branchList?.length && !isLoading && isDirtyList
4243

43-
const getPrevPageLink = useCallback(() => {
44-
return `?page=${xPrevPage}`
45-
}, [xPrevPage])
46-
47-
const getNextPageLink = useCallback(() => {
48-
return `?page=${xNextPage}`
49-
}, [xNextPage])
44+
const { getPrevPageLink, getNextPageLink } = useMemo(
45+
() => createPaginationLinks(xPrevPage, xNextPage, searchQuery),
46+
[xPrevPage, xNextPage, searchQuery]
47+
)
5048

5149
const canShowPagination = useMemo(() => {
5250
return !isLoading && !!branchList.length

packages/ui/src/views/repo/repo-tags/repo-tags-list-page.tsx

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { Button, IconV2, Layout, ListActions, Pagination, SearchInput, Text } fr
44
import { useTranslation } from '@/context'
55
import { RepoTagsListViewProps, SandboxLayout } from '@/views'
66
import { cn } from '@utils/cn'
7+
import { createPaginationLinks } from '@utils/utils'
78

89
import { RepoTagsList } from './components/repo-tags-list'
910

@@ -37,13 +38,10 @@ export const RepoTagsListView: FC<RepoTagsListViewProps> = ({
3738
return page !== 1 || !!searchQuery
3839
}, [page, searchQuery])
3940

40-
const getPrevPageLink = useCallback(() => {
41-
return `?page=${xPrevPage}`
42-
}, [xPrevPage])
43-
44-
const getNextPageLink = useCallback(() => {
45-
return `?page=${xNextPage}`
46-
}, [xNextPage])
41+
const { getPrevPageLink, getNextPageLink } = useMemo(
42+
() => createPaginationLinks(xPrevPage, xNextPage, searchQuery),
43+
[xPrevPage, xNextPage, searchQuery]
44+
)
4745

4846
const canShowPagination = useMemo(() => {
4947
return !isLoading && !!tagsList.length

0 commit comments

Comments
 (0)