feat(mobile): Add Scrollbar for vertical scrolling on the actions button multi-select (#18940)

* feat(mobile): Add Scrollbar for vertical scrolling on the actions button of a selected asset.

* fixed error scroll position and add more space for the scrollbar

* revert scrollbar change and display always 5.5 icons button

* minWidth set to 5.5 and used

* fix: logic and fine tuning

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
This commit is contained in:
JobiJoba 2025-06-10 22:22:42 +07:00 committed by GitHub
parent b50d9fa448
commit c03e72c1da
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 9 deletions

View File

@ -80,7 +80,7 @@ class ControlBottomAppBar extends HookConsumerWidget {
final albums = ref.watch(albumProvider).where((a) => a.isRemote).toList(); final albums = ref.watch(albumProvider).where((a) => a.isRemote).toList();
final sharedAlbums = final sharedAlbums =
ref.watch(albumProvider).where((a) => a.shared).toList(); ref.watch(albumProvider).where((a) => a.shared).toList();
const bottomPadding = 0.20; const bottomPadding = 0.24;
final scrollController = useDraggableScrollController(); final scrollController = useDraggableScrollController();
final isInLockedView = ref.watch(inLockedViewProvider); final isInLockedView = ref.watch(inLockedViewProvider);
@ -314,7 +314,7 @@ class ControlBottomAppBar extends HookConsumerWidget {
getInitialSize() { getInitialSize() {
if (isInLockedView) { if (isInLockedView) {
return 0.20; return bottomPadding;
} }
if (hasRemote) { if (hasRemote) {
return 0.35; return 0.35;
@ -324,7 +324,7 @@ class ControlBottomAppBar extends HookConsumerWidget {
getMaxChildSize() { getMaxChildSize() {
if (isInLockedView) { if (isInLockedView) {
return 0.20; return bottomPadding;
} }
if (hasRemote) { if (hasRemote) {
return 0.65; return 0.65;
@ -333,15 +333,12 @@ class ControlBottomAppBar extends HookConsumerWidget {
} }
return DraggableScrollableSheet( return DraggableScrollableSheet(
controller: scrollController,
initialChildSize: getInitialSize(), initialChildSize: getInitialSize(),
minChildSize: bottomPadding, minChildSize: bottomPadding,
maxChildSize: getMaxChildSize(), maxChildSize: getMaxChildSize(),
snap: true, snap: true,
builder: ( controller: scrollController,
BuildContext context, builder: (BuildContext context, ScrollController scrollController) {
ScrollController scrollController,
) {
return Card( return Card(
color: context.colorScheme.surfaceContainerHigh, color: context.colorScheme.surfaceContainerHigh,
surfaceTintColor: context.colorScheme.surfaceContainerHigh, surfaceTintColor: context.colorScheme.surfaceContainerHigh,

View File

@ -33,6 +33,9 @@ class ControlBoxButton extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final minWidth =
context.isMobile ? MediaQuery.sizeOf(context).width / 4.5 : 75.0;
return MaterialButton( return MaterialButton(
padding: const EdgeInsets.all(10), padding: const EdgeInsets.all(10),
shape: const RoundedRectangleBorder( shape: const RoundedRectangleBorder(
@ -40,7 +43,7 @@ class ControlBoxButton extends StatelessWidget {
), ),
onPressed: onPressed, onPressed: onPressed,
onLongPress: onLongPressed, onLongPress: onLongPressed,
minWidth: 75.0, minWidth: minWidth,
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,