From 34db6f893d93483c0fbecadfc6d11e4f27882e63 Mon Sep 17 00:00:00 2001 From: dab246 Date: Wed, 22 Nov 2023 17:55:17 +0700 Subject: [PATCH] TF-2313 Apply scrollbar for setting view Signed-off-by: dab246 (cherry picked from commit 6f92d6cca5562c3e508f58832fc078daf4944ed3) --- .../menu/settings/settings_controller.dart | 8 ++++++++ .../settings/settings_first_level_view.dart | 17 ++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/lib/features/manage_account/presentation/menu/settings/settings_controller.dart b/lib/features/manage_account/presentation/menu/settings/settings_controller.dart index 0aab462b4..84b92ebc9 100644 --- a/lib/features/manage_account/presentation/menu/settings/settings_controller.dart +++ b/lib/features/manage_account/presentation/menu/settings/settings_controller.dart @@ -1,6 +1,7 @@ import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/utils/app_logger.dart'; +import 'package:flutter/cupertino.dart'; import 'package:get/get.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart'; @@ -10,6 +11,7 @@ class SettingsController extends GetxController { final manageAccountDashboardController = Get.find(); final responsiveUtils = Get.find(); final imagePaths = Get.find(); + final settingScrollController = ScrollController(); void selectSettings(AccountMenuItem accountMenuItem) { log('SettingsController::selectSettings(): $accountMenuItem'); @@ -23,4 +25,10 @@ class SettingsController extends GetxController { manageAccountDashboardController.selectAccountMenuItem(AccountMenuItem.none); manageAccountDashboardController.settingsPageLevel.value = SettingsPageLevel.universal; } + + @override + void onClose() { + settingScrollController.dispose(); + super.onClose(); + } } \ No newline at end of file diff --git a/lib/features/manage_account/presentation/menu/settings/settings_first_level_view.dart b/lib/features/manage_account/presentation/menu/settings/settings_first_level_view.dart index 1fc143591..35f0b3dc9 100644 --- a/lib/features/manage_account/presentation/menu/settings/settings_first_level_view.dart +++ b/lib/features/manage_account/presentation/menu/settings/settings_first_level_view.dart @@ -1,6 +1,8 @@ import 'package:core/presentation/extensions/color_extension.dart'; +import 'package:core/utils/platform_info.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:tmail_ui_user/features/base/widget/scrollbar_list_view.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/widgets/user_information_widget.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings/settings_controller.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings_utils.dart'; @@ -13,7 +15,8 @@ class SettingsFirstLevelView extends GetWidget { @override Widget build(BuildContext context) { - return SingleChildScrollView( + final child = SingleChildScrollView( + controller: PlatformInfo.isMobile ? null : controller.settingScrollController, child: Column(children: [ Obx(() => UserInformationWidget( userProfile: controller.manageAccountDashboardController.userProfile.value, @@ -131,5 +134,17 @@ class SettingsFirstLevelView extends GetWidget { ), ]), ); + + if (PlatformInfo.isMobile) { + return child; + } else { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 4), + child: ScrollbarListView( + scrollController: controller.settingScrollController, + child: child + ), + ); + } } }