TF-2313 Apply scrollbar for destination picker view
Signed-off-by: dab246 <tdvu@linagora.com> (cherry picked from commit 9cf597cee008b436103b2aa19a1bfe69a8bfe8df)
This commit is contained in:
@@ -7,6 +7,7 @@ import 'package:core/presentation/views/search/search_bar_view.dart';
|
|||||||
import 'package:core/presentation/views/text/text_field_builder.dart';
|
import 'package:core/presentation/views/text/text_field_builder.dart';
|
||||||
import 'package:core/utils/direction_utils.dart';
|
import 'package:core/utils/direction_utils.dart';
|
||||||
import 'package:core/utils/platform_info.dart';
|
import 'package:core/utils/platform_info.dart';
|
||||||
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
@@ -16,6 +17,7 @@ import 'package:model/mailbox/expand_mode.dart';
|
|||||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||||
import 'package:pointer_interceptor/pointer_interceptor.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/mixin/app_loader_mixin.dart';
|
||||||
|
import 'package:tmail_ui_user/features/base/widget/scrollbar_list_view.dart';
|
||||||
import 'package:tmail_ui_user/features/destination_picker/presentation/destination_picker_controller.dart';
|
import 'package:tmail_ui_user/features/destination_picker/presentation/destination_picker_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_screen_type.dart';
|
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_screen_type.dart';
|
||||||
import 'package:tmail_ui_user/features/destination_picker/presentation/widgets/destination_picker_search_mailbox_item_builder.dart';
|
import 'package:tmail_ui_user/features/destination_picker/presentation/widgets/destination_picker_search_mailbox_item_builder.dart';
|
||||||
@@ -131,15 +133,65 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
Expanded(child: Container(
|
Expanded(
|
||||||
|
child: Container(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
child: RefreshIndicator(
|
padding: const EdgeInsets.symmetric(horizontal: 4),
|
||||||
color: AppColor.primaryColor,
|
child: Obx(() {
|
||||||
onRefresh: () async => controller.getAllMailboxAction(),
|
if (controller.isSearchActive()) {
|
||||||
child: Obx(() => controller.isSearchActive()
|
if (PlatformInfo.isMobile) {
|
||||||
? _buildListMailboxSearched(context, actions, mailboxIdSelected)
|
return RefreshIndicator(
|
||||||
: _buildListMailbox(context, actions, mailboxIdSelected)))
|
color: AppColor.primaryColor,
|
||||||
))
|
onRefresh: () async => controller.getAllMailboxAction(),
|
||||||
|
child: _buildListMailboxSearched(context, actions, mailboxIdSelected)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return ScrollbarListView(
|
||||||
|
scrollBehavior: ScrollConfiguration.of(context).copyWith(
|
||||||
|
physics: const BouncingScrollPhysics(),
|
||||||
|
dragDevices: {
|
||||||
|
PointerDeviceKind.touch,
|
||||||
|
PointerDeviceKind.mouse,
|
||||||
|
PointerDeviceKind.trackpad
|
||||||
|
},
|
||||||
|
),
|
||||||
|
scrollController: controller.destinationListScrollController,
|
||||||
|
child: RefreshIndicator(
|
||||||
|
color: AppColor.primaryColor,
|
||||||
|
onRefresh: () async => controller.getAllMailboxAction(),
|
||||||
|
child: _buildListMailboxSearched(context, actions, mailboxIdSelected)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (PlatformInfo.isMobile) {
|
||||||
|
return RefreshIndicator(
|
||||||
|
color: AppColor.primaryColor,
|
||||||
|
onRefresh: () async => controller.getAllMailboxAction(),
|
||||||
|
child: _buildListMailbox(context, actions, mailboxIdSelected)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return ScrollbarListView(
|
||||||
|
scrollBehavior: ScrollConfiguration.of(context).copyWith(
|
||||||
|
physics: const BouncingScrollPhysics(),
|
||||||
|
dragDevices: {
|
||||||
|
PointerDeviceKind.touch,
|
||||||
|
PointerDeviceKind.mouse,
|
||||||
|
PointerDeviceKind.trackpad
|
||||||
|
},
|
||||||
|
),
|
||||||
|
scrollController: controller.destinationListScrollController,
|
||||||
|
child: RefreshIndicator(
|
||||||
|
color: AppColor.primaryColor,
|
||||||
|
onRefresh: () async => controller.getAllMailboxAction(),
|
||||||
|
child: _buildListMailbox(context, actions, mailboxIdSelected)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
)
|
||||||
|
)
|
||||||
]),
|
]),
|
||||||
))
|
))
|
||||||
)
|
)
|
||||||
@@ -396,6 +448,7 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
|
|||||||
key: const Key('list_mailbox_searched'),
|
key: const Key('list_mailbox_searched'),
|
||||||
itemCount: controller.listMailboxSearched.length,
|
itemCount: controller.listMailboxSearched.length,
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
|
controller: controller.destinationListScrollController,
|
||||||
primary: false,
|
primary: false,
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
|
|||||||
Reference in New Issue
Block a user