Skip to content

feat: snackbar notifications#3588

Draft
isekovanic wants to merge 8 commits intodevelopfrom
feat/snackbar-notifications
Draft

feat: snackbar notifications#3588
isekovanic wants to merge 8 commits intodevelopfrom
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

    🧪 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

SDK Size

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

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