* feat(notification): Add undoable notification * feat(notification): Add undoable notification * feat(notification): Use uhk-header to the notification * half ready solution * - fix: "Keymap has been deleted" is displayed for macros. - When a keymap/macro deletion gets undone, please set the route of the restored keymap/macro. - When the user switches to another route, please make the undo notification disappear. * fix(keymap): Store prev user configuration in the application reducer Store the previous state in application reducer, because refactoring the user-config reducer is not easy * feat(keymap): Fix review request
30 lines
952 B
TypeScript
30 lines
952 B
TypeScript
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
import { Store } from '@ngrx/store';
|
|
import { Observable } from 'rxjs/Observable';
|
|
|
|
import { Notification } from '../../models/notification';
|
|
import { AppState, getUndoableNotification } from '../../store/index';
|
|
import { DismissUndoNotificationAction, UndoLastAction } from '../../store/actions/app.action';
|
|
|
|
@Component({
|
|
selector: 'uhk-header',
|
|
templateUrl: './uhk-header.html',
|
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
})
|
|
export class UhkHeader {
|
|
undoableNotification$: Observable<Notification>;
|
|
|
|
constructor(private store: Store<AppState>) {
|
|
this.undoableNotification$ = this.store.select(getUndoableNotification);
|
|
}
|
|
|
|
onUndoLastNotification(data: any): void {
|
|
this.store.dispatch(new UndoLastAction(data));
|
|
}
|
|
|
|
onDismissLastNotification(): void {
|
|
this.store.dispatch(new DismissUndoNotificationAction());
|
|
}
|
|
|
|
}
|