github LouisBarranqueiro/reapop 3.0.0
v3.0.0

latest releases: v4.2.2, v4.2.1, v4.2.0...
3 years ago

Breaking changes

Notification

  • The Notification.closeButton attribute was renamed Notification.showDismissButton
  • The Notification.onRemove was renamed Notification.onDismiss
  • The default notification status was renamed none.
  • The STATUS constant was renamed STATUSES
  • The position top and bottom were removed.

Actions

  • Notifications have no default properties by default
  • Default properties of notifications are not configurable via the reducer function anymore.
  • The action removeNotification was renamed dismissNotification
  • The action notify now returns a redux action instead of the notification.
  • The action removeNotification was renamed dismissNotification
  • The action removeNotifications was renamed dismissNotifications
  • Images specified in Notification.image won't be preloaded anymore. You need to preload them before creating/updating notifications.
  • HTTP status codes passed in Notification.status won't be converted anymore to statuses supported by the library.
  • all Redux actions are not exposed under the actions variable.

Components

  • The component NotificationsSystem requires notifications, and dismissNotification properties.
  • The filter property of the NotificationsSystem component was removed. Use instead the notification property.
  • Themes are not directly included in this package and build with inline CSS.

Migration guide

  1. Replace usage of Notification.closeButton with Notification.showDismissButton
  2. Replace usage of Notification.onRemove with Notification.onDismiss
  3. Replace usage of STATUS with STATUSES
  4. Replace usage of STATUSES.default with STATUSES.none or null.
  5. Use the top-center or bottom-center position if you used the top or bottom position
  6. Remove default properties passed to the notifications reducer and use the setUpNotifications helper to set up the default properties of your notifications.
  7. Update notify(...) call to get the notification from the payload property of the action returned (previously the notification was returned)
  8. Replace usage of addNotification and updateNotification actions with notify
  9. Replace usage of removeNotification action with dismissNotification
  10. Replace usage of removeNotifications action with dismissNotifications
  11. Make sure to preload images before creating/updating notifications containing images.
  12. Replace statements where you set HTTP status code in Notification.status, or set a customizeNotification function with the setUpNotifications helper to reproduce this behavior
  13. Replace usage of reapop.actions and directly import notify, dismissNotification or dismissNotifications from reapop
  14. Add notifications and dismissNotification property to the NotificationsSystem component. Read the Integration & usage section to learn more about these new properties.
  15. Remove filter property of the NotificationsSystem component.
  16. Replace usage of reapop-theme-* package with builtin themes. More information in the Themes section of the documentation to get these themes.
  17. If you have a custom theme, read the guide to create a custom theme with a CSS file to learn how to migrate your theme. If you prefer inline CSS, or CSS-in-JS, you might want to take a look at create a custom theme with inline CSS

New

  • Compatible with any application state managers. You can use it with mobx for example.
  • TypeScript types exposed
  • new API using React hooks and the React context API to use the library with React only
  • New builtin transitions: fade, grow, slide
  • Customizable components: Transition, NotificationIcon, and Notification
  • new API to create custom themes (inline CSS or CSS files)
  • new helper function to:
    • define default properties for notifications
    • define a custom function used to modify notifications
    • define the function used to generate notification IDs

More information about these new things in the documentation

Improvements

  • Complete rewrite in TypeScript
  • removed non-customizable behaviors
  • removed redux-thunk dependency

If you have any questions or feedback, feel free to open an issue 🙂

Don't miss a new reapop release

NewReleases is sending notifications on new releases.