mirror of
https://github.com/immich-app/immich.git
synced 2025-07-09 03:04:16 -04:00
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:
parent
b50d9fa448
commit
c03e72c1da
@ -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,
|
||||||
|
@ -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,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user