UNPKG

ngx-snackbar

Version:

Snackbar implementation in Angular 7.

196 lines (152 loc) 5.17 kB
# ngx-snackbar > Angular 7 component for Snackbar (AKA Toast) notifications. [Demo](http://kyung.ca/ngx-snackbar/) ## Installation npm install --save ngx-snackbar ## Usage ### Import default styles Import styles.css into your app. This step is optional, feel free to theme the snackbars to your liking. `index.html` ```html <link rel="stylesheet" href="node_modules/ngx-snackbar/bundles/style.css"> ``` **Angular CLI** `.angular-cli.json` ```json ... "styles": [ "styles.css", "../node_modules/ngx-snackbar/bundles/style.css" ], ... ``` ### Import `SnackbarModule` ```javascript import {BrowserModule} from '@angular/platform-browser'; import {NgModule} from '@angular/core'; import {AppComponent} from './app.component'; import {SnackbarModule} from 'ngx-snackbar'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, SnackbarModule.forRoot() ], bootstrap: [AppComponent] }) export class AppModule {} ``` **SystemJS** ```javascript System.config({ map: { 'ngx-snackbar': 'node_modules/ngx-snackbar/bundles/ngx-snackbar.umd.js' } }); ``` ### Place the `ngx-snackbar` tag on your template ```html <ngx-snackbar></ngx-snackbar> ``` **Options** Use these properties to customize the snackbar component. | Name | Description | Type | Default | Optional | | --- | --- | --- | --- | --- | | position | The position where the snackbar appears | `top-left`, `top-center`, `top-right`, `bottom-left`, `bottom-center`, `bottom-right` | `bottom-right` | true | | max | The maximum number of snackbars allowed on screen | number | (Infinite) | true | | timeout | Number of milliseconds before the snackbar closes | number | (Infinite) | true | | color | Text color in hex | string | `auto` | true | | background | Background color in hex | string | `#343434` | true | | customClass | Custom class to append to the snackbar | string | | true | | accent | Action button color. Requires `action.text` | string | `#2196f3` | true | **Events** | Name | Description | Return | | --- | --- | --- | | onAdd | Callback gets triggered on snackbar add | Object | | onRemove | Callback gets triggered on snackbar remove | Object | | onClear | Callback gets triggered on snackbar clear | boolean | ###### *Object: `add` method options plus `id` string.* ### Use the `SnackbarService` to control snackbars Import `SnakckbarService` from `ngx-snackbar`: ```typescript import {Component} from '@angular/core'; import {SnackbarService} from 'ngx-snackbar'; @Component({ selector: 'app-root', template: ` <ngx-snackbar></ngx-snackbar> ` }) export class AppComponent { constructor(private snackbarService: SnackbarService) {} } ``` **Methods** - `add(options: Object)` All options will override global values set on `ngx-snackbar`. | Name | Description | Type | Default | Optional | | --- | --- | --- | --- | --- | | msg | Message to display in the snackbar (HTML accepted) | string | | false | | timeout | Number of milliseconds before the snackbar closes | number | (Infinite) | true | | color | Text color in hex | string | `auto` | true | | background | Background color in hex | string | `#343434` | true | | customClass | Custom class to append to the snackbar | string | | true | | action.text | Action button text. *Snackbar will automatically dismiss on click* | string | | true | | action.color | Action button color. Requires `action.text` | string | `#2196f3` | true | | action.onClick | Action button callback. Requires `action.text` | Function | | true | | onAdd | Callback gets triggered on snackbar add | Function | | true | | onRemove | Callback gets triggered on snackbar remove | Function | | true | - `remove(id: string)` Remove snackbar on screen by ID. - `clear()` Clears all snackbars on screen. ## Example ```typescript import {Component} from '@angular/core'; import {SnackbarService} from 'ngx-snackbar'; @Component({ selector: 'app-root', template: ` <button (click)="add()">Add Snackbar</button> <br> <button (click)="clear()">Clear</button> <ngx-snackbar [position]="'bottom-center'" [max]="3"></ngx-snackbar> ` }) export class AppComponent { constructor(private snackbarService: SnackbarService) { } add() { const _this = this; this.snackbarService.add({ msg: '<strong>Message sent.</strong>', timeout: 5000, action: { text: 'Undo', onClick: (snack) => { console.log('dismissed: ' + snack.id); _this.undo(); }, }, onAdd: (snack) => { console.log('added: ' + snack.id); }, onRemove: (snack) => { console.log('removed: ' + snack.id); } }); } clear() { this.snackbarService.clear(); } undo() { ... } } ``` ## Credits Thanks [angular-library-starter](https://github.com/robisim74/angular-library-starter) for the compilation scripts. ## License [MIT](/LICENSE)