aboutsummaryrefslogtreecommitdiffstats
path: root/apps/mobile/app (follow)
Commit message (Collapse)AuthorAgeFilesLines
* feat(mobile): proper handling for shared list permissions (#2165)Mohamed Bassem2025-11-232-44/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | * feat(mobile): Restrict bookmark editing in shared lists Apply the same ownership-based restrictions that exist in the web app to the mobile app. Users can now only edit, delete, and manage their own bookmarks, even when viewing them in shared lists. Changes: - BottomActions: Hide edit actions (lists, tags, info, delete) for non-owners - BookmarkCard: Hide favorite button and action menu for non-owners - Info page: Make title, notes, tags, and lists read-only for non-owners - NotePreview: Hide "Edit Notes" button for non-owners All restrictions are based on comparing the current user ID (from useWhoAmI) with the bookmark's userId field. * some fixes * make tags non clickable for collaborators * add leave list --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat(mobile): Add highlights page to mobile app (#2156)Mohamed Bassem2025-11-232-1/+70
| | | | | | | | | | | | | | | | | | | | | | | | * feat: Add highlights page to mobile app This commit adds a new highlights page to the mobile app where users can view all their highlights with the following features: - HighlightCard component: Displays individual highlights with colored borders, text, optional notes, timestamps, and a link to the source bookmark - HighlightList component: Renders a scrollable list of highlights with pull-to-refresh and infinite scroll pagination - UpdatingHighlightList component: Handles data fetching using tRPC infinite queries with automatic cache invalidation - New /dashboard/highlights route with large header title - Added navigation link in Settings tab under "App Settings" All components follow the existing mobile app patterns and integrate with the existing highlights API. * make it a tab --------- Co-authored-by: Claude <noreply@anthropic.com>
* fix: Hide shared lists where user is a viewer in Manage Lists dialog (#2164)Mohamed Bassem2025-11-231-1/+5
| | | | | | | | | | Users with viewer role cannot add/remove bookmarks from lists, so these lists should not appear in the Manage Lists dialog across all platforms (web, mobile, and extension). Changes: - Web: Updated BookmarkListSelector to filter out viewer lists - Mobile: Updated manage_lists.tsx to filter out viewer lists - Extension: Updated ListsSelector to filter out viewer lists Co-authored-by: Claude <noreply@anthropic.com>
* feat(mobile): Add AI summary field to mobile bookmark info (#2157)Mohamed Bassem2025-11-231-1/+153
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: Add AI summary field to mobile bookmark info page Add a new AI summary section to the mobile bookmark info page that allows users to: - Generate AI summaries for link bookmarks - View existing summaries with expand/collapse functionality - Regenerate summaries with the refresh button - Delete summaries The implementation is inspired by the web app's AI summary feature and includes: - Purple-themed styling to match the AI branding - Loading states for all actions - Toast notifications for success/error feedback - Support for dark mode - Only displays for LINK type bookmarks The summary is rendered using markdown and appears prominently in the bookmark info page, positioned between the title editor and tags section. * refactor: Simplify AI summary styling to match normal fields Remove purple border and background from the AI summary display to make it look more like a standard field. The summary now uses the default card background from InfoSection, making it visually consistent with other fields on the page. The purple "Summarize with AI" button is retained for the generate action. * make the expand button more clear --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat(mobile): Add tags screen to mobile app (#2163)Mohamed Bassem2025-11-232-1/+148
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: Add tags screen to mobile app Add a new Tags tab to the mobile app that displays all tags sorted by usage. The screen includes: - Paginated tag list with infinite scroll - Display of tag names and bookmark counts - Pull-to-refresh functionality - Navigation to individual tag detail screens - Empty state and loading indicators This brings tag browsing functionality to the mobile app, similar to the existing Lists tab. * feat: Add search functionality to mobile tags screen Add a search input to the tags screen that allows users to filter tags by name. The search includes: - Debounced search input (300ms delay) to reduce API calls - Real-time filtering as the user types - Sort by relevance when searching, by usage when not searching - Smooth animated clear button This enhances the tags browsing experience by making it easy to find specific tags in a large collection. * format --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat(mobile): Add smart list creation in mobile app (#2153)Mohamed Bassem2025-11-232-4/+69
| | | | | | | | | | | | | | | | | | | | | | * feat: Add smart list creation and display in mobile app This commit adds support for creating and displaying smart lists in the mobile application: - Enhanced list creation screen to support both manual and smart list types - Added type selector with manual/smart toggle buttons - Implemented conditional search query input for smart lists - Added query validation to ensure smart lists have valid queries - Improved error handling to display validation errors from the backend - Added visual indicators (sparkle icon) for smart lists in the lists tab - Implemented smart list query display in list detail view with sparkle badge - Enhanced UI with contextual help text for smart list queries The implementation follows the web app pattern while adapting the UI for mobile best practices. * fixes --------- Co-authored-by: Claude <noreply@anthropic.com>
* fix: remove incorrect array destructuring in mobile search (#2124)Mohamed Bassem2025-11-141-1/+1
| | | | | | | | | | | | | The search was crashing because of incorrect array destructuring on the useDebounce hook return value. useDebounce returns a string, not an array, so using `const [query] = useDebounce(...)` caused query to be undefined when the search string was empty. This resulted in passing { text: undefined } to the tRPC endpoint, which failed Zod validation expecting a string. Fixed by removing the array destructuring: const query = useDebounce(...) Co-authored-by: Claude <noreply@anthropic.com>
* fix(mobile): fix default address not correctly stored in settingsMohamedBassem2025-11-081-1/+1
|
* feat(mobile): add custom headers configuration in sign-in screen (#2103)Mohamed Bassem2025-11-082-1/+29
| | | | | | | | | | | | | | | | | | | | | | | | * feat(mobile): add custom headers configuration in sign-in screen Add ability for mobile app users to configure custom HTTP headers that are sent with every API request. This enables users to add authentication headers, proxy headers, or other custom headers required by their server setup. Changes: - Add customHeaders field to mobile app settings schema - Create CustomHeadersModal component for managing headers - Update sign-in screen with link to configure custom headers - Modify tRPC provider to merge custom headers with Authorization header The custom headers are stored securely in the app settings and persist across sessions. * fix keyboard * add custom headers to other callsites --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat: display notes on bookmark card (#2083)xuatz2025-11-021-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | * feat: display notes on bookmark card * apply styling * include mobile impl * apply pr comments * add display options menu into PR * put it under app setting * cleanup * address pr comments * change the default for show notes to false * make the in-card note font lighter --------- Co-authored-by: Mohamed Bassem <me@mbassem.com>
* feat: Add source field to track bookmark creation sources (#2037)Mohamed Bassem2025-10-122-5/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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: Add tag search and pagination (#1987)Mohamed Bassem2025-09-282-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: Add tag search and use in the homepage * use paginated query in the all tags view * wire the load more buttons * add skeleton to all tags page * fix attachedby aggregation * fix loading states * fix hasNextPage * use action buttons for load more buttons * migrate the tags auto complete to the search api * Migrate the tags editor to the new search API * Replace tag merging dialog with tag auto completion * Merge both search and list APIs * fix tags.list * add some tests for the endpoint * add relevance based sorting * change cursor * update the REST API * fix review comments * more fixes * fix lockfile * i18n * fix visible tags
* fix(mobile): Use uncontrolled inputs for signin pageMohamedBassem2025-08-311-57/+30
|
* feat(mobile): Add a default server address during signinMohamedBassem2025-08-311-14/+78
|
* fix(mobile): Fix text bookmark editorMohamedBassem2025-08-311-379/+20
|
* fix(mobile): Disable the save button when bookmark is being savedMohamedBassem2025-08-311-2/+2
|
* feat(mobile): Retheme the mobile app (#1872)Mohamed Bassem2025-08-2618-300/+371
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add nativewindui * migrate to nativewindui text * Replace buttons with nativewindui buttons * Use nativewindui search input * fix the divider color * More changes * fix manage tag icon * fix styling of bookmark card * fix ios compilation * fix search clear * fix tag pill border color * Store theme setting in app settings * fix setting color appearance * fix coloring of search input * fix following system theme * add a save button to info * fix the grey colors on android * fix icon active tint color * drop the use of TextField
* feat: Add delete button and creation dates to mobile info pageMohamedBassem2025-08-241-33/+78
|
* deps: Upgrade expo & nextjs to react 19 (#1565)Mohamed Bassem2025-08-202-43/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Attempt to upgrade expo 53 * Attempt upgrade nextjs * Fix a bunch of peer deps * upgrade some docs deps * fix typecheck * update the shadcn calendar component * more fixes * more fixes * revert ollama upgrade * update react version to use carets * remove react-select from landing * fix the typescript error caused by customFetch * upgrade the new grid user setting to nextjs 15 * mobile: enable react canary to support react 19.1 * upgrade react native menu * fix navigation context error
* fix(mobile): Fix image quality slider showing lots of decimal places. fixes ↵Mohamed Bassem2025-07-191-1/+1
| | | | #1735
* feat(mobile): Add user setting for default bookmark view mode (#1723)xuatz2025-07-174-4/+108
| | | | | | | | | | | | | | | | | * feat(mobile): add user setting for default bookmark view mode * regen db migration script * clean up implementation * Update docs/docs/07-Development/01-setup.md * Update GEMINI.md * use local setting instead of storing value in db * improve start-dev.sh to also handle for db migration * rename mobileBookmarkClickDefaultViewMode to defaultBookmarkView for consistency
* feat: adding search history #1541 (#1627)lexafaxine2025-07-141-14/+115
| | | | | | | | | | | | | | | | | | | | | | | * feat: adding search history * fix popover should close when no matched history * remove unnecessary react import * replace current Input component with CommandInput for better UX * add i18n for recent searches label * fix bug * refactor local storage logic to make code reusable * using zod schema to validate search history and revert debounce change * Consolidate some of the files --------- Co-authored-by: Mohamed Bassem <me@mbassem.com>
* fix(mobile): Fix crash when bookmark doesn't have archive or screenshot. ↵Mohamed Bassem2025-07-061-23/+58
| | | | Fixes #1584
* feat(mobile): Add tag clearing functionality to tag list (#1595)Ashok Úradníček2025-06-221-1/+31
|
* fix(mobile): always visible search bar in tags list (#1596)Ashok Úradníček2025-06-221-0/+1
|
* chore: migrate away from eslint to oxlint (#1642)xuatz2025-06-221-1/+1
| | | | | | | * chore: migrate away from eslint to oxlint * revert turbo task name lint * it seems like we can remove the seemingly default globals
* feat(mobile): Add support for viewing PDFs (#1519)Code Love2025-06-081-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat(mobile): add react-native-pdf dependency Add react-native-pdf package to enable PDF viewing functionality in the mobile app. This will be used to display PDF bookmarks directly within the app. Part of #597 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat(mobile): add PDF viewer component with authentication support Add a dedicated PDFViewer component that handles downloading and displaying PDF assets with proper authentication headers. Features include: - Download progress indication - Error handling with user-friendly messages - Automatic cleanup of temporary files - Proper memory management to prevent leaks - Content type validation for PDF files Part of #597 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat(mobile): integrate PDF viewing in bookmark detail view Integrate the PDFViewer component to display PDF bookmarks inline. When a bookmark is a PDF asset, it now renders using the dedicated PDF viewer instead of treating it as an image. Also adds external PDF opening functionality with platform-specific handling for iOS and Android, proper filename handling, and temporary file cleanup. Additionally fixes dark mode styling for the navigation header to ensure proper contrast in both light and dark themes. Part of #597 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * revert the open externally button * use react query for downloading the pdf --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: MohamedBassem <me@mbassem.com>
* feat(mobile): add reader/screenshot/archive view to bookmark preview (#1509)Simon Kenny2025-06-071-12/+105
| | | | | | | | | | | * feat(mobile): add reader view by default to bookmark detail view, retaining WebView fallback * feat(mobile): add dark mode support for mobile reader view * Add selectors for different views for bookmark link --------- Co-authored-by: MohamedBassem <me@mbassem.com>
* refactor: Move bookmark utils from shared-react to sharedMohamed Bassem2025-05-311-1/+1
|
* fix: Dont download html content by default in the bookmark grid. Fixes #1198Mohamed Bassem2025-04-131-1/+3
|
* chore: Rename hoarder packages to karakeepMohamedBassem2025-04-128-15/+15
|
* fix: Deprecate the updateBookmarkText trpc endpoint and replace it with ↵MohamedBassem2025-04-081-2/+2
| | | | updateBookmark
* fix(mobile): Update karakeep logo and splash screenMohamedBassem2025-04-061-1/+1
|
* fix(mobile): Fix shared links getting stored as text. #956MohamedBassem2025-03-161-1/+3
|
* fix(mobile): add header class name corresponding to dark mode for text color ↵Md. Saadman Farhad2025-02-091-0/+1
| | | | (#1005)
* feat: add URL protocol validation to extension and mobile app (#996)Ahmad Mujahid2025-02-091-0/+13
|
* fix(mobile): Add the email trimming that was removed by mistakeMohamedBassem2025-02-011-1/+1
|
* fix(mobile): Fix flicker on sign in page. Fixes #911MohamedBassem2025-02-015-109/+53
|
* fix(mobile): margin for "Lists" tab content (#927)Daniel Vigaru2025-02-011-1/+5
| | | | | | | | | | | | | | | * fix: left margin for list items * refactor: move type into func definition * fix: missing return type Co-authored-by: Joseph Chambers <5374985+imcodingideas@users.noreply.github.com> * style: remove trailing space --------- Co-authored-by: Joseph Chambers <5374985+imcodingideas@users.noreply.github.com>
* feat: Add basic pagination to searchBookmarks tRPCMohamed Bassem2024-12-221-4/+11
|
* fix: trim whitespace from email on signin page (#714)Zach2024-12-191-1/+1
| | | | | | | | | | | * fix: trim whitespace from email * fix: trim email in setter Co-authored-by: Mohamed Bassem <me@mbassem.com> --------- Co-authored-by: Mohamed Bassem <me@mbassem.com>
* fix(mobile): useLayoutEffect for navigator changesMohamedBassem2024-12-164-12/+18
|
* ui(mobile): Use native search bar for manage tags pageMohamedBassem2024-12-161-80/+80
|
* fix(mobule): Fix keyboard issues in the info screenMohamedBassem2024-12-161-22/+24
|
* ui(mobile): Make page titles more nativeMohamedBassem2024-12-167-55/+64
|
* fix(mobile): Use keyboard avoiding view in the info pageMohamedBassem2024-11-241-10/+17
|
* deps(mobile): Upgrade to Expo 52 (#692)Mohamed Bassem2024-11-245-83/+76
| | | | | | | | | | | * fix(mobile): Sharing bookmark modal * WIP: Upgrade to 52 * post ugprade fixes * more fixes * fix padding in tabbar
* feature(mobile): Add support for creating tags from the manage tags pageMohamedBassem2024-11-241-13/+86
|
* fix(mobile): Dont dismiss keyboard on tag selectionMohamedBassem2024-11-241-0/+1
|
* feat(mobile): Add support for managing tags from mobileMohamedBassem2024-11-235-16/+202
|