Commit Graph

12 Commits

Author SHA1 Message Date
Ylber Gashi
36b08964b5 Mobile: QoL polish sprint — toast, haptics, chat sorting, skeletons, scroll-to-bottom (#356)
Replace blocking Alert.alert error callbacks with non-blocking slide-down toast
notifications across ~15 mutation error handlers. Add expo-haptics for tactile
feedback on long-press actions, message send/edit, emoji selection, and reaction
toggles. Sort chat lists by updatedAt instead of createdAt so most-recently-active
conversations appear first. Bold unread chat names and improve preview contrast.
Add skeleton loading placeholders (page, file, message, list variants) replacing
generic spinners. Add scroll-to-bottom floating button in message lists. Extract
reusable ListSeparator component. Gate SQL query logging behind __DEV__. Tune
FlatList performance with removeClippedSubviews and render batching. Fix home
screen space avatars and simplify quick action labels.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 11:26:38 +01:00
Ylber Gashi
0bac909477 Mobile: reliability, polish, and test infrastructure sprint (#349)
Consolidate duplicated utility functions into shared format-utils module.
Replace unsafe static ref pattern in PageWebView with forwardRef/useImperativeHandle.
Stabilize useNodeListQuery memoization by replacing JSON.stringify deps.
Add React.memo to FlatList item components (MessageItem, ChatListItem,
SpaceListItem, FileItem). Wrap all tab route layouts with ErrorBoundary.
Set up jest-expo test infrastructure with initial format utility tests.
Add empty states for message list and home screen. Add accessibility
labels to buttons, inputs, list items, and navigation elements. Create
animated skeleton loading components for node lists. Fix pre-existing
lint errors in import ordering.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 16:47:10 +01:00
Ylber Gashi
2be4b599e7 Mobile: fix page editor keyboard and interaction issues (#346)
* Mobile: add prebuild hook and submit config for EAS builds

Add prebuildCommand to run copy-editor.js during EAS builds so the
editor.html asset is available for Metro bundling. Also restore the
App Store Connect submit credentials (appleId, appleTeamId, ascAppId)
so builds auto-submit to TestFlight.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Mobile: use eas-build-post-install hook for editor asset

prebuildCommand replaces expo prebuild entirely, causing build failures.
Use eas-build-post-install lifecycle hook instead to run copy-editor.js
after npm install but before the native build.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Mobile: fix page editor keyboard and interaction issues

- Disable native WebView scrolling and use CSS overflow to prevent
  scroll-to-top when keyboard opens
- Fix slash command click-through by preventing ProseMirror from
  processing mousedown events immediately after command selection
- Remove keyboard from auto-opening on page load and auto-focusing
  cursor; keyboard now only appears on user tap
- Add eas-build-post-install hook to build editor HTML asset during
  EAS builds
- Improve editor.html iframe sandbox and CSP settings

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 22:17:36 +01:00
Ylber Gashi
c945579abd Mobile: WebView-based page editor with TipTap (#345)
* Mobile: replace inline page editor with WebView-based TipTap editor

Replaces the plain-text block-by-block page editor with a Vite-built
WebView that runs the full TipTap rich text editor. The editor HTML is
bundled as a single self-contained asset, loaded via expo-asset and
rendered in react-native-webview. Communication between RN and the
WebView uses postMessage/onMessage bridge for init, mutations, queries,
theme changes, and navigation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Mobile: reorganize WebView editor as standalone package

Moves the editor WebView app from apps/mobile/src/editor-webview/ to
apps/mobile/webviews/editor/ as a first-class build target with its own
package.json, tsconfig.json, and vite.config.ts. This fixes TypeScript
compilation (editor code no longer typechecked as React Native) and
makes the build story clearer.

- WebView editor is now at apps/mobile/webviews/editor/
- Built artifact copied to apps/mobile/assets/editor-dist/ on prestart
- Vite dev server support for fast iteration
- Tailwind CSS @source path fixed (../../../../packages/ui)
- Page title editing restored via RenameNodeSheet
- File preview now converts file:// to base64 data URLs for WebView
- WebView hidden until ready to avoid white flash
- Keyboard accessory bar hidden on iOS

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 13:43:17 +01:00
Ylber Gashi
7d44085a8e Improve mobile reliability and rendering (#340) 2026-03-14 11:45:14 +01:00
Ylber Gashi
4978592dc1 Improve mobile startup and theme reliability (#339) 2026-03-14 00:56:18 +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
1259f7bd91 Update packages (#322) 2026-02-09 15:42:21 +01:00
Hakan Shehu
5ea69ba06d Update packages (#311) 2026-01-30 17:38:34 +01:00
Hakan Shehu
3ccde245e9 Update pakcages (#278) 2026-01-08 11:17:53 +01:00
Hakan Shehu
7149ef5466 Update packages (#267) 2025-11-19 13:55:39 -08: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