linstrom/frontend-reactive/app/components/util/mail-entry.ts

28 lines
771 B
TypeScript
Raw Permalink Normal View History

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