
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(),
          ),
        ),
      ),
    );
  }
}
