TF-2684 Use scrollbar theme replace customize scrollbar

This commit is contained in:
dab246
2024-03-13 01:08:24 +07:00
committed by Dat H. Pham
parent dbf1f2d530
commit 8ddb4b9275
14 changed files with 117 additions and 160 deletions
@@ -10,7 +10,6 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:model/model.dart';
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
import 'package:tmail_ui_user/features/base/widget/scrollbar_list_view.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/email_action_cupertino_action_sheet_action_builder.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/recent_search.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
@@ -497,7 +496,7 @@ class SearchEmailView extends GetWidget<SearchEmailController>
searchQuery: controller.searchQuery,
isShowingEmailContent: controller.mailboxDashBoardController.selectedEmail.value?.id == currentPresentationEmail.id,
isSearchEmailRunning: true,
padding: SearchEmailUtils.getPaddingItemListMobile(context, controller.responsiveUtils),
padding: SearchEmailUtils.getPaddingSearchResultList(context, controller.responsiveUtils),
mailboxContain: currentPresentationEmail.mailboxContain,
emailActionClick: (action, email) {
controller.pressEmailAction(
@@ -533,61 +532,58 @@ class SearchEmailView extends GetWidget<SearchEmailController>
}
},
)
: ScrollbarListView(
scrollController: controller.resultSearchScrollController,
child: ListView.separated(
controller: controller.resultSearchScrollController,
physics: const AlwaysScrollableScrollPhysics(),
key: const PageStorageKey('list_presentation_email_in_search_view'),
itemCount: listPresentationEmail.length,
itemBuilder: (context, index) {
final currentPresentationEmail = listPresentationEmail[index];
return Obx(() => EmailTileBuilder(
presentationEmail: currentPresentationEmail,
selectAllMode: controller.selectionMode.value,
searchQuery: controller.searchQuery,
isShowingEmailContent: controller.mailboxDashBoardController.selectedEmail.value?.id == currentPresentationEmail.id,
isSearchEmailRunning: true,
padding: SearchEmailUtils.getPaddingSearchResultList(context, controller.responsiveUtils),
mailboxContain: currentPresentationEmail.mailboxContain,
emailActionClick: (action, email) {
controller.pressEmailAction(
context,
action,
email,
mailboxContain: currentPresentationEmail.mailboxContain
);
},
onMoreActionClick: (email, position) {
if (controller.responsiveUtils.isScreenWithShortestSide(context)) {
controller.openContextMenuAction(
context,
_contextMenuActionTile(context, email)
);
} else {
controller.openPopupMenuAction(
context,
position,
_popupMenuActionTile(context, email)
);
}
},
));
},
separatorBuilder: (context, index) {
return Padding(
padding: ItemEmailTileStyles.getPaddingDividerWeb(context, controller.responsiveUtils),
child: Divider(
color: index < listPresentationEmail.length - 1 &&
controller.selectionMode.value == SelectMode.INACTIVE
? null
: Colors.white
)
: ListView.separated(
controller: controller.resultSearchScrollController,
physics: const AlwaysScrollableScrollPhysics(),
key: const PageStorageKey('list_presentation_email_in_search_view'),
itemCount: listPresentationEmail.length,
itemBuilder: (context, index) {
final currentPresentationEmail = listPresentationEmail[index];
return Obx(() => EmailTileBuilder(
presentationEmail: currentPresentationEmail,
selectAllMode: controller.selectionMode.value,
searchQuery: controller.searchQuery,
isShowingEmailContent: controller.mailboxDashBoardController.selectedEmail.value?.id == currentPresentationEmail.id,
isSearchEmailRunning: true,
padding: SearchEmailUtils.getPaddingSearchResultList(context, controller.responsiveUtils),
mailboxContain: currentPresentationEmail.mailboxContain,
emailActionClick: (action, email) {
controller.pressEmailAction(
context,
action,
email,
mailboxContain: currentPresentationEmail.mailboxContain
);
},
)
)
onMoreActionClick: (email, position) {
if (controller.responsiveUtils.isScreenWithShortestSide(context)) {
controller.openContextMenuAction(
context,
_contextMenuActionTile(context, email)
);
} else {
controller.openPopupMenuAction(
context,
position,
_popupMenuActionTile(context, email)
);
}
},
));
},
separatorBuilder: (context, index) {
return Padding(
padding: ItemEmailTileStyles.getPaddingDividerWeb(context, controller.responsiveUtils),
child: Divider(
color: index < listPresentationEmail.length - 1 &&
controller.selectionMode.value == SelectMode.INACTIVE
? null
: Colors.white
)
);
},
)
);
}
@@ -81,7 +81,6 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa
final currentSearchQuery = RxString('');
final listMailboxSearched = RxList<PresentationMailbox>();
final textInputSearchController = TextEditingController();
final scrollbarController = ScrollController();
late Debouncer<String> _deBouncerTime;
PresentationMailbox? get selectedMailbox => dashboardController.selectedMailbox.value;
@@ -730,7 +729,6 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa
void onClose() {
textInputSearchController.dispose();
_deBouncerTime.cancel();
scrollbarController.dispose();
super.onClose();
}
}
@@ -11,7 +11,6 @@ import 'package:get/get.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:pointer_interceptor/pointer_interceptor.dart';
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
import 'package:tmail_ui_user/features/base/widget/scrollbar_list_view.dart';
import 'package:tmail_ui_user/features/mailbox/domain/state/search_mailbox_state.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/context_item_mailbox_action.dart';
@@ -58,12 +57,7 @@ class SearchMailboxView extends GetWidget<SearchMailboxController>
const Divider(color: AppColor.colorDividerComposer, height: 1),
_buildLoadingView(),
Expanded(
child: PlatformInfo.isMobile
? _buildMailboxListView(context)
: ScrollbarListView(
scrollController: controller.scrollbarController,
child: _buildMailboxListView(context)
)
child: _buildMailboxListView(context)
)
]),
);
@@ -179,7 +173,6 @@ class SearchMailboxView extends GetWidget<SearchMailboxController>
padding: SearchMailboxUtils.getPaddingListViewMailboxSearched(context, controller.responsiveUtils),
key: const Key('list_mailbox_searched'),
itemCount: controller.listMailboxSearched.length,
controller: controller.scrollbarController,
shrinkWrap: true,
primary: false,
itemBuilder: (context, index) {