import { action } from '@ember/object'; import { map } from '@ember/object/computed'; import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; const re = /.+@\S+\.\S+/; export interface UtilMailEntrySignature { // The arguments accepted by the component Args: { data: { mail: string; valid: boolean }; }; // Any blocks yielded by the component Blocks: { default: []; }; // The element to which `...attributes` is applied in the component template Element: null; } export default class UtilMailEntry extends Component { @tracked mailOk = this.args.data.valid; @action checkMail() { this.args.data.valid = re.test(this.args.data.mail); this.mailOk = this.args.data.valid; } }