Skip to content

Conversation

@valkirilov
Copy link
Member

@valkirilov valkirilov commented Sep 17, 2025

Description

Update the visuals of the infinite notification to resemble more closely the Redis UI toasts, and the FIgma designs.

  • update the interface and the way we serve the data for the infinite notification, so it will resemble more closely the expected format by Redis UI, and make all infinite notifications use it
  • rework the way we show the default "X" button for dismissing notifications
  • update the variant to reflect the expected design

How it was tested

There are numerous use cases in which we use infinite notifications. Although we have a common way to dispatch these types of notifications, I still had to update the way we build up the data for each notification. Here are all of the updated notifications:

Authenticating

  1. Click on the "Cloud Login" button in the top right corner, and login via one of the providers
  2. Once you're redirected back to the app, you'll see the notification for a second

Or, dispatch manually the notification anywhere in the code:

 dispatch(addInfiniteNotification(INFINITE_MESSAGES.AUTHENTICATING()))
Old Before After
image Screenshot 2025-09-18 at 9 36 16 image
image Screenshot 2025-09-18 at 9 36 26 image

Pending cloud database creation

  1. Go to Databases and click on the + Add Redis Database button
  2. Under the "Get started with Redis Cloud account" section, click on the "New database" option
  3. Make sure to confirm the new cloud database creation in the modal, and you'll see the toast notification

Or, dispatch manually the notification anywhere in the code:

dispatch(addInfiniteNotification(INFINITE_MESSAGES.PENDING_CREATE_DB()))

_Note: This notification can display different titles, based on the step in the process:

  • Processing Cloud API keys…
  • Processing Cloud subscriptions…
  • Creating a free trial Cloud database…
  • Importing a free trial Cloud database…_
Old Before After
Screenshot 2025-09-18 at 10 57 10 Screenshot 2025-09-18 at 10 50 13 Screenshot 2025-09-18 at 11 01 51
Screenshot 2025-09-18 at 10 57 18 Screenshot 2025-09-18 at 10 50 23 Screenshot 2025-09-18 at 11 01 59

Successfully created Cloud database

Follow the steps from the previous use case (#Pending cloud database creation) and wait till the end, to see the success toast notification.

Or, dispatch manually the notification anywhere in the code:

dispatch(
      addInfiniteNotification(
        INFINITE_MESSAGES.SUCCESS_CREATE_DB(
          {
            provider: OAuthProvider.AWS,
            region: 'us-east-1',
          },
          () => alert('Success create DB'),
          CloudJobName.CreateFreeDatabase,
        ),
      ),
)

Note: Here, we don't use the action button, because we have a lot of content and it becomes very ugly if we reduce it width (to make room for the two action buttons). Still, we can't use the semantic colored buttons, so the following visuals look off.

Old Before After
Screenshot 2025-09-18 at 10 57 47 Screenshot 2025-09-18 at 11 16 52 Screenshot 2025-09-18 at 16 24 00
Screenshot 2025-09-18 at 10 57 40 Screenshot 2025-09-18 at 11 17 03 Screenshot 2025-09-18 at 16 24 10

Database already exists

Follow the steps from the previous use case ([#Successfully created Cloud database](#successfully-created-cloud database)) and wait till the end, to see the toast notification that such a database already exists.

Or, dispatch manually the notification anywhere in the code:

dispatch(
      addInfiniteNotification(
        INFINITE_MESSAGES.DATABASE_EXISTS(
          () => alert('Import'),
          () => alert('Close'),
        ),
      ),
)
Old Before After
Screenshot 2025-09-18 at 13 50 59 Screenshot 2025-09-18 at 13 53 14 Screenshot 2025-09-18 at 14 14 06
Screenshot 2025-09-18 at 13 51 07 Screenshot 2025-09-18 at 13 53 24 Screenshot 2025-09-18 at 14 14 14

Cloud Import Forbidden

I was not able to find a way to reproduce this scenario in the app, but you can manually open the notification this way:

dispatch(
      addInfiniteNotification(
        INFINITE_MESSAGES.DATABASE_IMPORT_FORBIDDEN(() => alert('Close')),
      ),
)
Before After
Screenshot 2025-09-18 at 15 54 44 Screenshot 2025-09-18 at 16 28 49
Screenshot 2025-09-18 at 15 54 54 Screenshot 2025-09-18 at 16 28 57

Subscription already exists

I was not able to find a way to reproduce this scenario in the app, but you can manually open the notification this way:

 dispatch(
      addInfiniteNotification(
        INFINITE_MESSAGES.SUBSCRIPTION_EXISTS(
          () => alert('Create'),
          () => alert('Cancel'),
        ),
      ),
)
Before After
Screenshot 2025-09-18 at 16 32 51 Screenshot 2025-09-18 at 16 35 24
Screenshot 2025-09-18 at 16 33 00 Screenshot 2025-09-18 at 16 35 29

Automatic creation of a database

I was not able to find a way to reproduce this scenario in the app, but you can manually open the notification this way:

dispatch(
      addInfiniteNotification(INFINITE_MESSAGES.AUTO_CREATING_DATABASE()),
)
Before After
Screenshot 2025-09-18 at 16 44 46 Screenshot 2025-09-18 at 16 46 14
Screenshot 2025-09-18 at 16 44 55 Screenshot 2025-09-18 at 16 46 20

App Update Available

  1. Download an older version of the app from the archive

Wait for a minute, and you'll notice the notification, suggesting you to restart the app

Or, dispatch manually the notification anywhere in the code:

dispatch(
  addInfiniteNotification(
    INFINITE_MESSAGES.APP_UPDATE_AVAILABLE('2.74', () => {
      console.log('Restarting...')
    })
  )
)
Old Before After
Screenshot 2025-09-16 at 14 51 50 image image
image image image

Successfully deployed RDI pipeline

  1. Go to the Databases page and click on the Redis Data Integration tab
  2. Open an existing RDI instance (or create a new one, but it's complicated)
  3. From the top right corner, click on Deploy Pipeline button

Wait for the action to complete, and you'll see the notification.

Or, dispatch the notification manually anywhere in the code:

dispatch(
  addInfiniteNotification(
    INFINITE_MESSAGES.SUCCESS_DEPLOY_PIPELINE()
  )
)
Old Before After
Screenshot 2025-09-18 at 9 19 49 Screenshot 2025-09-18 at 9 34 19 Screenshot 2025-09-18 at 9 16 47
Screenshot 2025-09-18 at 9 19 56 Screenshot 2025-09-18 at 9 34 27 Screenshot 2025-09-18 at 9 17 01

- update the interface and the way we serve the data for the infinite notification,
  so it will resemble more closely the expected format by Redis UI
- rework the way we show the default "X" button for dismissing notifications
- update the variant to reflect the expected design

re #RI-7254
@github-actions
Copy link
Contributor

github-actions bot commented Sep 17, 2025

Code Coverage - Frontend unit tests

St.
Category Percentage Covered / Total
🟢 Statements 82.1% 19959/24311
🟡 Branches 67.45% 8647/12820
🟡 Functions 76.19% 5312/6972
🟢 Lines 82.53% 19542/23679

Test suite run success

5129 tests passing in 676 suites.

Report generated by 🧪jest coverage report action from 6490b87

...options,
delay: 100,
closeOnClick: false,
onClose,
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redis UI depends on React Toastify, which supports out of the box a callback handler when you dismiss a notification. If we want to follow the Figma design, we should rely on the built-in "dismiss" button, instead of adding a custom action button with an icon, and this is the only way to preserve the telemetry collection on close.

Before

We used to render an action button, with "X" icon and attach callback handler to it.

Image

Also, when having more than a single action, we can't order them, and we end up with the dismiss action left to the primary one, which I think looks wrong.

Image

After

However, Redis UI provides a built-in way to show a dismiss button.
So, here it is, the same thing, but using the native dismiss button.

Image

And also, when we need to pair it with an action button.

Image

@valkirilov valkirilov self-assigned this Sep 17, 2025
@valkirilov valkirilov marked this pull request as ready for review September 18, 2025 13:52
@valkirilov valkirilov merged commit 491aff8 into main Sep 19, 2025
24 of 34 checks passed
@valkirilov valkirilov deleted the fe/bugfix/RI-7254_toast-notifications branch September 19, 2025 07:45
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.

4 participants