fix: scope back-to-top to browse, speed up reveal, reset scroll on sort change
- BackToTop now only mounts on the /browse feed (covers all / latest / popular / search) instead of every route. - Reveal animation duration cut 0.4s -> 0.25s so scrolled-in content appears faster. - ScrollToTop also watches `search`, so switching between sort views on the same /browse path (e.g. 全部资料 <-> 热门资料) returns to the top. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -11,12 +11,12 @@ import { useLocation } from "react-router-dom";
|
||||
* anchor / deep-link targets keep their own scroll handling.
|
||||
*/
|
||||
export function ScrollToTop() {
|
||||
const { pathname, hash } = useLocation();
|
||||
const { pathname, search, hash } = useLocation();
|
||||
|
||||
useEffect(() => {
|
||||
if (hash) return;
|
||||
window.scrollTo({ top: 0, left: 0 });
|
||||
}, [pathname, hash]);
|
||||
}, [pathname, search, hash]);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -669,7 +669,7 @@ export function PublicLayout() {
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<BackToTop />
|
||||
{pathname === "/browse" ? <BackToTop /> : null}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ export const EASE_OUT = [0.22, 1, 0.36, 1] as const;
|
||||
|
||||
/** Base transition for reveal-style animations. */
|
||||
export const baseTransition: Transition = {
|
||||
duration: 0.4,
|
||||
duration: 0.25,
|
||||
ease: EASE_OUT,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user