cebded83832ef67d2d100a616f83c1dabeb09e04
The activeTab state and searchParams were synced bidirectionally via two competing useEffect hooks. When navigating between tabs via sidebar links (e.g., 'View All'), setSearchParams produced a new reference, re-triggering the URL→state effect with a stale closure, causing an infinite loop. Fix: derive activeTab directly from searchParams (single source of truth) and update the URL via a callback instead of a separate state variable.
Description
Languages
TypeScript
95.7%
Java
1.5%
JavaScript
0.9%
Swift
0.9%
CSS
0.5%
Other
0.4%