@@ -25,12 +25,30 @@ import 'package:immich_mobile/providers/server_info.provider.dart';
25
25
import 'package:immich_mobile/providers/timeline/multiselect.provider.dart' ;
26
26
import 'package:immich_mobile/widgets/common/immich_toast.dart' ;
27
27
28
- class GeneralBottomSheet extends ConsumerWidget {
28
+ class GeneralBottomSheet extends ConsumerStatefulWidget {
29
29
final double ? minChildSize;
30
30
const GeneralBottomSheet ({super .key, this .minChildSize});
31
31
32
32
@override
33
- Widget build (BuildContext context, WidgetRef ref) {
33
+ ConsumerState <GeneralBottomSheet > createState () => _GeneralBottomSheetState ();
34
+ }
35
+
36
+ class _GeneralBottomSheetState extends ConsumerState <GeneralBottomSheet > {
37
+ late DraggableScrollableController sheetController;
38
+ @override
39
+ void initState () {
40
+ super .initState ();
41
+ sheetController = DraggableScrollableController ();
42
+ }
43
+
44
+ @override
45
+ void dispose () {
46
+ sheetController.dispose ();
47
+ super .dispose ();
48
+ }
49
+
50
+ @override
51
+ Widget build (BuildContext context) {
34
52
final multiselect = ref.watch (multiSelectProvider);
35
53
final isTrashEnable = ref.watch (serverInfoProvider.select ((state) => state.serverFeatures.trash));
36
54
@@ -59,9 +77,14 @@ class GeneralBottomSheet extends ConsumerWidget {
59
77
ref.read (multiSelectProvider.notifier).reset ();
60
78
}
61
79
80
+ Future <void > onKeyboardExpand () {
81
+ return sheetController.animateTo (0.85 , duration: const Duration (milliseconds: 200 ), curve: Curves .easeInOut);
82
+ }
83
+
62
84
return BaseBottomSheet (
85
+ controller: sheetController,
63
86
initialChildSize: 0.45 ,
64
- minChildSize: minChildSize,
87
+ minChildSize: widget. minChildSize,
65
88
maxChildSize: 0.85 ,
66
89
shouldCloseOnMinExtent: false ,
67
90
actions: [
@@ -90,7 +113,7 @@ class GeneralBottomSheet extends ConsumerWidget {
90
113
],
91
114
slivers: [
92
115
const AddToAlbumHeader (),
93
- AlbumSelector (onAlbumSelected: addAssetsToAlbum),
116
+ AlbumSelector (onAlbumSelected: addAssetsToAlbum, onKeyboardExpanded : onKeyboardExpand ),
94
117
],
95
118
);
96
119
}
0 commit comments