TF-3416 Implement preview EML attachment

This commit is contained in:
dab246
2025-01-13 10:02:50 +07:00
committed by Dat H. Pham
parent 7cbdfddb6d
commit d304083b2e
54 changed files with 1489 additions and 148 deletions
@@ -2,10 +2,10 @@ import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:dartz/dartz.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:model/oidc/oidc_configuration.dart';
import 'package:model/oidc/token_oidc.dart';
import 'package:tip_dialog/tip_dialog.dart';
import 'package:tmail_ui_user/features/base/reloadable/reloadable_controller.dart';
import 'package:tmail_ui_user/features/home/domain/state/get_session_state.dart';
import 'package:tmail_ui_user/features/login/data/network/config/oidc_constant.dart';
@@ -44,7 +44,7 @@ class TwakeWelcomeController extends ReloadableController {
}
void onClickSignIn(BuildContext context) {
TipDialogHelper.loading(AppLocalizations.of(context).loadingPleaseWait);
SmartDialog.showLoading(msg: AppLocalizations.of(context).loadingPleaseWait);
final baseUri = Uri.tryParse(AppConfig.saasJmapServerUrl);
@@ -64,7 +64,7 @@ class TwakeWelcomeController extends ReloadableController {
}
void onSignUpTwakeWorkplace(BuildContext context) {
TipDialogHelper.loading(AppLocalizations.of(context).loadingPleaseWait);
SmartDialog.showLoading(msg: AppLocalizations.of(context).loadingPleaseWait);
final baseUri = Uri.tryParse(AppConfig.saasJmapServerUrl);
@@ -115,7 +115,7 @@ class TwakeWelcomeController extends ReloadableController {
@override
void handleReloaded(Session session) {
TipDialogHelper.dismiss();
SmartDialog.dismiss();
popAndPush(
RouteUtils.generateNavigationRoute(AppRoutes.dashboard),
@@ -124,7 +124,7 @@ class TwakeWelcomeController extends ReloadableController {
@override
void handleGetSessionFailure(GetSessionFailure failure) {
TipDialogHelper.dismiss();
SmartDialog.dismiss();
toastManager.showMessageFailure(failure);
}
@@ -147,13 +147,13 @@ class TwakeWelcomeController extends ReloadableController {
}
void _handleSignInTwakeWorkplaceFailure(SignInTwakeWorkplaceFailure failure) {
TipDialogHelper.dismiss();
SmartDialog.dismiss();
toastManager.showMessageFailure(failure);
}
void _handleSignUpTwakeWorkplaceFailure(SignUpTwakeWorkplaceFailure failure) {
TipDialogHelper.dismiss();
SmartDialog.dismiss();
toastManager.showMessageFailure(failure);
}
@@ -3,7 +3,6 @@ import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:linagora_design_flutter/linagora_design_flutter.dart';
import 'package:tip_dialog/tip_dialog.dart';
import 'package:tmail_ui_user/features/starting_page/presentation/twake_welcome/twake_welcome_controller.dart';
import 'package:tmail_ui_user/features/starting_page/presentation/twake_welcome/twake_welcome_view_style.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
@@ -19,42 +18,29 @@ class TwakeWelcomeView extends GetWidget<TwakeWelcomeController> {
DeviceOrientation.portraitDown
]);
return Stack(
children: [
TwakeWelcomeScreen(
logo: Padding(
padding: const EdgeInsetsDirectional.only(bottom: 16),
child: SvgPicture.asset(
controller.imagePaths.icLogoTwakeWelcome,
fit: BoxFit.fill,
),
),
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
overlayColor: WidgetStateProperty.all(Colors.transparent),
signInTitle: AppLocalizations.of(context).signIn.capitalizeFirst ?? '',
onSignInOnTap: () => controller.onClickSignIn(context),
onCreateTwakeIdOnTap: () => controller.onSignUpTwakeWorkplace(context),
createTwakeIdTitle: AppLocalizations.of(context).createTwakeId,
useCompanyServerTitle: AppLocalizations.of(context).useCompanyServer,
description: AppLocalizations.of(context).descriptionWelcomeTo,
descriptionTextStyle: TwakeWelcomeViewStyle.descriptionTextStyle,
privacyPolicy: AppLocalizations.of(context).privacyPolicy,
descriptionPrivacyPolicy: AppLocalizations.of(context).byContinuingYouAreAgreeingToOur,
onPrivacyPolicyOnTap: controller.onClickPrivacyPolicy,
onUseCompanyServerOnTap: controller.handleUseCompanyServer,
return TwakeWelcomeScreen(
logo: Padding(
padding: const EdgeInsetsDirectional.only(bottom: 16),
child: SvgPicture.asset(
controller.imagePaths.icLogoTwakeWelcome,
fit: BoxFit.fill,
),
TipDialogContainer(
duration: const Duration(seconds: 2),
outsideTouchable: true,
onOutsideTouch: (tipDialog) {
if (tipDialog is TipDialog && tipDialog.type == TipDialogType.LOADING) {
TipDialogHelper.dismiss();
}
}
)
],
),
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
overlayColor: WidgetStateProperty.all(Colors.transparent),
signInTitle: AppLocalizations.of(context).signIn.capitalizeFirst ?? '',
onSignInOnTap: () => controller.onClickSignIn(context),
onCreateTwakeIdOnTap: () => controller.onSignUpTwakeWorkplace(context),
createTwakeIdTitle: AppLocalizations.of(context).createTwakeId,
useCompanyServerTitle: AppLocalizations.of(context).useCompanyServer,
description: AppLocalizations.of(context).descriptionWelcomeTo,
descriptionTextStyle: TwakeWelcomeViewStyle.descriptionTextStyle,
privacyPolicy: AppLocalizations.of(context).privacyPolicy,
descriptionPrivacyPolicy: AppLocalizations.of(context).byContinuingYouAreAgreeingToOur,
onPrivacyPolicyOnTap: controller.onClickPrivacyPolicy,
onUseCompanyServerOnTap: controller.handleUseCompanyServer,
);
}
}