? 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