# SiB Notifications
sib-notifications is a component that displays all elements of an inbox, i.e. a notification container.
When the user clicks one of the notifications, a 'navigate' event is triggered with the object of the notification given as the resource parameter.
The component listens to 'read' events. These events details contain a resource. When such an event is triggered, it sets all notifications with that resource as read, and saves these notifications back to the container.
To send an event, you can dispatch it like this:
```javascript
window.dispatchEvent(new CustomEvent('read', {detail: {resource: resource}}))
```
## Usage
In your template, insert the following line where you want to display the component.
```html
```
If you want to use the `bind-user` attribute, do not forget to use `sib-oidc` for authentication.
### Parameters
| Name | Default | Description |
| --------------- | ---------------------- | :----------------------------------------------------------- |
| `data-src` | `undefined` | URL of the inbox to display. |
| `id-suffix` | `""` | String added at the end of the data source URL. Useful if you are using `bind-user` to get the current user URL. |
| `extra-context` | `{}` | Context to add to let the router know where to navigate after a click on a notification. |
| `date-format` | `"DD/MM/YYYY - kk:mm"` | Format of the date displayed in the notifications box. For more informations about available formats, look at the [moment.js doc](https://momentjs.com/docs/#/displaying/format/). |
### Routing
To redirect to specific pages when you click on a notification, you should:
1. Choose a route to be the default view for a resource type. To do this, add the attribute `rdf-type` to a `sib-route` (ex: ``)
2. Add an `extra-context` to the sib-conversation component, so it can understands the `rdf_type` you used before.
For more informations, please see the example at `index.html`
### Design
To customize your component, you can set the css variable `--sib-notifications-theme` anywhere in your stylesheet to the color you want.
For example:
```css
:root{
--sib-notifications-theme: #ffd759;
}
```
# SiB Badge
sib-badge is a component that displays the number of unread notifications in the inbox of the logged in user related to a resource or a container.
As it uses the `bind-user`, you have to make sure to include a valid `sib-auth` configuration.
## Usage
In your template, insert the following line where you want to display the component.
```html
```
### Parameters
| Name | Default | Description |
| ----------- | ----------- | :----------------------------------------------------------- |
| `data-src` | `undefined` | URL of the resource or container of which you want to get the unread notifications. |
| `id-suffix` | `""` | String added at the end of the data source URL. Useful if you are using `bind-resource` to get the current displayed resource. |
### Design
To customize your component, you can set the css variable `--sib-badge-theme` anywhere in your stylesheet to the color you want.
For example:
```css
:root{
--sib-badge-theme: #ffd759;
}
```