diff --git a/lib/features/login/presentation/login_view_web.dart b/lib/features/login/presentation/login_view_web.dart index 28e68cac9..150d324e7 100644 --- a/lib/features/login/presentation/login_view_web.dart +++ b/lib/features/login/presentation/login_view_web.dart @@ -35,13 +35,7 @@ class LoginView extends BaseLoginView { children: [ Padding( padding: const EdgeInsets.only(top: 67), - child: (SloganBuilder(arrangedByHorizontal: true) - ..setSloganText(AppLocalizations.of(context).app_name) - ..setSloganTextAlign(TextAlign.center) - ..setSloganTextStyle(const TextStyle(color: Colors.black, fontSize: 24, fontWeight: FontWeight.bold)) - ..setSizeLogo(36) - ..setLogo(imagePaths.icLogoTMail)) - .build() + child: _buildAppLogo(context) ), Padding( padding: const EdgeInsets.only(top: 67), @@ -70,126 +64,138 @@ class LoginView extends BaseLoginView { } Widget _buildWebForm(BuildContext context) { - return Stack( - children: [ - Padding( - padding: const EdgeInsets.only(top: 60, bottom: 60), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(right: 86), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - mainAxisSize: MainAxisSize.max, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - AppLocalizations.of(context).jmapBasedMailSolution, - style: const TextStyle(fontSize: 36, color: AppColor.colorNameEmail, fontWeight: FontWeight.w900) - ), - Padding( - padding: const EdgeInsets.only(top: 24), - child: (SloganBuilder(arrangedByHorizontal: true, ) - ..setLogoSVG(imagePaths.icJMAPStandard) - ..setSizeLogo(48.0) - ..setPadding(const EdgeInsets.only(left: 12)) - ..setSloganText(AppLocalizations.of(context).jmapStandard) - ..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail))) - .build() - ), - Padding( - padding: const EdgeInsets.only(top: 16), - child: (SloganBuilder(arrangedByHorizontal: true, ) - ..setLogoSVG(imagePaths.icEncrypted) - ..setSizeLogo(48.0) - ..setPadding(const EdgeInsets.only(left: 12)) - ..setSloganText(AppLocalizations.of(context).encryptedMailbox) - ..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail))) - .build() - ), - Padding( - padding: const EdgeInsets.only(top: 16), - child: (SloganBuilder(arrangedByHorizontal: true, ) - ..setLogoSVG(imagePaths.icTeam) - ..setSizeLogo(48.0) - ..setPadding(const EdgeInsets.only(left: 12)) - ..setSloganText(AppLocalizations.of(context).manageEmailAsATeam) - ..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail))) - .build() - ), - Padding( - padding: const EdgeInsets.only(top: 16), - child: (SloganBuilder(arrangedByHorizontal: true, ) - ..setLogoSVG(imagePaths.icIntegration) - ..setSizeLogo(48.0) - ..setPadding(const EdgeInsets.only(left: 12)) - ..setSloganText(AppLocalizations.of(context).multipleIntegrations) - ..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail))) - .build() - ), - Padding( - padding: const EdgeInsets.only(top: 44), - child: Image( - image: AssetImage(imagePaths.loginGraphic), - fit: BoxFit.fill, - alignment: Alignment.center - ) - ) - ], - ) - ), - Column( + return Padding( + padding: const EdgeInsets.only(top: 60, bottom: 60), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(right: 86), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + mainAxisSize: MainAxisSize.max, + crossAxisAlignment: CrossAxisAlignment.start, children: [ - SizedBox( - height: 690, - width: 445, - child: Card( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(20.0), - ), - elevation: 10, - child: Padding( - padding: const EdgeInsets.only(left: 31, right: 31), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.only(top: 66), - child: (SloganBuilder(arrangedByHorizontal: true) - ..setSloganText(AppLocalizations.of(context).app_name) - ..setSloganTextAlign(TextAlign.center) - ..setSloganTextStyle(const TextStyle(color: Colors.black, fontSize: 24, fontWeight: FontWeight.bold)) - ..setSizeLogo(36) - ..setLogo(imagePaths.icLogoTMail)) - .build() - ), - Padding( - padding: const EdgeInsets.only(top: 67), - child: Text( - AppLocalizations.of(context).signIn, - style: const TextStyle(fontSize: 32, color: AppColor.colorNameEmail, fontWeight: FontWeight.w900) - ) - ), - Obx(() => buildLoginMessage(context, loginController.loginState.value)), - buildInputCredentialForm(context), - buildLoginButton(context) - ], - ) - ) - ) + Text( + AppLocalizations.of(context).jmapBasedMailSolution, + style: const TextStyle(fontSize: 36, color: AppColor.colorNameEmail, fontWeight: FontWeight.w900) ), Padding( - padding: const EdgeInsets.only(top: 44, bottom: 10), - child: SvgPicture.asset(imagePaths.icPowerByLinagora, width: 97, height: 44, fit: BoxFit.fill)) - ] + padding: const EdgeInsets.only(top: 24), + child: (SloganBuilder(arrangedByHorizontal: true, ) + ..setLogoSVG(imagePaths.icJMAPStandard) + ..setSizeLogo(48.0) + ..setPadding(const EdgeInsets.only(left: 12)) + ..setSloganText(AppLocalizations.of(context).jmapStandard) + ..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail))) + .build() + ), + Padding( + padding: const EdgeInsets.only(top: 16), + child: (SloganBuilder(arrangedByHorizontal: true, ) + ..setLogoSVG(imagePaths.icEncrypted) + ..setSizeLogo(48.0) + ..setPadding(const EdgeInsets.only(left: 12)) + ..setSloganText(AppLocalizations.of(context).encryptedMailbox) + ..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail))) + .build() + ), + Padding( + padding: const EdgeInsets.only(top: 16), + child: (SloganBuilder(arrangedByHorizontal: true, ) + ..setLogoSVG(imagePaths.icTeam) + ..setSizeLogo(48.0) + ..setPadding(const EdgeInsets.only(left: 12)) + ..setSloganText(AppLocalizations.of(context).manageEmailAsATeam) + ..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail))) + .build() + ), + Padding( + padding: const EdgeInsets.only(top: 16), + child: (SloganBuilder(arrangedByHorizontal: true, ) + ..setLogoSVG(imagePaths.icIntegration) + ..setSizeLogo(48.0) + ..setPadding(const EdgeInsets.only(left: 12)) + ..setSloganText(AppLocalizations.of(context).multipleIntegrations) + ..setSloganTextStyle(const TextStyle(fontSize: 24, fontWeight: FontWeight.w400, color: AppColor.colorNameEmail))) + .build() + ), + Padding( + padding: const EdgeInsets.only(top: 44), + child: Image( + image: AssetImage(imagePaths.loginGraphic), + fit: BoxFit.fill, + alignment: Alignment.center + ) + ) + ], ) - ], + ), + Column( + children: [ + SizedBox( + height: 690, + width: 445, + child: Card( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20.0), + ), + elevation: 10, + child: Padding( + padding: const EdgeInsets.only(left: 31, right: 31), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.only(top: 66), + child: _buildAppLogo(context) + ), + Padding( + padding: const EdgeInsets.only(top: 67), + child: Text( + AppLocalizations.of(context).signIn, + style: const TextStyle(fontSize: 32, color: AppColor.colorNameEmail, fontWeight: FontWeight.w900) + ) + ), + Obx(() => buildLoginMessage(context, loginController.loginState.value)), + buildInputCredentialForm(context), + buildLoginButton(context) + ], + ) + ) + ) + ), + Padding( + padding: const EdgeInsets.only(top: 44, bottom: 10), + child: SvgPicture.asset(imagePaths.icPowerByLinagora, width: 97, height: 44, fit: BoxFit.fill) + ) + ] ) - ) - ], + ], + ) + ); + } + + Widget _buildAppLogo(BuildContext buildContext) { + return Row( + mainAxisSize: MainAxisSize.min, + children: [ + Image( + image: AssetImage(imagePaths.icLogoTMail), + fit: BoxFit.fill, + width: 36, + height: 36, + alignment: Alignment.center), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10), + child: Text( + AppLocalizations.of(buildContext).app_name, + style: const TextStyle(color: Colors.black, fontSize: 24, fontWeight: FontWeight.bold), + textAlign: TextAlign.center), + ), + ] ); } } \ No newline at end of file