Skip to content

feat(sample): Visual Inbox demo screen in the RN example app - #622

Merged
mahmoud-elmorabea merged 2 commits into
visual-inbox-wrappersfrom
rn-inbox-sample
Jul 30, 2026
Merged

feat(sample): Visual Inbox demo screen in the RN example app#622
mahmoud-elmorabea merged 2 commits into
visual-inbox-wrappersfrom
rn-inbox-sample

Conversation

@mahmoud-elmorabea

@mahmoud-elmorabea mahmoud-elmorabea commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Stacked on #615 (SDK). Adds only the demo UI — no SDK changes.

A Visual Inbox screen exercising all three components (drop-in overlay, standalone bell driving a modal, embedded message list) plus an on-screen readout of the InboxEventListener callbacks so the listener bridge can be checked by hand.

Build wiring the sample needs to resolve the unreleased native inbox — the example Podfile branch pins and core library desugaring — deliberately lives in the SDK PR so that one stands on its own in CI.

Merge #615 first.


Note

Low Risk
Example-app-only UI and navigation changes with no production SDK or auth logic in this diff.

Overview
Adds a Visual Inbox example screen that exercises NotificationInboxBellView (SDK-owned panel on tap) and an embedded NotificationInboxView message list, with layout notes to avoid nesting the list in a ScrollView.

While that screen is mounted, it registers registerInboxEventListener to surface inbox lifecycle and action events via flash toasts, opens action URLs through Linking when the host owns navigation, and cleans up the subscription on unmount.

Navigation and deep links: new stack route and home entry point; signed-in users get visual-inbox / inbox-messages linking paths so anonymous deep links do not hit an empty inbox.

The example lockfile bumps the local customerio-reactnative tarball from 6.4.0 to 6.5.2.

Reviewed by Cursor Bugbot for commit c3e6432. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions

github-actions Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Sample app builds 📱

Below you will find the list of the latest versions of the sample apps. It's recommended to always download the latest builds of the sample apps to accurately test the pull request.


  • iOS FCM: 622.2.0 (29755758)
  • iOS APN: 622.2.0 (29755758)
  • Android APN: 622.2.0 (29755758)

@mahmoud-elmorabea
mahmoud-elmorabea marked this pull request as ready for review July 29, 2026 10:18
@mahmoud-elmorabea
mahmoud-elmorabea requested a review from a team as a code owner July 29, 2026 10:18
@mahmoud-elmorabea
mahmoud-elmorabea force-pushed the rn-inbox-sample branch 2 times, most recently from cb755fa to b851d1b Compare July 29, 2026 10:37
mahmoud-elmorabea and others added 2 commits July 29, 2026 17:20
Adds a Visual Inbox screen exercising all three components — the drop-in overlay, the
standalone bell driving a modal, and the embedded message list — plus an on-screen
readout of the InboxEventListener callbacks (action / shown / opened / dismissed) so
the listener bridge can be checked by hand.

Stacked on the SDK branch: this only adds demo UI. The build wiring the sample needs
to resolve the unreleased native inbox (example Podfile branch pins, core library
desugaring) lives in the SDK commit, so that PR stands on its own in CI.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Follows the SDK change to two components: the branded bell (which opens the SDK's
own panel) and the message list. The screen no longer presents any inbox UI of its
own — the hand-rolled modal it used to open from the bell is gone, since that was
demonstrating a "host presents its own UI" path the wrappers no longer expose.

- No ScrollView wrapper. NotificationInboxView scrolls its own list, and a parent
  ScrollView intercepts the drag before the native list sees it.
- Bell sized 88 square: the native composition insets its 56 bell by 16 per side,
  so a 56 box squeezes the circle onto the glyph.
- messageActionTaken now routes actionValue through Linking.openURL, as the SDK
  would. While a host listener is registered the SDK suppresses its own deep-link
  handling, so previously a CTA only produced a toast and never navigated.
- App.tsx registers the inbox screens for deep links (signed-in map only, so an
  anonymous link lands on Login rather than an empty inbox).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@mahmoud-elmorabea
mahmoud-elmorabea merged commit 1c5d9ac into visual-inbox-wrappers Jul 30, 2026
18 checks passed
@mahmoud-elmorabea
mahmoud-elmorabea deleted the rn-inbox-sample branch July 30, 2026 13:20
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.

2 participants