aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/components/dashboard/bookmarks/UpdatableBookmarksGrid.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/components/dashboard/bookmarks/UpdatableBookmarksGrid.tsx')
-rw-r--r--apps/web/components/dashboard/bookmarks/UpdatableBookmarksGrid.tsx19
1 files changed, 15 insertions, 4 deletions
diff --git a/apps/web/components/dashboard/bookmarks/UpdatableBookmarksGrid.tsx b/apps/web/components/dashboard/bookmarks/UpdatableBookmarksGrid.tsx
index d18eeb1b..e43d061b 100644
--- a/apps/web/components/dashboard/bookmarks/UpdatableBookmarksGrid.tsx
+++ b/apps/web/components/dashboard/bookmarks/UpdatableBookmarksGrid.tsx
@@ -1,6 +1,8 @@
"use client";
+import { useEffect } from "react";
import UploadDropzone from "@/components/dashboard/UploadDropzone";
+import { useSortOrderStore } from "@/lib/store/useSortOrderStore";
import { api } from "@/lib/trpc";
import type {
@@ -16,14 +18,18 @@ export default function UpdatableBookmarksGrid({
bookmarks: initialBookmarks,
showEditorCard = false,
}: {
- query: ZGetBookmarksRequest;
+ query: Omit<ZGetBookmarksRequest, "sortOrder">; // Sort order is handled by the store
bookmarks: ZGetBookmarksResponse;
showEditorCard?: boolean;
itemsPerPage?: number;
}) {
- const { data, fetchNextPage, hasNextPage, isFetchingNextPage } =
+ const sortOrder = useSortOrderStore((state) => state.sortOrder);
+
+ const finalQuery = { ...query, sortOrder };
+
+ const { data, fetchNextPage, hasNextPage, isFetchingNextPage, refetch } =
api.bookmarks.getBookmarks.useInfiniteQuery(
- { ...query, useCursorV2: true },
+ { ...finalQuery, useCursorV2: true },
{
initialData: () => ({
pages: [initialBookmarks],
@@ -31,9 +37,14 @@ export default function UpdatableBookmarksGrid({
}),
initialCursor: null,
getNextPageParam: (lastPage) => lastPage.nextCursor,
+ refetchOnMount: true,
},
);
+ useEffect(() => {
+ refetch();
+ }, [sortOrder, refetch]);
+
const grid = (
<BookmarksGrid
bookmarks={data!.pages.flatMap((b) => b.bookmarks)}
@@ -45,7 +56,7 @@ export default function UpdatableBookmarksGrid({
);
return (
- <BookmarkGridContextProvider query={query}>
+ <BookmarkGridContextProvider query={finalQuery}>
{showEditorCard ? <UploadDropzone>{grid}</UploadDropzone> : grid}
</BookmarkGridContextProvider>
);