Commit Graph

4 Commits

Author SHA1 Message Date
Ylber Gashi
0711b24d5b Mobile: set up EAS Build and TestFlight for iOS team testing (#343)
* Mobile: set up EAS Build and TestFlight distribution for iOS team testing

- Add eas.json with production build profile (Node 22.16.0)
- Configure iOS app signing and provisioning via EAS
- Add Metro mocking for Kysely FileMigrationProvider (Hermes compilation error)
- Pin react-dom@19.1.0 to match react version (package.json overrides)
- Store EAS projectId in app.json for Expo CLI integration

The app now builds on EAS cloud and distributes to TestFlight. Team members can be added as internal testers for easy installation on their iPhones.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* Mobile: set up EAS Build and TestFlight distribution for iOS team testing

- Add eas.json with production build profile (Node 22.16.0)
- Configure iOS app signing and provisioning via EAS
- Add Metro mocking for Kysely FileMigrationProvider (Hermes compilation error)
- Pin react-dom@19.1.0 to match react version (package.json overrides)
- Store EAS projectId in app.json for Expo CLI integration

The app now builds on EAS cloud and distributes to TestFlight. Team members can be added as internal testers for easy installation on their iPhones.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-14 22:24:45 +01:00
Ylber Gashi
2d629b54f2 Mobile: eliminate duplication, fix bugs, and improve consistency (#336)
This commit consolidates 4 phases of polish to reduce 811 lines of duplicated code and fix critical bugs:

Phase 1: Extract utilities
- Create src/lib/radar-utils.ts for unread count computation
- Create src/lib/node-utils.ts for type-safe node name extraction and node type labels
- Create src/lib/navigation-utils.ts for shared node navigation logic
- Relocate src/components/nodes/folder-add-sheet.tsx → src/hooks/use-folder-file-upload.ts (was misnamed)

Phase 2: Extract ConversationScreen
- Create src/components/conversation/conversation-screen.tsx (shared chat/channel messaging UI)
- Simplify [chatId].tsx and [channelId].tsx to thin wrappers (~40 lines each)
- Fix unread count race condition: sequence node.interaction mutations with async/await

Phase 3: Extract NodeChildList
- Create src/components/nodes/node-child-list.tsx (shared space/folder child node list)
- Simplify space/[spaceId].tsx and folder/[folderId].tsx (100+ fewer lines each)
- Consolidate child node rendering, navigation, and long-press actions

Phase 4: Fix hardcoded paddingTop
- Replace all hardcoded paddingTop: 56/60 with useSafeAreaInsets().top + 8
- Apply to 18+ screens (home, spaces, chats, settings, pages, files, etc.)

Bugs fixed:
- Avatar picker now validates file existence (useEffect + appService.fs.exists)
- Avatar initials use muted color palette matching UserAvatar
- Home screen "Spaces" button now shortcuts to first space (or list if none)
- About screen now shows correct account server (not servers[0])
- Splash screen resizeMode "cover" eliminates black bars, backgroundColor matches image

Other improvements:
- Server URL placeholder updated to "http://your-server.com/config"
- Metro bundler now recognizes .db asset extensions (emoji/icon SQLite files)
- README updated to document Metro mocking and asset handling
- All screens now properly account for notch/dynamic island (safe area)

Impact: -811 lines, +182 insertions = 629 lines net reduction with zero feature changes

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-11 23:52:24 +01:00
Ylber Gashi
298f3cc173 Rewrite mobile app with Expo Router and React Native
Migrate from Vite/web-based setup to native React Native with Expo Router.
Includes auth flows, chat/spaces/settings screens, CRDT sync, file upload,
workspace switching, emoji picker, message reactions, and iOS/Android projects.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 16:07:20 +01:00
Hakan Shehu
3e4c8b8125 Implement new routing with tanstack router and mobile app kickoff (#248)
* Init mobile app
* Minor fixes and improvements
* Improve assets loading
* Fix event bus proxy
* Improve emojis and icons loading
* Improve app initialization in web
* Init tanstack router
* Refactor components
* Refactor some more components
* Refactor layouts
* Improve routing
* Improve routing
* Routing improvements
* Make sidebar work in mobile
* Refactor container and breadcrumb
* Fix some packages and warnings
* Encode and decode yjs update for ipc communication
* Refactor servers in client
* Fix some errors and warnings in editor and sidebar
* Add route masking for web
* Improve container layout
* Improve ui for mobile
* Improve mobile ui
* Create custom link component
* Router improvements
* Implement tabs for desktop
* tabs improvements
* Refactor routes
* Layout improvements
* Improve desktop tabs
* Use tanstack-db for global collections
* Improve tanstack db collections
* Refactor workspaces and accounts databases and routes locally
* Use tanstackdb for users
* Use tanstackdb for uploads and downloads
* Use tanstackdb for temp files
* Rename database to collections
* Improve tabs
* Fix packages
* Improve local file handling
* Rename sync cursor keys
* Save some bootstrap data in a file
* Reset all data on new version update in desktop
* Minor refactor
* Implement app reset on startup
* UI fixes and improvements
* More Ui improvements
* Fix logout
* Add tab in route contexts for workspace routes
* Store last used workspace id as metadata
* Fix account logout
* Fix file preview
* Fix file thumbnail loading in tabs
* Fix chat tab loading
* Fix some redirect handling
* Disable staletime for icon.svg.get query
* Fix not found pages and throws
* add readme for mobile
* fix some keys
* Improve add tab handler
* Fix path
2025-11-11 07:00:14 -08:00