Skip to content

feat: snackbar notifications#3588

Merged
isekovanic merged 31 commits into
developfrom
feat/snackbar-notifications
May 12, 2026
Merged

feat: snackbar notifications#3588
isekovanic merged 31 commits into
developfrom
feat/snackbar-notifications

Conversation

@isekovanic
Copy link
Copy Markdown
Contributor

@isekovanic isekovanic commented May 8, 2026

🎯 Goal

This PR adds an SDK level snackbar/notification system and wires missing notification sources to the RN SDK. This is a feature that's been missing for some time.

🛠 Implementation details

  • Adds notification rendering components:
    • NotificationList for positioning, filtering, target-panel routing, animation, timeout handling, and swipe-to-dismiss.
    • Notification for message, severity icon, optional actions, persistent close button, and accessibility roles.
    • NotificationIcon for default severity-based icons.
  • Adds notification hooks/utilities:
    • useNotificationApi / useSystemNotifications / useNotifications / useNotificationTarget.
    • Target panel support for channel, thread, channel-list, and thread-list.
    • Incident-based notification type generation for consistent dedupe/analytics-friendly event names.
  • Wires notifications into missing SDK flows:
    • message actions, channel list actions, poll ending, reaction fetch errors, unread jump errors, send/edit failures, attachment/command errors, and audio recording/playback errors.
  • Adds customization points:
    • component overrides via ComponentsContext: NotificationList, Notification, NotificationIcon.
    • theme overrides via theme.notification and theme.notificationList.
    • NotificationList props for panel, fallbackPanel, filter, enterFrom, and verticalAlignment.
    • notification options for severity, duration, actions, metadata, tags, targetPanels, and type.
  • Adds and validates translations for all supported locales.

TODOs:

  • Actual notification UI and animations (this needs to be rethinked a bit and done in accordance to our design)

  • General cleanup

  • Think about removing notification list We are not going to do this as having the list orchestrating everything as a container is useful for integrations that want to display things differently (i.e maybe 2 notifications at a time, like iOS does for PNs etc)

    🧪 Testing

    • yarn lint
    • yarn test:typecheck
    • yarn test:unit --runInBand

    ☑️ Checklist

    • I have signed the Stream CLA (required)
    • PR targets the develop branch
    • Documentation is updated
    • New code is tested in main example apps, including all possible scenarios
      • SampleApp iOS and Android
      • Expo iOS and Android

@isekovanic isekovanic requested review from oliverlaz and szuperaz May 8, 2026 14:58
@Stream-SDK-Bot
Copy link
Copy Markdown
Contributor

Stream-SDK-Bot commented May 8, 2026

SDK Size

title develop branch diff status
js_bundle_size 364 KB 367 KB +2450 B 🔴

@isekovanic isekovanic marked this pull request as ready for review May 12, 2026 13:36
@isekovanic isekovanic merged commit 2ba6d87 into develop May 12, 2026
5 of 6 checks passed
@isekovanic isekovanic deleted the feat/snackbar-notifications branch May 12, 2026 18:40
@github-actions github-actions Bot mentioned this pull request May 13, 2026
6 tasks
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.

3 participants