@robono/messaging-react-native 0.11.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 0.12.0 — unpublished candidate
2
+
3
+ ## 0.13.0
4
+
5
+ - Share the Messenger sign-in, country/phone controls and loading/recovery screen with website integrations.
6
+ - Require the messaging core update for direct hosted routing and clearer connection errors.
7
+
8
+
9
+ Keep Android recording alive through microphone permission dialogs; process two bounded thumbnails concurrently with permission-safe reuse. Add authenticated host downloads and host-controlled links/addresses. Keep Expo 55 audio handling compatible. Add self-chat and consumer integration hooks, stable forwarded-message delivery states and group-invitation eligibility.
10
+
1
11
  ## 0.10.0 — release candidate
2
12
 
3
13
  ## 0.11.1
package/README.md CHANGED
@@ -168,7 +168,21 @@ Install native dependencies with your Expo project's installer so their versions
168
168
  npx expo install expo-audio expo-image-picker expo-document-picker expo-file-system expo-sharing expo-video expo-crypto react-native-safe-area-context react-native-svg
169
169
  ```
170
170
 
171
- This entry targets Expo SDK 55–56; the core components do not require Expo. Configure the `expo-audio` plugin's `microphonePermission` with your app's explanation (for example, “Allow microphone access to record voice messages”). Keep background recording disabled. Native dependency or permission changes need a new development/store build; screen changes do not. The standard system photo picker does not require full photo-library access. Documents use the platform's file picker, without broad storage access.
171
+ This entry targets Expo SDK 55–56; the core components do not require Expo.
172
+
173
+ | Project | Supplied integration |
174
+ | --- | --- |
175
+ | Expo 55 or 56 | Use the `/expo` entry and `npx expo install` for matching native packages. |
176
+ | Expo 54 or earlier | The supplied Expo adapter is not supported. Upgrade Expo before running setup; do not force incompatible peer dependencies. |
177
+ | React Native without Expo | Use the core UI and documented device/storage adapters. The Expo version range does not apply to these components. |
178
+
179
+ The installer checks the Expo version before changing files. Pin the Robono version
180
+ in your lockfile and update through the setup command so required native changes
181
+ are reported. Optional calling and background movement require a rebuilt native
182
+ app; Expo Go does not include those modules. A successful package installation is
183
+ not a guarantee that unsupported Expo versions will work.
184
+
185
+ Configure the `expo-audio` plugin's `microphonePermission` with your app's explanation (for example, “Allow microphone access to record voice messages”). Keep background recording disabled. Native dependency or permission changes need a new development/store build; screen changes do not. The standard system photo picker does not require full photo-library access. Documents use the platform's file picker, without broad storage access.
172
186
 
173
187
  ```tsx
174
188
  import {
@@ -310,10 +324,7 @@ in `media.waveform`. The playback track remains seekable when the waveform is
310
324
  hidden. Managed storage computes waveform data independently of this preference.
311
325
 
312
326
  Groups offer polls; direct chats offer a recipient-only Yes/No question whose
313
- first answer is final. Both use the same app-height popup frame as tracking and social previews. Deploy migration
314
- `20261101017400_messaging_captions_questions.sql` and the updated messaging handler
315
- before releasing these SDK changes. Deploy the updated media inspector before the
316
- updated managed-media handler. These source changes have not been published.
327
+ first answer is final. Both use the same app-height popup frame as tracking and social previews. The hosted service supplies the required message and media support.
317
328
 
318
329
  ### Optional downloads in the viewer
319
330
 
@@ -419,8 +430,9 @@ sender. Times are stored in UTC and displayed in the device's current time zone.
419
430
  Scheduling uploads selected attachments before confirming the queue; closing the
420
431
  app does not prevent server delivery afterward. The selected time is approximate
421
432
  to the minute. Current access, screening and spending rules still apply at send
422
- time. In-app voice recording and poll creation retain their existing immediate-send
423
- flows; custom composers can schedule their finalized content through the same API.
433
+ time. Stop a voice recording to stage it, then hold Send to schedule it just like
434
+ a photo, video or file. Poll creation sends immediately; custom composers can
435
+ schedule finalized content through the same API.
424
436
 
425
437
  ### Screen sharing in the complete messenger
426
438
 
@@ -457,3 +469,50 @@ Robono hosts optional call recording and transcription. Enable recording once in
457
469
  The supplied adapters also offer camera/microphone/speaker checks and camera background blur. Screen sharing is separate. Phone blur requires rebuilding the native app; browser blur downloads its model only when selected and needs the documented content-security policy. Background processing stays on the device.
458
470
 
459
471
  See the [recording and call tools guide](https://robono.com/guides/call-recording.html) for prices, retention, short-lived downloads, deletion, platform requirements and label customization. Captions arrive in short batches with several seconds of delay and can be inaccurate; incomplete transcripts are marked.
472
+
473
+ ### Customer-controlled links, downloads and account actions
474
+
475
+ `linkHandling` can disable URLs/addresses independently or route their taps through
476
+ `openUrl(url, message)` / `openAddress(address, message)`. A disabled link renders
477
+ as ordinary text. Host overrides also suppress social/tracking shortcuts that
478
+ would otherwise bypass the host's navigation policy.
479
+
480
+ `onDownloadAttachment({file,message,signal})` changes the standard viewer's Download
481
+ action to a host-owned destination. Enable `appearance.showDownloadButton`. The
482
+ SDK rechecks access, supplies a private temporary file, and cleans it up afterward;
483
+ copy it to your destination before resolving the callback. Do not retain its URI
484
+ as a permanent saved file. Cancellation and permission changes still apply.
485
+
486
+ `ExpoMessenger` offers `onNewConversation` and `inboxOverlay` for a host-owned
487
+ contact picker using the exported `MessagingPopup`. Account callbacks include
488
+ `onEditProfile`, `onDeleteAccount`, and `onSignOut`; the host supplies its own
489
+ confirmation and account service. These optional callbacks do not grant service
490
+ permissions or delete an account by themselves.
491
+
492
+ ### Shared sign-in presentation
493
+
494
+ `MessagingSignIn`, `MessagingPhoneInput` and `MessagingChoicePicker` are optional
495
+ shared UI components, also exported by `@robono/messaging-web`. Robono's new
496
+ consumer app uses these same components. The card, code cells, consent row,
497
+ buttons and field proportions follow the existing Messenger.
498
+
499
+ Continue using your existing login when embedding Messenger. These components
500
+ add **no second account, SMS provider, credential storage or authentication
501
+ service**. Your host controls `stage`, field values, validation, busy/error state,
502
+ verification expiry and `onSubmit`. Supply your own company logo/name through
503
+ `logo` or `appearance`, your colors through `appearance.colors`, consent copy and
504
+ policy links through `consent`, and translated text through `labels`.
505
+
506
+ Render your `MessagingPhoneInput` and its `MessagingChoicePicker` together inside
507
+ `MessagingSignIn.phoneField`; profile choices belong in `profileFields`. This
508
+ keeps website pickers inside the sign-in container. The host supplies supported
509
+ countries and validates/normalizes numbers with its own authentication provider.
510
+ Use `secondsRemaining` only with an expiry returned by that provider. An expired
511
+ code changes the submit action to “Send a new code”; the host performs that action.
512
+ Never include private integration keys in these props.
513
+
514
+ `MessagingConnectionState` is the shared waiting/recovery screen used by customer
515
+ starters and Robono Messenger. Pass `error`, `onRetry`, optional `onSignOut`,
516
+ `appearance`, and translated `labels`. Account actions appear only on failure,
517
+ never during normal connection startup. The hosted connection selects Robono's
518
+ approved direct transport automatically; no extra phone setup is required.