aboutsummaryrefslogtreecommitdiffstats
path: root/apps/mobile (follow)
Commit message (Collapse)AuthorAgeFilesLines
* feat(mobile): more native screensMohamed Bassem8 days20-409/+575
|
* fix(mobile): migrate from RN image to expo-imageMohamed Bassem2026-02-016-34/+55
|
* chore: replace dayjs with data-fnsMohamed Bassem2026-02-012-5/+3
|
* feat(mobile): use native tabs for mobileMohamed Bassem2026-02-014-90/+59
|
* fix(mobile): make the subtext in bookmark info page more subtleMohamed Bassem2026-02-011-3/+3
|
* feat(mobile): add signup support to the mobile appMohamed Bassem2026-02-011-1/+14
|
* fix(mobile): fix some mobile warning after expo 54 upgradeMohamed Bassem2026-02-0111-30/+50
|
* refactor: remove unused trpc files from web and mobileMohamed Bassem2026-02-0117-19/+20
|
* refactor: migrate trpc to the new react query integration mode (#2438)Mohamed Bassem2026-02-0121-170/+250
| | | | | | | | | * refactor: migrate trpc to the new react query integration mode * more fixes * more migrations * upgrade trpc client
* feat(mobile): show num bookmarks in the all lists viewMohamed Bassem2026-02-011-4/+30
|
* fix(mobile): fix mobile list stylingMohamed Bassem2026-02-014-12/+12
|
* ux(mobile): align all lists in the all lists tabMohamed Bassem2026-01-181-19/+34
|
* deps(mobile): upgrade to sdk 54Mohamed Bassem2026-01-184-514/+36
|
* fix(mobile): Reader settings preview on mobile matches reader view ↵Evan Simkowitz2026-01-182-16/+170
| | | | | | | formatting (#2365) * fix: Reader settings preview on mobile matches reader view formatting * address comments
* deps: upgrade react to 19.2.1Mohamed Bassem2026-01-151-1/+1
|
* fix(mobile): add custom headers to card banners. fixes #2342Mohamed Bassem2026-01-111-6/+9
|
* fix(mobile): fix the connection debug text areaMohamed Bassem2026-01-022-17/+14
|
* fix(mobile): fix save button in server-address screen on androidMohamed Bassem2026-01-021-8/+9
|
* feat(mobile): use react native sonnerMohamed Bassem2026-01-013-183/+38
|
* release(mobile): Bump mobile version to 1.8.4Mohamed Bassem2026-01-011-3/+3
|
* feat: add replace banner and attachment download (#2328)Mohamed Bassem2026-01-013-1/+42
| | | | | | | | | * feat: add replace banner and attachment download * add pdf preview in mobile app * fix menu order * fix comment
* fix(mobile): mobile modal UI issues (#2320)sergio2025-12-302-33/+46
| | | | | * fix(mobile): Make list type selector visible on Android * fix(mobile): Add native iOS overlay on Toast
* feat(mobile): create new list edit screen (#2310)sergio2025-12-293-2/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | | * feat(mobile): create new edit screen and path * refactor(mobile): use correct import for back navigation * refactor(mobile): remove set state for list type * feat(mobile): handle loading state * feat(mobile): add error handling * feat(mobile): add local validation for empty list name * refactor(mobile): use correct param name in edit path * feat(mobile): handle all pending state cases * refactor(mobile): remove unnecessary return * refactor(mobile): move type validation to top of the file * refactor(mobile): revert validation order * refactor(mobile): clean up submit values * fix(mobile): fix button views
* feat(mobile): make the settings menu look more native (#2307)Mohamed Bassem2025-12-295-103/+234
| | | | | | | * feat(mobile): make the settings menu look more native * more fixes * review comments
* feat(mobile): use oled friendly colors for android app. fixes #1958Mohamed Bassem2025-12-283-164/+5
|
* feat(mobile): Convert server address editing to modal in mobile app (#2290)Mohamed Bassem2025-12-223-84/+257
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: Convert server address editing to modal in mobile app Changed the server address editing experience from an inline button to a modal dialog. This improves UX by forcing users to explicitly save or cancel their changes rather than forgetting to click a save button. Changes: - Created ServerAddressModal component following the CustomHeadersModal pattern - Updated signin page to use the modal instead of inline editing - Enhanced settings page to allow changing server address (was previously read-only) - Added validation and error handling within the modal - Made the settings page server address clickable with visual feedback This resolves the issue where users forget to click the save button after editing the server address. * refactor: Convert server address to screen modal Changed from React Native Modal to Expo Router screen modal presentation. This provides a better native experience with proper navigation stack integration. Changes: - Created server-address.tsx as a screen route with modal presentation - Registered the route in root _layout.tsx - Updated signin.tsx to navigate to the screen modal instead of opening RN modal - Reverted settings page to original (no server address editing from settings) - Removed ServerAddressModal component (no longer needed) Benefits: - Native modal presentation with proper animations - Better integration with the navigation stack - Cleaner separation of concerns * merge the custom headers inside the server-add screen * fix the look of the address UI --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat(mobile): Show shared lists under a subsectionMohamed Bassem2025-12-201-8/+66
|
* fix(mobile): Fix title line clamp to 2 linesMohamed Bassem2025-12-201-4/+9
|
* fix(mobile): Add loading spinner to mobile list button (#2283)Mohamed Bassem2025-12-201-25/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix: add loading spinner to manage lists buttons in mobile app Adds visual feedback when adding/removing bookmarks from lists on the manage lists page. The checkbox is replaced with an ActivityIndicator while the operation is in progress, preventing multiple taps and improving UX when the server is slow. Changes: - Track isPending and variables from add/remove mutations - Add isListLoading helper to check if a specific list is loading - Show ActivityIndicator instead of Checkbox during operations - Disable Pressable interaction while loading * fix: add loading spinner to manage tags page in mobile app Adds visual feedback when adding/removing tags on the manage tags page. A spinner appears on the specific tag being modified, replacing the check/plus icon during the network request. Only the tag being modified is disabled and dimmed to prevent multiple taps. Changes: - Track isPending and variables from updateTags mutation - Add isTagLoading helper to check if a specific tag is loading - Show ActivityIndicator on the specific tag being modified - Only disable the tag item that's loading * revert the change in the tags --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat: add server version display to mobile app settings (#2276)Mohamed Bassem2025-12-202-0/+43
| | | | | | | | - Created useServerVersion hook to fetch server version from /api/version - Display both app version (from expo-constants) and server version - Added version info at the bottom of settings page - Server version shows loading state and handles errors gracefully Co-authored-by: Claude <noreply@anthropic.com>
* feat: Add unified reader settings with local overrides (#2230)Evan Simkowitz2025-12-159-23/+443
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add initial impl * fix some format inconsistencies, add indicator in user settings when local is out of sync * Fix sliders in user settings, unify constants and formatting * address CodeRabbit suggestions * add mobile implementation * address coderabbit nitpicks * fix responsiveness of the reader settings popover * Move more of the web UI strings to i18n * update translations for more coverage * remove duplicate logic/definitions * fix android font family * add shared reading setting hook between web and mobile * unify reader settings context for both web and mobile * remove unused export * address coderabbit suggestions * fix tests
* release(mobile): Bump mobile version to 1.8.3Mohamed Bassem2025-11-291-3/+3
|
* feat(mobile): proper handling for shared list permissions (#2165)Mohamed Bassem2025-11-236-146/+279
| | | | | | | | | | | | | | | | | | | | | | | | | | * 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-234-1/+276
| | | | | | | | | | | | | | | | | | | | | | | | * 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>
* deps: Upgrade typescript to 5.9Mohamed Bassem2025-11-161-1/+1
|
* fix(mobile): upgrade react-native-pdf to v7 to fix page alignmentMohamedBassem2025-11-152-3/+3
|
* fix(mobile): fix app memory page size compatibility (#2135)Mohamed Bassem2025-11-152-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | * fix(mobile): Add 16KB memory page size support for Android Updates to support Google Play's requirement for 16KB memory page sizes: - Update Expo SDK from 53.0.11 to 53.0.19 - Update expo-image from 2.2.0 to 2.4.0 - Update React Native from 0.79.3 to 0.79.5 - Configure expo-build-properties with: - compileSdkVersion: 35 - targetSdkVersion: 35 - buildToolsVersion: 34.0.0 - ndkVersion: 27.1.12297006 (r27 with 16KB support) These changes ensure all native libraries are compiled with proper alignment for 16KB page sizes as required by Android 15+ devices. Fixes Google Play rejection: "Your app does not support 16 KB memory page sizes" * some fixes * more fixes --------- Co-authored-by: Claude <noreply@anthropic.com>
* release(mobile): Bump mobile version to 1.8.2Mohamed Bassem2025-11-141-3/+3
|
* 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>
* release(mobile): Bump mobile version to 1.8.1Mohamed Bassem2025-11-081-3/+3
|
* fix(mobile): fix default address not correctly stored in settingsMohamedBassem2025-11-082-3/+3
|
* feat(mobile): add custom headers configuration in sign-in screen (#2103)Mohamed Bassem2025-11-087-5/+250
| | | | | | | | | | | | | | | | | | | | | | | | * 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>
* deps: Upgrade react-query to 5.90MohamedBassem2025-11-021-1/+1
|
* feat: display notes on bookmark card (#2083)xuatz2025-11-024-2/+107
| | | | | | | | | | | | | | | | | | | | | | | | | * 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-123-6/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-283-3/+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