aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/lib/store
diff options
context:
space:
mode:
authorDaksh Pareek <dakshpareek7@gmail.com>2025-01-12 21:53:34 +0530
committerGitHub <noreply@github.com>2025-01-12 16:23:34 +0000
commitb6293d118e7545b81e216073e66cd54c5b1a0b00 (patch)
tree19c2308ea7ea26593d890770945a2c5c71440048 /apps/web/lib/store
parentb8bd7d7eb27aaaadae728599f64a0874f66196ea (diff)
downloadkarakeep-b6293d118e7545b81e216073e66cd54c5b1a0b00.tar.zst
feat: Add Bookmark Sorting Feature (#812)
* feat: add bookmark sorting by creation date - Add sort order toggle in GlobalActions component - Implement ascending/descending sort functionality - Update translations for sorting feature in all languages - Add sort order icons and dropdown menu - Maintain sort preference in URL params * feat: add bookmark sorting by creation date - Add sort order toggle in GlobalActions component - Implement ascending/descending sort functionality - Update translations for sorting feature in all languages - Add sort order icons and dropdown menu - Maintain sort preference in URL params during session Note: Sort order resets to default on page refresh, server-side persistence can be implemented in future enhancement * feat: Add global sort by date feature with shared sort order state - Implement global sort order functionality using a shared Zustand store (`useSortOrder` hook). - Update `getBookmarks` and `searchBookmarks` endpoints to accept a `sortOrder` parameter. - Refactor code to import `ZSortOrder` from shared types (`bookmarks.ts`), ensuring consistency across the codebase. - Update components (`UpdatableBookmarksGrid`, `bookmark-search`) to use the shared `useSortOrder` hook. - Remove unused `zSortBy` definition from `packages/shared/types/bookmarks.ts` to avoid confusion. - Ensure consistent naming conventions by prefixing Zod inferred types with `Z`. - Clean up code and address previous PR feedback comments. * tiny fixes and fixing TS errors --------- Co-authored-by: Mohamed Bassem <me@mbassem.com>
Diffstat (limited to 'apps/web/lib/store')
-rw-r--r--apps/web/lib/store/useSortOrderStore.ts13
1 files changed, 13 insertions, 0 deletions
diff --git a/apps/web/lib/store/useSortOrderStore.ts b/apps/web/lib/store/useSortOrderStore.ts
new file mode 100644
index 00000000..217e142e
--- /dev/null
+++ b/apps/web/lib/store/useSortOrderStore.ts
@@ -0,0 +1,13 @@
+import { create } from "zustand";
+
+import { ZSortOrder } from "@hoarder/shared/types/bookmarks";
+
+interface SortOrderState {
+ sortOrder: ZSortOrder;
+ setSortOrder: (sortOrder: ZSortOrder) => void;
+}
+
+export const useSortOrderStore = create<SortOrderState>((set) => ({
+ sortOrder: "desc", // default sort order
+ setSortOrder: (sortOrder) => set({ sortOrder }),
+}));