82 lines
2.1 KiB
TypeScript
Raw Normal View History

2019-09-18 15:02:21 +09:00
import {
Component,
OnInit,
Input,
Output,
EventEmitter,
ViewChild,
ElementRef
} from '@angular/core';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
import { Company } from '@ucap-webmessenger/api-external';
import { LocalStorageService } from '@ucap-webmessenger/web-storage';
import { LoginInfo, KEY_LOGIN_INFO } from '@app/types';
2019-09-18 15:02:21 +09:00
@Component({
selector: 'ucap-account-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.scss']
})
export class LoginComponent implements OnInit {
@Input()
2019-09-26 14:38:21 +09:00
companyList?: Company[];
@Input()
loginBtnText?: string;
@Input()
loginBtnEnable: boolean;
2019-09-18 15:02:21 +09:00
@Output()
login = new EventEmitter<{
companyCode: string;
loginId: string;
loginPw: string;
rememberMe: boolean;
notValid: () => void;
}>();
@ViewChild('loginPw', { static: true }) loginPwElementRef: ElementRef;
loginForm: FormGroup;
constructor(
private formBuilder: FormBuilder,
private localStorageService: LocalStorageService
) {}
2019-09-18 15:02:21 +09:00
ngOnInit() {
const loginInfo: LoginInfo = this.localStorageService.get<LoginInfo>(
KEY_LOGIN_INFO
);
let companyCode = '';
let loginId = '';
let remember = false;
if (loginInfo && loginInfo.companyCode && loginInfo.loginId) {
companyCode = loginInfo.companyCode;
loginId = loginInfo.loginId;
remember = true;
}
2019-09-18 15:02:21 +09:00
this.loginForm = this.formBuilder.group({
companyCode: [companyCode, [Validators.required]],
loginId: [loginId, [Validators.required]],
loginPw: ['', Validators.required],
remember: [remember]
2019-09-18 15:02:21 +09:00
});
if (!this.loginBtnText || this.loginBtnText.trim().length === 0) {
this.loginBtnText = 'LOGIN';
}
2019-09-18 15:02:21 +09:00
}
onClickLogin() {
this.login.emit({
companyCode: this.loginForm.get('companyCode').value,
loginId: this.loginForm.get('loginId').value,
loginPw: this.loginForm.get('loginPw').value,
rememberMe: this.loginForm.get('remember').value,
2019-09-18 15:02:21 +09:00
notValid: () => {
this.loginPwElementRef.nativeElement.focus();
}
});
}
}