ngx-admin/src/app/pages/dashboard/rooms/rooms.component.ts

65 lines
1.6 KiB
TypeScript
Raw Normal View History

import { Component, HostBinding, OnDestroy } from '@angular/core';
import { NbThemeService, NbMediaBreakpoint, NbMediaBreakpointsService } from '@nebular/theme';
2017-07-06 19:10:31 +03:00
@Component({
selector: 'ngx-rooms',
styleUrls: ['./rooms.component.scss'],
template: `
<nb-card [size]="breakpoint.width >= breakpoints.sm ? 'large' : 'medium'">
<i (click)="collapse()" class="nb-arrow-down collapse" [hidden]="isCollapsed()"></i>
2017-08-06 15:51:07 +03:00
<ngx-room-selector (select)="select($event)"></ngx-room-selector>
<ngx-player [collapsed]="isCollapsed() && breakpoint.width <= breakpoints.md"></ngx-player>
</nb-card>
2017-07-06 19:10:31 +03:00
`,
})
export class RoomsComponent implements OnDestroy {
2017-08-06 15:51:07 +03:00
@HostBinding('class.expanded')
private expanded: boolean;
private selected: number;
breakpoint: NbMediaBreakpoint;
breakpoints: any;
themeSubscription: any;
constructor(private themeService: NbThemeService,
private breakpointService: NbMediaBreakpointsService) {
2017-12-01 18:36:24 +03:00
this.breakpoints = this.breakpointService.getBreakpointsMap();
this.themeSubscription = this.themeService.onMediaQueryChange()
.subscribe(([oldValue, newValue]) => {
this.breakpoint = newValue;
});
}
2017-08-06 15:51:07 +03:00
select(roomNumber) {
if (this.isSelected(roomNumber)) {
this.expand();
} else {
this.collapse();
}
this.selected = roomNumber;
}
expand() {
this.expanded = true;
}
collapse() {
this.expanded = false;
}
isCollapsed() {
return !this.expanded;
}
private isSelected(roomNumber): boolean {
return this.selected === roomNumber;
}
ngOnDestroy() {
this.themeSubscription.unsubscribe();
}
2017-07-06 19:10:31 +03:00
}