40 lines
808 B
TypeScript
40 lines
808 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 {
|
|
private readonly data: EmailSignupViewData;
|
|
|
|
constructor(data: EmailSignupViewData) {
|
|
super();
|
|
this.data = data;
|
|
}
|
|
|
|
get email(): string {
|
|
return this.data.email;
|
|
}
|
|
|
|
get message(): string {
|
|
return this.data.message;
|
|
}
|
|
|
|
get status(): EmailSignupViewData["status"] {
|
|
return this.data.status;
|
|
}
|
|
|
|
get isSuccess(): boolean {
|
|
return this.status === 'success';
|
|
}
|
|
|
|
get isError(): boolean {
|
|
return this.status === 'error';
|
|
}
|
|
|
|
get isInfo(): boolean {
|
|
return this.status === 'info';
|
|
}
|
|
} |