refactor: Optimize scroll position management to prevent unnecessary updates
This commit is contained in:
parent
c544657720
commit
9c70d60267
@ -80,10 +80,13 @@ export const UIStateProvider = ({ children }: { children: ReactNode }) => {
|
||||
}, []);
|
||||
|
||||
const setScrollPosition = useCallback((key: string, position: number) => {
|
||||
setScrollPositions((prev) => ({
|
||||
...prev,
|
||||
[key]: position,
|
||||
}));
|
||||
setScrollPositions((prev) => {
|
||||
if (prev[key] === position) return prev;
|
||||
return {
|
||||
...prev,
|
||||
[key]: position,
|
||||
};
|
||||
});
|
||||
}, []);
|
||||
|
||||
const value = useMemo(
|
||||
|
||||
@ -15,5 +15,6 @@ export const useScrollPersistence = (key: string) => {
|
||||
return () => {
|
||||
setScrollPosition(key, window.scrollY);
|
||||
};
|
||||
}, [key, setScrollPosition, scrollPositions]); // eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [key, setScrollPosition]);
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user