aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/lib/hooks (follow)
Commit message (Collapse)AuthorAgeFilesLines
* fix: check import quota before importing bookmarks (#2232)Mohamed Bassem2025-12-081-1/+42
| | | | | | | | | | | | | | | | | | | | | | | * feat: check import quota before importing bookmarks Add quota validation before bookmark import to prevent users from exceeding their bookmark limits. The implementation includes: - New QuotaService.canImportBookmarks() method to check if user can import N bookmarks - New tRPC checkImportQuota procedure for client-side quota validation - Updated useBookmarkImport hook to parse files and check quota before import - Added error banner in ImportExport component to display quota errors - Optimized file parsing to avoid reading the file twice The quota check displays remaining bookmarks and provides clear error messages when the import would exceed the user's quota. * fix * some fixes --------- Co-authored-by: Claude <noreply@anthropic.com>
* fix: fix crash in search input when query contains a percent. fixes #1941Mohamed Bassem2025-11-021-1/+1
|
* feat: Add source field to track bookmark creation sources (#2037)Mohamed Bassem2025-10-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: Add source field to track bookmark creation sources Add a new 'source' field to the bookmarks table to track where bookmarks were created from. Possible values: api, web, cli, mobile, singlefile, rss. Changes: - Add source field to bookmarks table schema - Update Zod schemas to include source field - Update tRPC createBookmark procedure to store source - Update all callsites to pass appropriate source value: - api: Default to "api" if not provided - singlefile: Set to "singlefile" - rss: Set to "rss" in feedWorker - cli: Set to "cli" - mobile: Set to "mobile" in all mobile app bookmark creation - browser-extension: Set to "web" - web: Set to "web" in all web app bookmark creation - Create migration file for database schema change Fixes #2036 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Mohamed Bassem <MohamedBassem@users.noreply.github.com> * feat: Add extension source type for browser extension - Add 'extension' to bookmark source enum - Update browser extension to use 'extension' instead of 'web' Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com> * fix CI * fix CI * fix the migration file * add import source * make source nullish --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com>
* feat: Revamp import experience (#2001)Mohamed Bassem2025-10-042-8/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * WIP: import v2 * remove new session button * don't redirect after import * store and lint to root list * models + tests * redesign the progress * simplify the import session for ow * drop status from session schema * split the import session page * i18n * fix test * remove pagination * fix some colors in darkmode * one last fix * add privacy filter * privacy check * fix interactivity of import progress * fix test
* fix: handle list with slashes in their names and truncate long list names. ↵Mohamed Bassem2025-08-301-190/+82
| | | | fixes #1597
* fix(web): fix query getting rest when bookmark preview is closed. fixes #1521MohamedBassem2025-08-241-15/+11
|
* refactor: Extract the importing logic into its own hookMohamed Bassem2025-07-261-0/+266
|
* fix: preserve unsaved title changes when modifying bookmark tags in the edit ↵Adrian-Ryan Acala2025-06-071-0/+27
| | | | | | | | | | | | | | | | | dialog (#1515) * feat: preserve unsaved title changes when modifying bookmark tags Prevents loss of unsaved title edits when users interact with tag selectors or other UI elements. Adds useDialogFormReset hook to maintain form state consistency across component re-renders. Fixes #1339 * Revert unnecessary modifications --------- Co-authored-by: Mohamed Bassem <me@mbassem.com>
* fix(search): add new relevance sort order (#1392)xuatz2025-05-181-2/+7
| | | | | | | | | | | * fix(search): add new relevance sort order * address pr comments * some minor fixes --------- Co-authored-by: Mohamed Bassem <me@mbassem.com>
* chore: Rename hoarder packages to karakeepMohamedBassem2025-04-122-2/+2
|
* feat: Add Bookmark Sorting Feature (#812)Daksh Pareek2025-01-121-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* fix: Change search endpoint to accept query as raw stringMohamed Bassem2025-01-041-3/+2
|
* feat: Introduce advanced search capabilities (#753)Mohamed Bassem2024-12-311-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | * feat: Implement search filtering in the backend * feat: Implement search language parser * rename matcher name * Add ability to interleve text * More fixes * be more tolerable to parsing errors * Add a search query explainer widget * Handle date parsing gracefully * Fix the lockfile * Encode query search param * Fix table body error * Fix error when writing quotes
* feat: Implement the all highlights page. Fixes #620Mohamed Bassem2024-12-281-0/+22
|
* feat: Add basic pagination to searchBookmarks tRPCMohamed Bassem2024-12-221-10/+22
|
* fix(web): Reset search query and bulk edit when navigating away from the ↵MohamedBassem2024-10-121-1/+3
| | | | current page
* refactor: Extract useUpload into its own reusable hookMohamedBassem2024-09-211-0/+38
|
* feature(web): Allow uploading directly into lists/tags. Fixes #69MohamedBassem2024-04-091-21/+0
|
* feature(web): Add support for removing items from listsMohamedBassem2024-03-201-0/+21
|
* ui(web): Reduce debounce duration to 10ms in search barMohamedBassem2024-03-161-1/+1
|
* lint: Lint and format the entire repo with the new configsMohamedBassem2024-03-141-2/+2
|
* structure: Create apps dir and copy tooling dir from t3-turbo repoMohamedBassem2024-03-141-0/+73