import 'package:flutter/material.dart'; import 'package:syncrow_app/utils/context_extension.dart'; class CustomBottomSheet extends StatelessWidget { const CustomBottomSheet({ super.key, this.child, this.height, this.maxHeight, this.radius = 20, this.withClosed = true, }); final Widget? child; final double? height; final double? maxHeight; final double radius; final bool withClosed; @override Widget build(BuildContext context) { final bottom = MediaQuery.of(context).viewInsets.bottom; return SafeArea( child: ConstrainedBox( constraints: BoxConstraints( minHeight: height ?? 250, maxHeight: maxHeight ?? context.height * 0.8, ), child: SingleChildScrollView( keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior.onDrag, physics: bottom == 0 ? const NeverScrollableScrollPhysics() : const BouncingScrollPhysics(), child: AnimatedContainer( duration: const Duration(milliseconds: 50), decoration: BoxDecoration( borderRadius: BorderRadius.circular(16), ), padding: EdgeInsets.only(bottom: bottom), child: child ?? const SizedBox(), ), ), ), ); } }