2020-02-18 10:54:35 +09:00

73 lines
1.8 KiB
TypeScript

import {
Component,
OnInit,
ChangeDetectorRef,
Input,
Output,
EventEmitter,
ViewChild,
ElementRef,
Inject
} from '@angular/core';
import { NGXLogger } from 'ngx-logger';
import { MatSelectChange } from '@angular/material/select';
import { EnviromentsService } from '@ucap-webmessenger/enviroments';
import { ChatSetting } from '../models/settings';
import { NativeService, UCAP_NATIVE_SERVICE } from '@ucap-webmessenger/native';
@Component({
selector: 'ucap-settings-chat',
templateUrl: './chat.component.html',
styleUrls: ['./chat.component.scss']
})
export class ChatComponent implements OnInit {
@Input()
setting: ChatSetting;
@Output()
changed = new EventEmitter<ChatSetting>();
// tslint:disable-next-line: variable-name
readonly _isNodeWebkit: boolean;
constructor(
private enviromentsService: EnviromentsService,
@Inject(UCAP_NATIVE_SERVICE) private nativeService: NativeService,
private changeDetectorRef: ChangeDetectorRef,
private logger: NGXLogger
) {
this._isNodeWebkit = this.enviromentsService.nodeWebkit();
}
ngOnInit() {
this.logger.debug('chat setting', this.setting);
}
onSelectionChangeFontFamily(event: MatSelectChange) {
this.emit({ ...this.setting, fontFamily: event.value });
}
onSelectionChangeFontSize(event: MatSelectChange) {
this.emit({ ...this.setting, fontSize: Number(event.value) });
}
onClickDownloadPath() {
this.logger.debug('onClickDownloadPath');
this.nativeService
.selectDirectory()
.then(path => {
if (!!path && path.length > 0) {
this.emit({ ...this.setting, downloadPath: path });
}
})
.catch(reason => {});
}
private emit(setting: ChatSetting) {
this.setting = setting;
this.changed.emit(this.setting);
}
}