Skip to content

Add React Native support client with native UI and feature parity - #38

Merged
lhr0909 merged 3 commits into
feat/native-device-contextfrom
feat/react-native-client
Oct 3, 2026
Merged

lhr0909 merged 3 commits into
feat/native-device-contextfrom
feat/react-native-client

Conversation

@lhr0909

@lhr0909 lhr0909 commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Adds @respondkit/react-native and a runnable iOS/Android example so React Native hosts can present the same support experience as the existing clients. Based on #37 (device context), which builds on #36 (email capture), #35 (greeting), and #34 (Cloudflare email).

The native screen includes local fresh-session greetings, email capture, native model/OS context, conversation history, date/time labels and links, optimistic sends with immutable retries, persisted drafts, closed-conversation handling, and host-owned unread indicators. The store preserves pending sends across restarts, isolates account switches, refreshes only in the foreground, and acknowledges only the loaded visible transcript. The SDK guide includes a feature parity table and integration instructions.

The example has a key-free injected transport for review and native projects for both platforms. Release packaging, clean consumer checks, and CI now include the new SDK. Production hosts supply their inbox, signed identity provider, and storage adapter.

Validation:

  • All 273 workspace tests pass, including 12 React Native tests for retries, persistence failures, account isolation, auth renewal, pagination, read tracking, email, polling, and closed threads.
  • Formatting/lint/type checks, application builds, package builds/lint, and clean npm tarball consumer checks pass.
  • Android example APK and iOS simulator target compile; both Metro production bundles pass.
  • Android emulator: saved email removes the prompt after reopening; custom greeting stays local; message/reply and link rendering work; a reply received with chat closed sets unread; opening the visible transcript clears unread; keyboard layout remains usable.
  • Swift tests/build and existing Android SDK builds also pass. iOS interaction has not been manually exercised.

No packages have been published and no production services have been deployed. Live Cloudflare mailbox setup/testing remains documented in #34.

CI follow-up: the Android example now resolves React Native from the app and Gradle/codegen tooling from React Native’s own dependencies instead of assuming a root-hoisted install. Both hoisted and clean isolated pnpm installs produce an Android APK. GitHub’s React Native job now passes, including both Metro bundles and the full Android build. This fix is carried forward through #39, #40, and #41.

@lhr0909
lhr0909 added this pull request to stack #42 October 3, 2026 03:07
@lhr0909
lhr0909 merged commit 3ba7a48 into main Oct 3, 2026
8 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