Socket
Socket
Sign inDemoInstall

@boxfish-studio/react-notification-manager

Package Overview
Dependencies
0
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @boxfish-studio/react-notification-manager

Notification Manager for React


Version published
Weekly downloads
1
Maintainers
1
Created
Weekly downloads
 

Readme

Source

Installation 🧰

$ npm i @boxfish-studio/react-notification-manager

or yarn

$ yarn add @boxfish-studio/react-notification-manager

How to use 📝

  1. Wrap your app in the NotificationProvider:
import { NotificationProvider } from '@boxfish-studio/react-notification-manager'
<NotificationProvider>
    <App />
</NotificationProvider>

  1. Import the NotificationManager and place it in your layout:
import { NotificationManager } from '@boxfish-studio/react-notification-manager'

const Layout = () => {
    return (
        <div>
            // ...
            <NotificationManager />
        </div>
    )
}

  1. Use the useNotification hook:
import { useNotification, type NotificationType } from '@boxfish-studio/react-notification-manager'

const Button = () => {
    const { showNotification } = useNotification()

    const addNotification = () => {
        showNotification({
            message: "I'm a toast!",
            type: NotificationType.Info,
            duration: 5000, // Optional
        })
    }

    return <button onClick={addNotification}>Click on me to show a notification!</button>
}

Customization 🖌️

The NotificationManager component accepts a configuration prop to allow you to customize your notifications. Custom configuration must be of type INotificationConfiguration. All available props are shown below:

interface INotificationConfiguration {
    hasIcon?: boolean
    icons?: {
        [key in NotificationType]?: string
    }
}

enum NotificationType {
    Success = 'success',
    Error = 'error',
    Warning = 'warning',
    Info = 'info',
}

NotificationManager Props

NameDescription
hasIconIf the Notification should contain an icon
iconsAn object with the notification type as key, and an image url as a value.

Example:

import { NotificationManager, type INotificationConfiguration } from '@boxfish-studio/react-notification-manager'

const Layout = () => {
    // Optional configuration
    const configuration: INotificationConfiguration = {
        hasIcon: true,
        icons: {
            warning: '/custom-warning-icon.svg',
        },
    }

    return (
        // ...
        <NotificationManager configuration={configuration} />
    )
}

Styling

All the elements of the components contain classes that you can point to in your styles to customize the appearance of the notifications, just override the styles in your global css file.

Example:


.notification-manager {
    bottom: 2rem;
    left: 2rem;
    /* To remove the default right position */
    right: unset;

    .notification__toast {
        border-radius: 8px;
    }

    .notification--warning {
        background-color: #f58223;
    }

    .notification__message {
        color: black;
        font-size: 18px;
        font-weight: 500;
    }

}

Utility functions

The useNotification hook returns three functions:

const { showNotification, removeNotification, updateNotification } = useNotification()
  1. showNotification: Adds a notification. Receives an object with the notification properties.
showNotification({
    message: "I'm a toast!",
    type: NotificationType.Info,
    duration: 5000, // Optional
})
NametypeDescriptionRequired
messagestringThe message that will show up in the notification.true
typeNotificationTypeThe type of the notification. This will change then icon and classes in the notification.true
durationnumberDuration in milliseconds that will last the toast until the user closes it. Use 0 to make it infinite.
  1. removeNotification: Removes a notification. Receives an id of the notification to remove.
removeNotification(id)
  1. updateNotification: Updates a notification. Receives an id of the notification to update, and an object with the notification properties to update.
updateNotification(id, {
    message: 'ERROR!',
    type: NotificationType.Error,
    duration: 0, // Doesn't close automatically.
})

Notifications

The useNotification hook also returns an array with all the notifications. This array is of type INotification[]. You can use this array to manage your notifications whenever you want.

const { notifications } = useNotification()
interface INotification {
    id: string
    message: string
    type: NotificationType
    duration?: number
}

Made with :heart: by [Boxfish Studio](https://boxfish.studio/).

Boxfish Logo

FAQs

Last updated on 28 Jun 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc