Skip to content

Commit f59c359

Browse files
committed
Add search param and filters to url as well
1 parent 46db0ba commit f59c359

File tree

3 files changed

+39
-7
lines changed

3 files changed

+39
-7
lines changed

src/components/ActionBars/NetworkActionBar.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,15 @@ type Props = {
5656
searchEnabled: boolean
5757
placeholder?: string
5858
onSearch?: (term: string) => void
59+
searchValue?: string
5960
leftSideContent?: ReactNode
6061
rightSideContent?: ReactNode
6162
}
6263

6364
export const NetworkActionBar: FunctionComponent<Props> = ({
6465
searchEnabled,
6566
onSearch,
67+
searchValue,
6668
placeholder,
6769
leftSideContent,
6870
rightSideContent,
@@ -72,7 +74,11 @@ export const NetworkActionBar: FunctionComponent<Props> = ({
7274
<div
7375
className={'search-bar-wrap ' + (!searchEnabled ? 'search-disabled' : '')}
7476
>
75-
<SearchBar onChange={onSearch} placeholder={placeholder} />
77+
<SearchBar
78+
onChange={onSearch}
79+
placeholder={placeholder}
80+
value={searchValue}
81+
/>
7682
</div>
7783
{(leftSideContent || rightSideContent) && (
7884
<div className="action-content-wrap">

src/pages/OperatorsPage.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ function isTabOption(value: unknown): value is TabOption {
4545
}
4646

4747
export const OperatorsPage = () => {
48-
const [searchQuery, setSearchQuery] = useState('')
49-
5048
const wallet = useWalletAccount()
5149
const isWalletLoading = useIsWalletLoading()
5250

@@ -58,6 +56,7 @@ export const OperatorsPage = () => {
5856
const [params] = useSearchParams()
5957
const tab = params.get('tab')
6058
const selectedTab = isTabOption(tab) ? tab : DEFAULT_TAB
59+
const [searchQuery, setSearchQuery] = useState(params.get('search') || '')
6160

6261
useUrlParams([
6362
{
@@ -75,6 +74,11 @@ export const OperatorsPage = () => {
7574
value: orderDirection,
7675
defaultValue: DEFAULT_ORDER_DIRECTION,
7776
},
77+
{
78+
param: 'search',
79+
value: searchQuery,
80+
defaultValue: '',
81+
},
7882
])
7983

8084
const allOperatorsQuery = useAllOperatorsQuery({
@@ -120,6 +124,7 @@ export const OperatorsPage = () => {
120124
<NetworkHelmet title="Operators" />
121125
<NetworkActionBar
122126
searchEnabled={true}
127+
searchValue={searchQuery}
123128
onSearch={setSearchQuery}
124129
leftSideContent={
125130
<Tabs

src/pages/SponsorshipsPage.tsx

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,18 @@ function isTabOption(value: unknown): value is TabOption {
4444
}
4545

4646
export const SponsorshipsPage = () => {
47-
const [searchQuery, setSearchQuery] = useState('')
48-
49-
const [filters, setFilters] = useState<SponsorshipFilters>(defaultFilters)
47+
const [params] = useSearchParams()
48+
const initialFilters = {
49+
...defaultFilters,
50+
...Object.keys(defaultFilters).reduce((acc, key) => {
51+
if (params.has(key)) {
52+
return { ...acc, [key]: params.get(key) === 'true' }
53+
}
54+
return acc
55+
}, {}),
56+
}
57+
58+
const [filters, setFilters] = useState<SponsorshipFilters>(initialFilters)
5059

5160
const wallet = useWalletAccount()
5261
const isWalletLoading = useIsWalletLoading()
@@ -56,10 +65,11 @@ export const SponsorshipsPage = () => {
5665
orderDirection: DEFAULT_ORDER_DIRECTION,
5766
})
5867

59-
const [params] = useSearchParams()
6068
const tab = params.get('tab')
6169
const selectedTab = isTabOption(tab) ? tab : DEFAULT_TAB
6270

71+
const [searchQuery, setSearchQuery] = useState(params.get('search') || '')
72+
6373
useUrlParams([
6474
{
6575
param: 'tab',
@@ -76,6 +86,16 @@ export const SponsorshipsPage = () => {
7686
value: orderDirection,
7787
defaultValue: DEFAULT_ORDER_DIRECTION,
7888
},
89+
{
90+
param: 'search',
91+
value: searchQuery,
92+
defaultValue: '',
93+
},
94+
...Object.entries(defaultFilters).map(([key, value]) => ({
95+
param: key,
96+
value: filters[key as keyof SponsorshipFilters].toString(),
97+
defaultValue: value.toString(),
98+
})),
7999
])
80100

81101
const allSponsorshipsQuery = useAllSponsorshipsQuery({
@@ -123,6 +143,7 @@ export const SponsorshipsPage = () => {
123143
<NetworkHelmet title="Sponsorships" />
124144
<NetworkActionBar
125145
searchEnabled
146+
searchValue={searchQuery}
126147
onSearch={setSearchQuery}
127148
leftSideContent={
128149
<Tabs

0 commit comments

Comments
 (0)