37 lines
772 B
TypeScript
37 lines
772 B
TypeScript
/**
|
|
* EmailSignupViewModel
|
|
*
|
|
* View model for email signup responses
|
|
*/
|
|
import { ViewModel } from "../contracts/view-models/ViewModel";
|
|
import type { EmailSignupViewData } from "../view-data/EmailSignupViewData";
|
|
|
|
export class EmailSignupViewModel extends ViewModel {
|
|
constructor(private readonly viewData: EmailSignupViewData) {
|
|
super();
|
|
}
|
|
|
|
get email(): string {
|
|
return this.viewData.email;
|
|
}
|
|
|
|
get message(): string {
|
|
return this.viewData.message;
|
|
}
|
|
|
|
get status(): EmailSignupViewData["status"] {
|
|
return this.viewData.status;
|
|
}
|
|
|
|
get isSuccess(): boolean {
|
|
return this.status === 'success';
|
|
}
|
|
|
|
get isError(): boolean {
|
|
return this.status === 'error';
|
|
}
|
|
|
|
get isInfo(): boolean {
|
|
return this.status === 'info';
|
|
}
|
|
} |