TF-3479 Update logic Show <-> Hide <-> Minimize multiple composer

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-03-11 16:27:44 +07:00
committed by Dat H. Pham
parent a0160f09f3
commit d2e5d35755
5 changed files with 100 additions and 89 deletions
@@ -825,8 +825,8 @@ class MailboxDashBoardController extends ReloadableController
}
}
void hideMailboxMenuWhenScreenSizeChange(BuildContext context) {
if (responsiveUtils.isWebDesktop(context) && isDrawerOpen) {
void hideMailboxMenuWhenScreenSizeChange() {
if (isDrawerOpen) {
WidgetsBinding.instance.addPostFrameCallback((_) {
closeMailboxMenuDrawer();
});
@@ -50,8 +50,6 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
@override
Widget build(BuildContext context) {
controller.hideMailboxMenuWhenScreenSizeChange(context);
return Portal(
child: Stack(children: [
ResponsiveWidget(
@@ -198,7 +196,32 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
}
}),
),
ComposerOverlayView(),
Align(
alignment: AlignmentDirectional.bottomEnd,
child: LayoutBuilder(
builder: ((context, constraints) {
log('MailboxDashBoardView::build:LayoutBuilder:Constraints = $constraints');
final screenWidth = constraints.maxWidth;
final composerManager = controller.composerManager;
final isDesktopScreen = controller.responsiveUtils.isMatchedDesktopWidth(screenWidth);
log('MailboxDashBoardView::build:ScreenWidth = $screenWidth | isDesktopScreen = $isDesktopScreen');
if (isDesktopScreen) {
controller.hideMailboxMenuWhenScreenSizeChange();
}
if (composerManager.composers.isNotEmpty) {
log('ComposerOverlayView::build:arrangeComposerWhenResponsiveChanged');
composerManager.arrangeComposerWhenResponsiveChanged(screenWidth: screenWidth);
}
return ComposerOverlayView(
composerManager: composerManager,
isDesktopScreen: isDesktopScreen,
);
}),
),
),
Obx(() => controller.searchMailboxActivated.value == true && !controller.responsiveUtils.isWebDesktop(context)
? const SearchMailboxView()
: const SizedBox.shrink()