diff options
| author | Daksh Pareek <dakshpareek7@gmail.com> | 2025-01-12 21:53:34 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-12 16:23:34 +0000 |
| commit | b6293d118e7545b81e216073e66cd54c5b1a0b00 (patch) | |
| tree | 19c2308ea7ea26593d890770945a2c5c71440048 /apps/web/lib/store | |
| parent | b8bd7d7eb27aaaadae728599f64a0874f66196ea (diff) | |
| download | karakeep-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.ts | 13 |
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 }), +})); |
