vue3-notifier
v1.0.3
Published
vue3-notifier is a powerful notification plugin with a very easy to use interface and high customizability as we gonna discuss in the rest of documentation.
Downloads
9
Readme
vue3-notifier
vue3-notifier is a powerful notification plugin with a very easy to use interface and high customizability as we gonna discuss in the rest of documentation.
Installation
# Using yarn
yarn add vue3-notifier
# Using npm
npm i vue3-notifier --save
Usage
// main.ts
import 'vue3-notifier/style.css';
import { createApp } from 'vue';
import { useNotifierPlugin } from 'vue3-notifier';
import App from './App.vue';
createApp(App)
.use(useNotifierPlugin())
.mount('#app');
// App.vue
import { useNotifier } from 'vue3-notifier';
const notifier = useNotifier();
notifier.notify();
Examples
Example are add in docs/examples.md Find More!
API Documentation
Note: All props are optionals as the plugin provide a default value for every prop so that you only need to pass as minial config as possible.
NotifierPluginOptions
| Prop | type | default | Description |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| id | String
| "default" | id is used while initializing useNotifierPlugin
which provide a unique key to allow using plugin more than once. |
| timeout | number
| 3_000 | A number in ms that indicates the time before the notifiction gets destroied. |
| persistent | boolean
| false | Indicates that notification shouldn't be automatically destroied. |
| newOnTop | boolean
| false | Indicates new notifications should be on top or not. |
| maxNotifictions | number
| 3 | Max allowed number of notifictions to be shown at once on screen. |
| component | NotifierComponent
| DefaultNotifier.vue | A vue component which will be rendered as a notifiction. |
| props | Record<string, any>
| {} | Extra props to be passed to notification component. |
| plugins | Plugin[]
| [] | A set of plugins which injected to notifier app. |
| showProgressBar | boolean
| false | Toggle visability; true -> visible, false -> hidden. |
| closable | boolean
| true | Toggle visability of close button. |
| pauseOnHover | boolean
| true | Toggle pausing time when user hover over notification; this is extremly useful to improve ux. |
| position | 'top' \| 'top center' \| 'top left' \| 'top right' \| 'bottom' \| 'bottom center' \| 'bottom left' \| 'bottom right' \| 'center' \| 'center center'
| "bottom right" | Indicates position of notifications container. |
| closeButton | NotifierComponent
| DefaultCloseBtn.vue | A vue component that will be used as a close button. |
| showCloseButtonOnHover | boolean
| false | If true then close button will be hidden untill the user hover over notification. |
| debug | boolean
| false | Enables some logs for debugging (recommended to be enabled in development import.meta.env.DEV
|| process.env.NODE_ENV === 'development'
). |
| silent | boolean
| false | Avoid throwing error while initializing if something went wrong. |
| logger | Partial<NotifierLogger>
| logger | Logger which will be used in debug mode. |
| containerOffset | number
| 20 | Offset between container holding notifications and the edges of the screen (in px). |
| containerWidth | number
| 350 | Notifications' container width (in px). |
| containerClassList | string[]
| [] | Classlist will be appended to notifications' container. |
| containerStyles | StyleValue
| {} | Styles will be added to notifications' container. |
| notificationOffset | number
| 20 | Gap between each notification. |
| notificationClassList | string[]
| [] | ClassList will be appended to each notification. |
| notificationStyles | StyleValue
| {} | Styles will be added to each notification. |
| hideAllButton | NotifierComponent
| HideAllBtn.vue | Append a button which hide all notfications. |
| showHideAllButton | boolean
| true | Toggle visability of hide all button. |
NotifierOptions
Note: The following props are exactly the same as above so we won't mention them in NotifierOptions
api.
timeout
,
persistent
,
component
,
props
,
showProgressBar
,
closable
,
pauseOnHover
,
closeButton
,
showCloseButtonOnHover
,
notificationClassList
,
notificationStyles
.
| prop | type | default | description |
| ----------- | ------------------------------------------------------------ | ------------------- | -------------------------------------------------------------- |
| title | string
| "" | Title to show on notifiction supports html. |
| description | string
| "" | Text to be render in notifiction supports html. |
| showIcon | boolean
| true | Toggle icon visability; true -> show icon, false -> hide icon. |
| icon | NotifierComponent
| DefaultIcon.vue | A vue to be used as notificaiton's icon. |
| type | 'default' \| 'info' \| 'warning' \| 'success' \| 'error'
| "default" | type of the notification. |
NotifierService
| method | params | returns | description |
| ------------------- | ------------------------------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| updatePluginOptions | (options?: NotifierPluginOptions)
| void
| Allow to update plugin options after initializing; Note: not all options can be updates as they require reinitializing the plugin (e.g: plugins). |
| notify | (options?: NotifierOptions)
| Required<NotifierOptions & NotifierExtraOptions>
| Open a new notification with the specified options. |
| destroy | (id: number)
| boolean
| Destroy notification using it's id. |
| destroyAll | ()
| void
| Destroy all notifications in that specific app. |
Props Helpers
| method | propName | type | description |
| ------------------------ | ----------------- | ---------------------------------------------------- | --------------------------------------- |
| makePluginOptionsProps | pluginOptions | Required<NotifierPluginOptions>
| Defines prop for plugin global options. |
| makeNotifierServiceProps | notifierService | NotifierService
| Desfines prop for notifier service. |
| makeNotificationProps | notification | Required<NotifierOptions & NotifierExtraOptions>
| Defines prop for notification. |
Note: makeNotifierProps
is a combine of the 3 above methods.
Composables
| method | params | return | description |
| ----------------- | ------------------------------------- | ------------------- | ---------------------------------------------------------- |
| useNotifierPlugin | (options?: NotifierPluginOptions)
| Plugin
| Creates a new notifier app with specific id. |
| useNotifier | (id: string = 'default')
| NotifierService
| Get the service of the notifier app with that specific id. |
Hooks
| hook | params | return | description |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
| useDestroyTimer | (options: Required<NotifierOptions & NotifierExtraOptions>,globalOptions: Required<NotifierPluginOptions>,onFinish: () => void)
| ComputedRef<{value: number;pauseTimeout: () => void;resumeTimeout: () => void }>
| A helper hook to count down for timeout of destroying a notification also providing pause/resume method to allow stop/continue of timeout. |