Skip to content

fix(mobile): composer chrome + faster thread open#83

Merged
patroza merged 4 commits into
fork/changesfrom
fix/mobile-composer-scroll-chrome
Jul 26, 2026
Merged

fix(mobile): composer chrome + faster thread open#83
patroza merged 4 commits into
fork/changesfrom
fix/mobile-composer-scroll-chrome

Conversation

@patroza

@patroza patroza commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Summary

Composer chrome (original #83)

  • Pin thread composer to the bottom via full-screen sticky host (fixes mid-screen float)
  • Solid Scroll to latest / New activity chip (bg-card; bg-background was not a theme token)
  • Stronger composer fade; flex-1 thread route host

Thread open latency

  • Prefetch thread detail on list onPressIn (starts SQLite → HTTP snapshot → WS before navigate)
  • Warm hold last selected thread so back→reopen does not cold-hydrate
  • Feed remount only once empty→filled per thread open (no remount if feed briefly clears during sync)

Not lost from #64

Optimistic outbox (memory-first enqueue, send bubbles, queue controls) remains on fork/changes via merge commit eef598876.

Test plan

  • mobile outbox + threadActivity tests (30)
  • mobile typecheck
  • Open threads from list: first open starts loading earlier; reopen same thread is warm
  • Composer stays bottom-anchored; scroll chip is opaque

@patroza
patroza force-pushed the fix/mobile-composer-scroll-chrome branch from 4269875 to 73c7d94 Compare July 26, 2026 10:33
patroza added 2 commits July 26, 2026 10:38
KeyboardStickyView was absolutely positioned with bottom:0, so a stale
keyboard height left the input floating mid-feed. Host it in a full-screen
column instead, wrap the route body in a flex-1 container, opaque the
composer blend, and give Scroll to latest a real card background (bg-background
was not a theme token).
Wrap the thread route body in a flex-1 View instead of a fragment so the
composer overlay always measures against the full content column.
@patroza
patroza force-pushed the fix/mobile-composer-scroll-chrome branch from 73c7d94 to 7e756a4 Compare July 26, 2026 10:38
patroza added 2 commits July 26, 2026 12:59
absoluteFillObject is not in the React Native StyleSheet typings used here.
…mounts

Start SQLite/HTTP/WS hydrate on press-in and keep the last selected thread
warm so open no longer waits for the route to mount cold. Avoid remounting
the feed when detail briefly empties after the first filled paint.
@patroza patroza changed the title fix(mobile): pin composer bottom + solid scroll-to-latest chip fix(mobile): composer chrome + faster thread open Jul 26, 2026
@patroza
patroza merged commit 6f4b33b into fork/changes Jul 26, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant