A service and component for displaying app messages.
Project & README | Demo | Demo Source Code | Documentation
npm i @nowzoo/ngx-message --saveImport the module, calling forRoot(). This should probably be in your main app module.
import { NgxMessageModule } from '@nowzoo/ngx-message';
@NgModule({
  imports: [
    NgxMessageModule.forRoot()
  ],
})
export class AppModule { }Insert an instance of NgxMessageComponent at a high level in your app. This is intended to be a singleton.
<!-- app.component.html -->
<router-outlet></router-outlet>
<ngx-message></ngx-message>Use the service in components to display messages...
import { NgxMessageService } from '@nowzoo/ngx-message';
export class MyComponent {
  constructor(
    private msgService: NgxMessageService
  ) { }
  showSuccess() {
    this.msgService.success('Hey, you are great!')
  }
  showWarning() {
    this.msgService.warn('Woops!')
  }
  showWait() {
    this.service.wait('Waiting for a while....');
    setTimeout(() => {
      this.service.success('All done!');
    }, 3000);
  }
}
The message component styles are based on Bootstrap alerts and Font Awesome. The styles are packaged with the component. So...
NgxMessageComponent with a different template and stylesheet.The success and warn methods automatically hide the message after NGX_MESSAGE_HIDE_DELAY milliseconds (by default, 3000ms). The wait method does not hide the message: You must hide it yourself using the success, warn or hide methods. You can change the hide delay by providing a different value for NGX_MESSAGE_HIDE_DELAY:
import { NGX_MESSAGE_HIDE_DELAY, NgxMessageModule } from './shared';
@NgModule({
  imports: [
    NgxMessageModule.forRoot()
  ],
  providers: [
    {provide: NGX_MESSAGE_HIDE_DELAY, useValue: 1000}
  ]
})
export class AppModule { }Clone the main repo and npm install...
git clone https://github.com/nowzoo/ngx-libs.git
cd ngx-libs
npm iThe library files are in projects/ngx-message.
The demo code is in projects/ngx-message-demo.
Building the library...
ng build ngx-messageTesting the library...
ng test ngx-messageTo test with Wallaby, use the wallaby.js config at the root of the project directory.
Serving the demo...
# make sure you've built the library locally first with ng build ngx-message
ng serve ngx-message-demoPlease submit issues to the main repo here.