Adding flashmessages module
This commit is contained in:
@@ -7,9 +7,9 @@
|
|||||||
<sidenav></sidenav>
|
<sidenav></sidenav>
|
||||||
</div>
|
</div>
|
||||||
<div class="col py-3">
|
<div class="col py-3">
|
||||||
|
<flashmessages></flashmessages>
|
||||||
<router-outlet></router-outlet>
|
<router-outlet></router-outlet>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
|
|||||||
@@ -7,11 +7,14 @@ import { AppRoutingModule } from './app-routing.module';
|
|||||||
import { AppComponent } from './app.component';
|
import { AppComponent } from './app.component';
|
||||||
|
|
||||||
import { SidenavComponent } from "./layout/sidenav/sidenav.component";
|
import { SidenavComponent } from "./layout/sidenav/sidenav.component";
|
||||||
|
import { FlashmessagesComponent } from "./layout/flashmessages/flashmessages.component";
|
||||||
|
import { FlashmessagesService } from "./layout/flashmessages/flashmessages.service";
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [
|
declarations: [
|
||||||
AppComponent,
|
AppComponent,
|
||||||
SidenavComponent
|
SidenavComponent,
|
||||||
|
FlashmessagesComponent
|
||||||
],
|
],
|
||||||
imports: [
|
imports: [
|
||||||
BrowserModule,
|
BrowserModule,
|
||||||
@@ -19,7 +22,7 @@ import { SidenavComponent } from "./layout/sidenav/sidenav.component";
|
|||||||
NgbModule,
|
NgbModule,
|
||||||
NgxBootstrapIconsModule.pick(allIcons),
|
NgxBootstrapIconsModule.pick(allIcons),
|
||||||
],
|
],
|
||||||
providers: [],
|
providers: [FlashmessagesService],
|
||||||
bootstrap: [AppComponent]
|
bootstrap: [AppComponent]
|
||||||
})
|
})
|
||||||
export class AppModule { }
|
export class AppModule { }
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
:host {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
margin: 0.5em;
|
||||||
|
z-index: 1200;
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<ngb-toast
|
||||||
|
*ngFor="let flashmessage of flashmessagesService.toasts"
|
||||||
|
[header]="flashmessage.header" [autohide]="true" [delay]="flashmessage.delay || 5000"
|
||||||
|
(hiddden)="flashmessagesService.remove(flashmessage)"
|
||||||
|
>{{flashmessage.body}}</ngb-toast>
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
import { Component } from "@angular/core";
|
||||||
|
import { FlashmessagesService } from "./flashmessages.service";
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: "flashmessages",
|
||||||
|
templateUrl: "./flashmessages.component.html",
|
||||||
|
styleUrls: ["./flashmessages.component.css"]
|
||||||
|
})
|
||||||
|
export class FlashmessagesComponent {
|
||||||
|
constructor(public flashmessagesService: FlashmessagesService) {}
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import {Injectable} from "@angular/core";
|
||||||
|
|
||||||
|
export interface Flashmessage {
|
||||||
|
header: string;
|
||||||
|
body: string;
|
||||||
|
delay?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Injectable({ providedIn: 'root' })
|
||||||
|
export class FlashmessagesService {
|
||||||
|
toasts: Flashmessage[] = [];
|
||||||
|
|
||||||
|
show(header: string, body: string) {
|
||||||
|
this.toasts.push({ header, body });
|
||||||
|
}
|
||||||
|
|
||||||
|
remove(toast: Flashmessage) {
|
||||||
|
this.toasts = this.toasts.filter(t => t != toast);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user