diff --git a/lib/features/mailbox_dashboard/presentation/widgets/app_dashboard/app_grid_dashboard_item.dart b/lib/features/mailbox_dashboard/presentation/widgets/app_dashboard/app_grid_dashboard_item.dart index 874f69f7e..a52ac5ced 100644 --- a/lib/features/mailbox_dashboard/presentation/widgets/app_dashboard/app_grid_dashboard_item.dart +++ b/lib/features/mailbox_dashboard/presentation/widgets/app_dashboard/app_grid_dashboard_item.dart @@ -17,40 +17,46 @@ class AppGridDashboardItem extends StatelessWidget { @override Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.symmetric(vertical: 8), - child: LinkBrowserWidget( - uri: app.appUri, + return LinkBrowserWidget( + uri: app.appUri, + child: Material( + color: Colors.transparent, child: InkWell( onTap: _openApp, - child: Column(children: [ - app.iconName.endsWith("svg") - ? SvgPicture.asset( - _imagePaths.getConfigurationImagePath(app.iconName), - width: 56, - height: 56, - fit: BoxFit.fill) - : Image.asset( - _imagePaths.getConfigurationImagePath(app.iconName), - width: 56, - height: 56, - fit: BoxFit.fill), - Padding( - padding: const EdgeInsets.only(top: 8), - child: Text( - app.appName, - maxLines: 1, - textAlign: TextAlign.center, - softWrap: CommonTextStyle.defaultSoftWrap, - overflow: CommonTextStyle.defaultTextOverFlow, - style: const TextStyle( - color: AppColor.colorNameEmail, - fontSize: 15 + borderRadius: const BorderRadius.all(Radius.circular(16)), + hoverColor: AppColor.colorItemSelected, + child: Container( + width: 98, + padding: const EdgeInsets.symmetric(vertical: 8), + child: Column(children: [ + app.iconName.endsWith("svg") + ? SvgPicture.asset( + _imagePaths.getConfigurationImagePath(app.iconName), + width: 56, + height: 56, + fit: BoxFit.fill) + : Image.asset( + _imagePaths.getConfigurationImagePath(app.iconName), + width: 56, + height: 56, + fit: BoxFit.fill), + Padding( + padding: const EdgeInsets.only(top: 8), + child: Text( + app.appName, + maxLines: 1, + textAlign: TextAlign.center, + softWrap: CommonTextStyle.defaultSoftWrap, + overflow: CommonTextStyle.defaultTextOverFlow, + style: const TextStyle( + color: AppColor.colorNameEmail, + fontSize: 15 + ), ), ), - ), - ]), - ), + ]), + ), + ) ) ); } diff --git a/lib/features/mailbox_dashboard/presentation/widgets/app_dashboard/app_grid_dashboard_overlay.dart b/lib/features/mailbox_dashboard/presentation/widgets/app_dashboard/app_grid_dashboard_overlay.dart index fb3f9baea..b59cd974c 100644 --- a/lib/features/mailbox_dashboard/presentation/widgets/app_dashboard/app_grid_dashboard_overlay.dart +++ b/lib/features/mailbox_dashboard/presentation/widgets/app_dashboard/app_grid_dashboard_overlay.dart @@ -1,5 +1,4 @@ import 'package:core/presentation/extensions/color_extension.dart'; -import 'package:core/presentation/views/list/sliver_grid_delegate_fixed_height.dart'; import 'package:flutter/material.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/app_dashboard/linagora_applications.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/app_dashboard/app_grid_dashboard_item.dart'; @@ -14,36 +13,38 @@ class AppDashboardOverlay extends StatelessWidget { return GestureDetector( onTap: () => FocusManager.instance.primaryFocus?.unfocus(), child: Container( - width: 342, - height: 244, + width: _widthAppGrid, decoration: BoxDecoration( color: Colors.white, - borderRadius: BorderRadius.circular(16), + borderRadius: BorderRadius.circular(24), boxShadow: const [ BoxShadow( - color: AppColor.colorShadowComposer, - blurRadius: 32, + color: AppColor.colorShadowLayerBottom, + blurRadius: 96, offset: Offset.zero), BoxShadow( - color: AppColor.colorDropShadow, - blurRadius: 4, + color: AppColor.colorShadowLayerTop, + blurRadius: 2, offset: Offset.zero), ] ), - child: GridView.builder( - padding: const EdgeInsets.all(24), - itemBuilder: (context, i) { - final app = _linagoraApplications.apps[i]; - return AppGridDashboardItem(app); - }, - primary: true, - itemCount: _linagoraApplications.apps.length, - gridDelegate: const SliverGridDelegateFixedHeight( - height: 98, - crossAxisCount: 3, - ), - ), + padding: const EdgeInsets.all(24), + child: Wrap(children: _linagoraApplications.apps + .map((app) => AppGridDashboardItem(app)) + .toList()), ), ); } + + double get _widthAppGrid { + if (_linagoraApplications.apps.length >= 3) { + return 342; + } else if (_linagoraApplications.apps.length == 2) { + return 244; + } else if (_linagoraApplications.apps.length == 1) { + return 146; + } else { + return 0; + } + } }