diff --git a/frontend/src/app/atomic/input/email-field/email-field.component.css b/frontend/src/app/atomic/input/email-field/email-field.component.css index 6ac0f20..16fd3ea 100644 --- a/frontend/src/app/atomic/input/email-field/email-field.component.css +++ b/frontend/src/app/atomic/input/email-field/email-field.component.css @@ -9,9 +9,17 @@ input { color: var(--primary-text-color); } +.valid { + +} + +.invalid { + border-color: var(--error-color); + border-width: 2px; + border-style: solid; +} + input:focus { outline-color: var(--primary-background-color); outline-width: 100px; - /*outline-offset: 1px;*/ - /*outline-style: auto;*/ } \ No newline at end of file diff --git a/frontend/src/app/atomic/input/email-field/email-field.component.html b/frontend/src/app/atomic/input/email-field/email-field.component.html index 323dae0..57fb731 100644 --- a/frontend/src/app/atomic/input/email-field/email-field.component.html +++ b/frontend/src/app/atomic/input/email-field/email-field.component.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/src/app/atomic/input/email-field/email-field.component.ts b/frontend/src/app/atomic/input/email-field/email-field.component.ts index 685696b..9abf44f 100644 --- a/frontend/src/app/atomic/input/email-field/email-field.component.ts +++ b/frontend/src/app/atomic/input/email-field/email-field.component.ts @@ -1,12 +1,34 @@ import {Component, EventEmitter, Input, Output} from '@angular/core'; +import {FormsModule} from "@angular/forms"; +import {verify_email} from "../../../model/util"; +import {NgClass} from "@angular/common"; @Component({ selector: 'atomic-email-field', - imports: [], + imports: [ + FormsModule, + NgClass + ], templateUrl: './email-field.component.html', styleUrl: './email-field.component.css' }) export class EmailFieldComponent { - @Input() value?: string; + @Input() disabled: boolean = false; + + private _value: string = ''; + @Input() + get value(): string { + return this._value; + } + + set value(val: string) { + this._value = val; + this.valueChange.emit(this._value); + } + @Output() valueChange = new EventEmitter(); + + verify_mail() { + return verify_email(this._value); + } } diff --git a/frontend/src/app/model/util.ts b/frontend/src/app/model/util.ts new file mode 100644 index 0000000..a663d5e --- /dev/null +++ b/frontend/src/app/model/util.ts @@ -0,0 +1,5 @@ +export const EMAIL_REGEX = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; + +export function verify_email(email: string): boolean { + return EMAIL_REGEX.test(email); +}