From f34247cbd27d59a77b6729b7f01e5f187c5420fc Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 21 Nov 2023 10:16:40 +0700 Subject: Add page on useResultStore --- src/common/stores/useResultStore.ts | 4 +++- src/modules/result/components/Filter.tsx | 3 ++- src/modules/result/components/Table.tsx | 19 ++++++++----------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/common/stores/useResultStore.ts b/src/common/stores/useResultStore.ts index 09e8146..680db56 100644 --- a/src/common/stores/useResultStore.ts +++ b/src/common/stores/useResultStore.ts @@ -6,12 +6,13 @@ type State = { search: string; company: string; show: string; + page: number; }; companies: SelectOption[]; }; type Action = { - updateFilter: (name: string, value: string) => void; + updateFilter: (name: string, value: string | number) => void; setCompanies: (data: SelectOption[]) => void; }; @@ -20,6 +21,7 @@ export const useResultStore = create((set) => ({ search: "", company: "", show: "1", + page: 1, }, updateFilter: (name, value) => set((state) => ({ diff --git a/src/modules/result/components/Filter.tsx b/src/modules/result/components/Filter.tsx index 73f346c..511b91c 100644 --- a/src/modules/result/components/Filter.tsx +++ b/src/modules/result/components/Filter.tsx @@ -38,7 +38,8 @@ const Filter = () => {
{ const credential = getClientCredential() - const params = useSearchParams() - const router = useRouter() - const page = params.get('page') ?? '1' - - const { filter: { company, search, show } } = useResultStore() + const { filter: { company, search, show, page }, updateFilter } = useResultStore() const debouncedSearch = useDebounce(search, 500) + useEffect(() => { + updateFilter('page', 1) + }, [company, debouncedSearch, show, updateFilter]) + const stockOpnames = useQuery({ queryKey: ['stockOpnames', company, debouncedSearch, page, show], queryFn: async () => { @@ -37,7 +34,7 @@ const Table = () => { if (debouncedSearch) searchParams.set('search', debouncedSearch) - searchParams.set('page', page); + searchParams.set('page', page.toString()); return await fetch(`/api/stock-opname?${searchParams}`) .then(res => res.json()) @@ -155,7 +152,7 @@ const Table = () => { isCompact page={stockOpnames.data?.page || 1} total={stockOpnames.data?.totalPage || 1} - onChange={(page) => router.push(`?page=${page}`)} + onChange={(page) => updateFilter('page', page)} />
-- cgit v1.2.3