Skip to content

feat(ui): first version of a NotificationManager#1617

Draft
vlad-schur-external-sap wants to merge 8 commits intomainfrom
vlad-notification-manager-first-version
Draft

feat(ui): first version of a NotificationManager#1617
vlad-schur-external-sap wants to merge 8 commits intomainfrom
vlad-notification-manager-first-version

Conversation

@vlad-schur-external-sap
Copy link
Copy Markdown
Contributor

@vlad-schur-external-sap vlad-schur-external-sap commented Apr 21, 2026

Summary

Create a first version of a NotificationManager component using Sonner.

NotificationManager is a simple wrapper around the Sonner library to add Juno-specific functionality and semantics on top of its features while Sonner handles all the heavy lifting

Changes Made

  • Added NotificationManager component as a Sonner Toaster wrapper with Juno-specific defaults (dismissible, duration, visibleToasts, position):
    • Notifications can be scoped to a specific manager instance via toasterId
    • Wrapped Sonner's toast with Juno semantic variants (info, success, warning, error, danger) - all calls render Toast component
  • Styling:
    • className in toast options applies only to Sonner's <li> wrapper, not the inner Juno Toast element
    • Applied juno-toast class to Sonner's toast wrapper via toastOptions.classNames for consistent CSS targeting

Related Issues

Screenshots (if applicable)

Testing Instructions

  1. pnpm i
  2. pnpm TASK

Checklist

  • I have performed a self-review of my code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.
  • I have made corresponding changes to the documentation (if applicable).
  • My changes generate no new warnings or errors.
  • I have created a changeset for my changes.

PR Manifesto

Review the PR Manifesto for best practises.

Additional notes:

  • ShadowRoot support is not working out of the box. This is an upstream Sonner limitation (sonner#361); documented in stories
  • Sonner handles all toast lifecycle (timers, queuing, dismissal, history). Toast is intentionally kept logic-less in this context (Toast internal is not yet removed to avoid breaking its usage)

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 21, 2026

⚠️ No Changeset found

Latest commit: 55a9422

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vlad-schur-external-sap vlad-schur-external-sap marked this pull request as draft April 21, 2026 12:31
@vlad-schur-external-sap vlad-schur-external-sap marked this pull request as ready for review April 21, 2026 23:46
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 21, 2026

PR Preview Action v1.8.1

🚀 View preview at
https://cloudoperators.github.io/juno/pr-preview/pr-1617/

Built to branch gh-pages at 2026-04-22 07:54 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@vlad-schur-external-sap vlad-schur-external-sap linked an issue Apr 22, 2026 that may be closed by this pull request
2 tasks
@vlad-schur-external-sap vlad-schur-external-sap marked this pull request as draft April 22, 2026 08:11
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.

[Task](ui): create a first version of NotificationManager

1 participant