fluffychat/lib/utils/adaptive_bottom_sheet.dart

32 lines
1,022 B
Dart
Raw Normal View History

2023-01-07 09:29:34 +00:00
import 'package:flutter/material.dart';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/config/themes.dart';
Future<T?> showAdaptiveBottomSheet<T>({
required BuildContext context,
required Widget Function(BuildContext) builder,
bool isDismissible = true,
bool isScrollControlled = true,
double maxHeight = 480.0,
2023-01-07 09:29:34 +00:00
}) =>
showModalBottomSheet(
context: context,
builder: builder,
// this sadly is ugly on desktops but otherwise breaks `.of(context)` calls
useRootNavigator: false,
2023-01-07 09:29:34 +00:00
isDismissible: isDismissible,
2023-01-08 11:32:35 +00:00
isScrollControlled: isScrollControlled,
constraints: BoxConstraints(
maxHeight: maxHeight,
2023-01-07 09:29:34 +00:00
maxWidth: FluffyThemes.columnWidth * 1.5,
),
clipBehavior: Clip.hardEdge,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(AppConfig.borderRadius),
topRight: Radius.circular(AppConfig.borderRadius),
),
),
);