? use-toast-notification
React hooks library to display notification toast.
Install
npm install use-toast-notification
# or
yarn add use-toast-notification
Usage
Simple Usage
import React from 'react'
import NotificationProvider, { useNotification } from 'use-toast-notification'
const App = () => {
const notification = useNotification()
const handleSubmit = async (e) => {
try {
notification.show({
message: 'Your delivery is on its way',
title: 'Delivery Status',
variant: 'success'
})
} catch(e){
notification.show({
message: 'Your delivery could not be processed',
title: 'Delivery Status',
variant: 'error'
})
}
}
return (
<div>
<form onSubmit={handleSubmit}>
<input name='address'/>
<button type='submit'>Submit</button>
</form>
</div>
)
}
const Main = () =>{
return (
<NotificationProvider
config={{
position: 'top-right',
isCloseable: false,
showTitle: true,
showIcon: true,
duration: 5,
}}
>
<App/>
</NotificationProvider>
)
}
export default Main
| Name | Type | Default | Description |
|---|---|---|---|
| title | String | notify | Title of the notification |
| message | ReactNode | The body of the notification required |
|
| duration | Number | config.duration |
The duration in seconds |
⚙️ Config
You can customize your notification toast
all configurations are optional
import React from 'react'
import NotificationProvider from 'use-toast-notification'
const App = () => {
...
}
const Main = () =>{
return (
<NotificationProvider
config={{
position: 'center',
showClose: true,
showIcon: false,
showTitle: true,
duration: 30,
}}
overrideStyles={{
cardContainer: {
...
},
...
}}
>
<App/>
</NotificationProvider>
)
}
export default Main
Available Config Properties
| Name | Type | Default | Description |
|---|---|---|---|
| position | String | ‘top-right’ | The position of the card |
| duration | Number | 5 | The duration in seconds |
| isCloseable | Boolean | false | Toggle close button |
| showIcon | Boolean | true | Toggle card heading icon |
| showTitle | Boolean | true | Toggle card heading (icon and title) button |
| closeIcon | ReactNode | Custom close icon | |
| successIcon | ReactNode | Custom success icon | |
| errorIcon | ReactNode | Custom error icon | |
| infoIcon | ReactNode | Custom info icon | |
| errorColor | string | ‘red’ | color for the error variant if no custom Icon |
| successColor | string | ‘green’ | color for the success variant if no custom Icon |
| infoColor | string | ‘blue’ | color for the info variant if no custom Icon |
position is one of
'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'top-center' | 'bottom-center' | 'center';
Available overrideStyles Properties
| Name | Type | Description |
|---|---|---|
| container | CSSProperties | The style for the wrapper for all notification boxes |
| cardContainer | CSSProperties | The style for the container for a single notification box |
| cardContent | CSSProperties | The style for the content for a single notification |
| icon | CSSProperties | The icon sizes |
| closeButton | CSSProperties | The close button style |
| cardMessage | CSSProperties | The style for the message of the notification |
| cardIcon | CSSProperties | The style for the icons container |
| cardTitle | CSSProperties | The style for the title of the notification |
License
MIT © thelamina