0.9.98 • Published 3 years ago
svelte-notifications v0.9.98
Svelte notifications
Simple and flexible notifications system for Svelte 3

Demonstration
https://svelte-notifications.netlify.com
Getting started
npm install --save svelte-notificationsBasic usage
// MainComponent.svelte
<script>
import Notifications from 'svelte-notifications';
import App from './App.svelte';
</script>
<Notifications>
<App />
</Notifications>// ChildrenComponent.svelte
<script>
import { getNotificationsContext } from 'svelte-notifications';
const { addNotification } = getNotificationsContext();
</script>
<button
on:click={() => addNotification({
text: 'Notification',
position: 'bottom-center',
})}
>
Add notification
</button>Providing custom notification component
// MainComponent.svelte
<script>
import Notifications from 'svelte-notifications';
import CustomNotification from './CustomNotification.svelte';
import App from './App.svelte';
</script>
<Notifications item={CustomNotification}>
<App />
</Notifications>// CustomNotification.svelte
<script>
export let notification = {};
// `onRemove` function will be passed into your component.
export let onRemove = null;
const handleButtonClick = () => {
onRemove();
}
</script>
<div class={notification.type === 'error' ? 'error' : ''}>
<h4>{notification.heading}</h4>
<p>{notification.description}</p>
<button on:click={handleButtonClick}>Close me</button>
</div>// AnotherComponent.svelte
<script>
import { getNotificationsContext } from 'svelte-notifications';
const { addNotification } = getNotificationsContext();
const handleButtonClick = () => {
addNotification({
position: 'bottom-right',
heading: 'hi i am custom notification',
type: 'error',
description: 'lorem ipsum',
});
}
</script>
<div>
<button on:click={handleButtonClick}>Show notification</button>
</div>API
Notifications
The Notifications component supplies descendant components with notifications store through context.
- @prop {component}
[item=null]- Custom notification component that receives the notification object - @prop {boolean}
[withoutStyles=false]- If you don't want to use the default styles, this flag will remove the classes to which the styles are attached - @prop {string|number}
[zIndex]- Adds a style with z-index for the notification container
// MainComponent.svelte
<script>
import Notifications from 'svelte-notifications';
import App from './App.svelte';
</script>
<Notifications>
<App />
</Notifications>getNotificationsContext
A function that allows you to access the store and the functions that control the store.
// ChildrenComponent.svelte
<script>
import { getNotificationsContext } from 'svelte-notifications';
const notificationsContext = getNotificationsContext();
const {
addNotification,
removeNotification,
clearNotifications,
subscribe,
} = notificationsContext;
</script>getNotificationsContext:addNotification
You can provide any object that the notification component will receive. The default object looks like this:
- @param {Object}
notification- The object that will receive the notification component - @param {string}
[id=timestamp-rand]- Unique notification identificator - @param {string}
text– Notification text - @param {string}
[position=bottom-center]– One of these values:top-left,top-center,top-right,bottom-left,bottom-center,bottom-right - @param {string}
type– One of these values:success,warning,error - @param {number}
[removeAfter]– After how much the notification will disappear (in milliseconds)
// ChildrenComponent.svelte
<script>
import { getNotificationsContext } from 'svelte-notifications';
const { addNotification } = getNotificationsContext();
addNotification({
id: 'uniqNotificationId',
text: 'Notification',
position: 'top-center',
type: 'success',
removeAfter: 4000,
...rest,
});
</script>getNotificationsContext:removeNotification
- @param {string}
id- Unique notification identificator
// ChildrenComponent.svelte
<script>
import { getNotificationsContext } from 'svelte-notifications';
const { removeNotification } = getNotificationsContext();
removeNotification('uniqNotificationId');
</script>getNotificationsContext:clearNotifications
// ChildrenComponent.svelte
<script>
import { getNotificationsContext } from 'svelte-notifications';
const { clearNotifications } = getNotificationsContext();
clearNotifications();
</script>getNotificationsContext:subscribe
Default Svelte subscribe method that allows interested parties to be notified whenever the store value changes
Contributing
Read more about contributing here