v3: code quality pass
This commit is contained in:
@@ -26,6 +26,7 @@ import {
|
||||
import { ErrorCard } from "../components/ErrorCard.tsx";
|
||||
import { friendlyFetchError } from "../utils/apiError.ts";
|
||||
import { useFeedCache } from "../hooks/useFeedCache.ts";
|
||||
import { useScrollSave } from "../hooks/useScrollSave.ts";
|
||||
import { useAuth } from "../hooks/useAuth.ts";
|
||||
import { useWS } from "../hooks/useWS.ts";
|
||||
import { useDumpListSync } from "../hooks/useDumpListSync.ts";
|
||||
@@ -448,74 +449,39 @@ export function Index() {
|
||||
!dumpsState.loadingMore,
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
if (dumpsState.status !== "loaded") return;
|
||||
let timer: ReturnType<typeof setTimeout>;
|
||||
const onScroll = () => {
|
||||
clearTimeout(timer);
|
||||
timer = setTimeout(() => {
|
||||
if (dumpsState.status === "loaded") {
|
||||
saveState(
|
||||
dumpsState.dumps,
|
||||
dumpsState.page,
|
||||
dumpsState.hasMore,
|
||||
globalThis.scrollY,
|
||||
);
|
||||
}
|
||||
}, 100);
|
||||
};
|
||||
globalThis.addEventListener("scroll", onScroll, { passive: true });
|
||||
return () => {
|
||||
globalThis.removeEventListener("scroll", onScroll);
|
||||
clearTimeout(timer);
|
||||
};
|
||||
}, [dumpsState, saveState]);
|
||||
useScrollSave(
|
||||
dumpsState.status === "loaded",
|
||||
useCallback((y) => {
|
||||
if (dumpsState.status !== "loaded") return;
|
||||
saveState(dumpsState.dumps, dumpsState.page, dumpsState.hasMore, y);
|
||||
}, [dumpsState, saveState]),
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
if (followedUsersDumps.status !== "loaded") return;
|
||||
let timer: ReturnType<typeof setTimeout>;
|
||||
const onScroll = () => {
|
||||
clearTimeout(timer);
|
||||
timer = setTimeout(() => {
|
||||
if (followedUsersDumps.status === "loaded") {
|
||||
saveFollowedUsers(
|
||||
followedUsersDumps.dumps,
|
||||
followedUsersDumps.page,
|
||||
followedUsersDumps.hasMore,
|
||||
globalThis.scrollY,
|
||||
);
|
||||
}
|
||||
}, 100);
|
||||
};
|
||||
globalThis.addEventListener("scroll", onScroll, { passive: true });
|
||||
return () => {
|
||||
globalThis.removeEventListener("scroll", onScroll);
|
||||
clearTimeout(timer);
|
||||
};
|
||||
}, [followedUsersDumps, saveFollowedUsers]);
|
||||
useScrollSave(
|
||||
followedUsersDumps.status === "loaded",
|
||||
useCallback((y) => {
|
||||
if (followedUsersDumps.status !== "loaded") return;
|
||||
saveFollowedUsers(
|
||||
followedUsersDumps.dumps,
|
||||
followedUsersDumps.page,
|
||||
followedUsersDumps.hasMore,
|
||||
y,
|
||||
);
|
||||
}, [followedUsersDumps, saveFollowedUsers]),
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
if (followedPlaylistsDumps.status !== "loaded") return;
|
||||
let timer: ReturnType<typeof setTimeout>;
|
||||
const onScroll = () => {
|
||||
clearTimeout(timer);
|
||||
timer = setTimeout(() => {
|
||||
if (followedPlaylistsDumps.status === "loaded") {
|
||||
saveFollowedPlaylists(
|
||||
followedPlaylistsDumps.dumps,
|
||||
followedPlaylistsDumps.page,
|
||||
followedPlaylistsDumps.hasMore,
|
||||
globalThis.scrollY,
|
||||
);
|
||||
}
|
||||
}, 100);
|
||||
};
|
||||
globalThis.addEventListener("scroll", onScroll, { passive: true });
|
||||
return () => {
|
||||
globalThis.removeEventListener("scroll", onScroll);
|
||||
clearTimeout(timer);
|
||||
};
|
||||
}, [followedPlaylistsDumps, saveFollowedPlaylists]);
|
||||
useScrollSave(
|
||||
followedPlaylistsDumps.status === "loaded",
|
||||
useCallback((y) => {
|
||||
if (followedPlaylistsDumps.status !== "loaded") return;
|
||||
saveFollowedPlaylists(
|
||||
followedPlaylistsDumps.dumps,
|
||||
followedPlaylistsDumps.page,
|
||||
followedPlaylistsDumps.hasMore,
|
||||
y,
|
||||
);
|
||||
}, [followedPlaylistsDumps, saveFollowedPlaylists]),
|
||||
);
|
||||
|
||||
// ── Scroll restoration ──
|
||||
|
||||
|
||||
Reference in New Issue
Block a user