TF-3759 Support display clean folder dialog in RTL mode

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-06-16 04:16:37 +07:00
committed by Dat H. Pham
parent aeaea7b8b2
commit 9c3f6a9684
2 changed files with 13 additions and 5 deletions
@@ -11,6 +11,7 @@ import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.d
import 'package:tmail_ui_user/features/mailbox/presentation/styles/empty_mailbox_dialog_overlay_styles.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/styles/empty_mailbox_dialog_overlay_styles.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_method_action_define.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_method_action_define.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
class EmptyMailboxDialogOverlay extends StatelessWidget { class EmptyMailboxDialogOverlay extends StatelessWidget {
@@ -33,7 +34,7 @@ class EmptyMailboxDialogOverlay extends StatelessWidget {
return PointerInterceptor( return PointerInterceptor(
child: PhysicalShape( child: PhysicalShape(
clipBehavior: Clip.antiAlias, clipBehavior: Clip.antiAlias,
clipper: SideArrowClipper(), clipper: SideArrowClipper(isRight: AppUtils.isDirectionRTL(context)),
color: EmptyMailboxDialogOverlayStyles.backgroundColor, color: EmptyMailboxDialogOverlayStyles.backgroundColor,
shadowColor: EmptyMailboxDialogOverlayStyles.shadowColor, shadowColor: EmptyMailboxDialogOverlayStyles.shadowColor,
elevation: EmptyMailboxDialogOverlayStyles.elevation, elevation: EmptyMailboxDialogOverlayStyles.elevation,
@@ -7,6 +7,7 @@ import 'package:tmail_ui_user/features/mailbox/presentation/styles/empty_mailbox
import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_method_action_define.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_method_action_define.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/empty_mailbox_dialog_overlay.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/widgets/empty_mailbox_dialog_overlay.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
typedef OnPopupVisibleChange = void Function(bool visible); typedef OnPopupVisibleChange = void Function(bool visible);
@@ -47,9 +48,13 @@ class _EmptyMailboxPopupDialogWidgetState extends State<EmptyMailboxPopupDialogW
onTap: () => _setVisible(false), onTap: () => _setVisible(false),
), ),
child: PortalTarget( child: PortalTarget(
anchor: const Aligned( anchor: Aligned(
follower: Alignment.bottomLeft, follower: AppUtils.isDirectionRTL(context)
target: Alignment.topRight, ? Alignment.bottomRight
: Alignment.bottomLeft,
target: AppUtils.isDirectionRTL(context)
? Alignment.topLeft
: Alignment.topRight,
offset: EmptyMailboxPopupDialogWidgetStyles.dialogOverlayOffset offset: EmptyMailboxPopupDialogWidgetStyles.dialogOverlayOffset
), ),
portalFollower: EmptyMailboxDialogOverlay( portalFollower: EmptyMailboxDialogOverlay(
@@ -66,7 +71,9 @@ class _EmptyMailboxPopupDialogWidgetState extends State<EmptyMailboxPopupDialogW
textStyle: Theme.of(context).textTheme.bodySmall?.copyWith( textStyle: Theme.of(context).textTheme.bodySmall?.copyWith(
color: AppColor.steelGrayA540, color: AppColor.steelGrayA540,
), ),
backgroundColor: Colors.transparent, backgroundColor: _visible
? Theme.of(context).colorScheme.outline.withOpacity(0.08)
: Colors.transparent,
padding: EmptyMailboxPopupDialogWidgetStyles.emptyButtonPadding, padding: EmptyMailboxPopupDialogWidgetStyles.emptyButtonPadding,
onTapActionCallback: () => _setVisible(true), onTapActionCallback: () => _setVisible(true),
) )