64 lines
1.1 KiB
TypeScript
64 lines
1.1 KiB
TypeScript
|
import {
|
||
|
Component,
|
||
|
OnInit,
|
||
|
ChangeDetectionStrategy,
|
||
|
Input,
|
||
|
OnDestroy,
|
||
|
EventEmitter,
|
||
|
Output,
|
||
|
ChangeDetectorRef
|
||
|
} from '@angular/core';
|
||
|
import { RoomInfo, RoomType } from '@ucap/protocol-room';
|
||
|
|
||
|
@Component({
|
||
|
selector: 'ucap-chat-room-list-item-02',
|
||
|
templateUrl: './room-list-item-02.component.html',
|
||
|
styleUrls: ['./room-list-item-02.component.scss'],
|
||
|
changeDetection: ChangeDetectionStrategy.OnPush
|
||
|
})
|
||
|
export class RoomListItem02Component implements OnInit, OnDestroy {
|
||
|
@Input()
|
||
|
roomInfo: RoomInfo;
|
||
|
|
||
|
@Input()
|
||
|
profileImageRoot: string;
|
||
|
|
||
|
@Input()
|
||
|
defaultProfileImage: string;
|
||
|
|
||
|
@Input()
|
||
|
profileImage: string;
|
||
|
|
||
|
@Input()
|
||
|
roomName: string;
|
||
|
|
||
|
@Input()
|
||
|
checkable = false;
|
||
|
|
||
|
@Input()
|
||
|
checked = false;
|
||
|
|
||
|
@Output()
|
||
|
toggleItem = new EventEmitter<{
|
||
|
checked: boolean;
|
||
|
roomInfo: RoomInfo;
|
||
|
}>();
|
||
|
|
||
|
RoomType = RoomType;
|
||
|
|
||
|
constructor(private changeDetectorRef: ChangeDetectorRef) {}
|
||
|
|
||
|
ngOnInit(): void {}
|
||
|
|
||
|
ngOnDestroy(): void {}
|
||
|
|
||
|
onToggleItem(value: boolean): void {
|
||
|
this.toggleItem.emit({
|
||
|
checked: value,
|
||
|
roomInfo: this.roomInfo
|
||
|
});
|
||
|
|
||
|
this.changeDetectorRef.detectChanges();
|
||
|
}
|
||
|
}
|