32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
|
|
|
|
import type { ViewDataBuilder } from '@/lib/contracts/builders/ViewDataBuilder';
|
|
import type { LoginPageDTO } from '@/lib/services/auth/types/LoginPageDTO';
|
|
import type { LoginViewData } from '@/lib/view-data/LoginViewData';
|
|
|
|
export class LoginViewDataBuilder {
|
|
public static build(apiDto: LoginPageDTO): LoginViewData {
|
|
return {
|
|
returnTo: apiDto.returnTo,
|
|
hasInsufficientPermissions: apiDto.hasInsufficientPermissions,
|
|
showPassword: false,
|
|
showErrorDetails: false,
|
|
formState: {
|
|
fields: {
|
|
email: { value: '', error: undefined, touched: false, validating: false },
|
|
password: { value: '', error: undefined, touched: false, validating: false },
|
|
rememberMe: { value: false, error: undefined, touched: false, validating: false },
|
|
},
|
|
isValid: true,
|
|
isSubmitting: false,
|
|
submitError: undefined,
|
|
submitCount: 0,
|
|
},
|
|
isSubmitting: false,
|
|
submitError: undefined,
|
|
};
|
|
}
|
|
}
|
|
|
|
LoginViewDataBuilder satisfies ViewDataBuilder<LoginPageDTO, LoginViewData>;
|