fix list filters

This commit is contained in:
jeffvli
2025-12-02 00:11:42 -08:00
parent 4abfbd1973
commit aff7a61bca
26 changed files with 1022 additions and 565 deletions
@@ -1,16 +1,21 @@
import { parseAsInteger, useQueryState } from 'nuqs';
import { useMemo } from 'react';
import { useSearchParams } from 'react-router';
import { parseIntParam, setSearchParam } from '/@/renderer/utils/query-params';
interface UseItemListScrollPersistProps {
enabled: boolean;
}
export const useItemListScrollPersist = ({ enabled }: UseItemListScrollPersistProps) => {
const [scrollOffset, setScrollOffset] = useQueryState('scrollOffset', parseAsInteger);
const [searchParams, setSearchParams] = useSearchParams();
const scrollOffset = useMemo(() => parseIntParam(searchParams, 'scrollOffset'), [searchParams]);
const handleOnScrollEnd = (offset: number) => {
if (!enabled) return;
setScrollOffset(offset);
setSearchParams((prev) => setSearchParam(prev, 'scrollOffset', offset), { replace: true });
};
return { handleOnScrollEnd, scrollOffset };
@@ -1,13 +1,18 @@
import { parseAsInteger, useQueryState } from 'nuqs';
import { useMemo } from 'react';
import { useSearchParams } from 'react-router';
import { parseIntParam, setSearchParam } from '/@/renderer/utils/query-params';
export const useItemListPagination = () => {
const [currentPage, setCurrentPage] = useQueryState(
'currentPage',
parseAsInteger.withDefault(0),
);
const [searchParams, setSearchParams] = useSearchParams();
const currentPage = useMemo(() => {
const value = parseIntParam(searchParams, 'currentPage');
return value ?? 0;
}, [searchParams]);
const onChange = (index: number) => {
setCurrentPage(index);
setSearchParams((prev) => setSearchParam(prev, 'currentPage', index), { replace: true });
};
return { currentPage, onChange };