Skip to content

Commit 9d57cf4

Browse files
committed
feat(SearcherBar, AddressRoute): update navigation to include 'from=my_activity' query parameter
1 parent 9cccc4c commit 9d57cf4

File tree

2 files changed

+32
-3
lines changed

2 files changed

+32
-3
lines changed

src/modules/search/SearcherBar.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,9 @@ export function SearcherBar({
179179
className="bg-muted hover:bg-secondary absolute top-1/2 right-4 hidden -translate-y-1/2 sm:flex"
180180
asChild
181181
>
182-
<ChainLink to={`/address/${userAddress}`}>My activity</ChainLink>
182+
<ChainLink to={`/address/${userAddress}?from=my_activity`}>
183+
My activity
184+
</ChainLink>
183185
</Button>
184186
)}
185187
</div>
@@ -193,7 +195,9 @@ export function SearcherBar({
193195

194196
{isConnected && (
195197
<Button variant="outline" className="sm:hidden" asChild>
196-
<ChainLink to={`/address/${userAddress}`}>My activity</ChainLink>
198+
<ChainLink to={`/address/${userAddress}?from=my_activity`}>
199+
My activity
200+
</ChainLink>
197201
</Button>
198202
)}
199203
</div>

src/routes/$chainSlug/_layout/address/$addressAddress.tsx

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ import { TABLE_LENGTH, TABLE_REFETCH_INTERVAL } from '@/config';
22
import { execute } from '@/graphql/execute';
33
import { useQuery } from '@tanstack/react-query';
44
import { createFileRoute } from '@tanstack/react-router';
5+
import { useSearch, useNavigate } from '@tanstack/react-router';
56
import { LoaderCircle } from 'lucide-react';
7+
import { useEffect } from 'react';
68
import AddressIcon from '@/components/icons/AddressIcon';
79
import { BackButton } from '@/components/ui/BackButton';
810
import { useTabParam } from '@/hooks/usePageParam';
@@ -74,7 +76,7 @@ function AddressRoute() {
7476
'WORKERPOOLS',
7577
];
7678
const [currentTab, setCurrentTab] = useTabParam('addressTab', tabLabels, 0);
77-
const { chainId } = useUserStore();
79+
const { chainId, address: userAddress } = useUserStore();
7880
const { addressAddress } = Route.useParams();
7981
const {
8082
data: address,
@@ -86,6 +88,29 @@ function AddressRoute() {
8688
error,
8789
} = useAddressData((addressAddress as string).toLowerCase(), chainId!);
8890

91+
const navigate = useNavigate();
92+
const search = useSearch({ strict: false });
93+
const { chainSlug } = Route.useParams();
94+
const fromMyActivity = search?.['from'] === 'my_activity';
95+
96+
useEffect(() => {
97+
if (
98+
fromMyActivity &&
99+
userAddress &&
100+
addressAddress?.toLowerCase() !== userAddress?.toLowerCase()
101+
) {
102+
navigate({
103+
to: `/${chainSlug}/address/${userAddress}`,
104+
search: (prev: Record<string, any>) => ({
105+
...prev,
106+
from: 'my_activity',
107+
}),
108+
replace: true,
109+
resetScroll: false,
110+
});
111+
}
112+
}, [userAddress, addressAddress, fromMyActivity, navigate, chainSlug]);
113+
89114
const addressDetails = address ? buildAddressDetails({ address }) : undefined;
90115
const addressOverview = address
91116
? buildAddressOverview({ address })

0 commit comments

Comments
 (0)