import 'package:flutter/widgets.dart';

import 'app_breakpoints.dart';

class ResponsiveBody extends StatelessWidget {
  const ResponsiveBody({
    super.key,
    required this.child,
    this.maxWidth = 960,
    this.padding = EdgeInsets.zero,
  });

  final Widget child;
  final double maxWidth;
  final EdgeInsetsGeometry padding;

  @override
  Widget build(BuildContext context) {
    return LayoutBuilder(
      builder: (context, constraints) {
        final height = constraints.hasBoundedHeight
            ? constraints.maxHeight
            : MediaQuery.sizeOf(context).height;
        final width = constraints.hasBoundedWidth
            ? constraints.maxWidth
            : maxWidth;
        final horizontalPadding = AppBreakpoints.horizontalPadding(width);
        final boxConstraints = BoxConstraints(
          maxWidth: maxWidth,
          minHeight: height,
          maxHeight: height,
        );

        return Padding(
          padding: padding.add(
            EdgeInsets.symmetric(horizontal: horizontalPadding),
          ),
          child: Align(
            alignment: Alignment.topCenter,
            child: ConstrainedBox(
              constraints: boxConstraints,
              child: SizedBox(width: width, child: child),
            ),
          ),
        );
      },
    );
  }
}
