2023-07-06 17:18:41 +03:30
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
|
|
|
|
|
class BottomSheetPage extends Page {
|
|
|
|
|
const BottomSheetPage({
|
2023-09-18 21:50:13 +03:30
|
|
|
super.key,
|
|
|
|
|
super.name,
|
2023-07-06 17:18:41 +03:30
|
|
|
required this.builder,
|
|
|
|
|
this.fixed = false,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
final Widget Function(ScrollController? controller) builder;
|
|
|
|
|
final bool fixed;
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Route<void> createRoute(BuildContext context) {
|
|
|
|
|
return ModalBottomSheetRoute(
|
|
|
|
|
settings: this,
|
2023-11-10 15:35:44 +03:30
|
|
|
isScrollControlled: true,
|
2023-07-06 17:18:41 +03:30
|
|
|
useSafeArea: true,
|
|
|
|
|
showDragHandle: true,
|
|
|
|
|
builder: (_) {
|
|
|
|
|
if (!fixed) {
|
|
|
|
|
return DraggableScrollableSheet(
|
|
|
|
|
expand: false,
|
|
|
|
|
builder: (_, scrollController) => builder(scrollController),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
return builder(null);
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|