import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:ansu_ui/styles/as_colors.dart';
import 'package:ansu_ui/divider/as_divider.dart';

class ASPickerBox extends StatelessWidget {
  final VoidCallback onPressed;
  final String confirmString;
  final String title;
  final Widget child;

  const ASPickerBox(
      {Key key,
      this.onPressed,
      this.confirmString = '完成',
      this.title,
      @required this.child})
      : super(key: key);

  _buildButton({
    @required String title,
    @required VoidCallback onPressed,
  }) {
    return TextButton(
      style: ButtonStyle(
        foregroundColor: MaterialStateProperty.all(kPrimaryColor),
        overlayColor: MaterialStateProperty.all(kPrimaryColor.withOpacity(0.2)),
        padding:
            MaterialStateProperty.all(EdgeInsets.symmetric(horizontal: 20.w)),
        textStyle: MaterialStateProperty.all(TextStyle(
          fontSize: 16.sp,
          fontWeight: FontWeight.w500,
        )),
      ),
      onPressed: onPressed,
      child: Text(title),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Material(
      color: kForegroundColor,
      child: SizedBox(
        height: 260.w,
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            SizedBox(
              height: 48.w,
              child: NavigationToolbar(
                leading: _buildButton(
                  title: '取消',
                  onPressed: () => Navigator.pop(context),
                ),
                middle: Text(
                  title ?? '',
                  style: TextStyle(
                    color: kTextColor,
                    fontSize: 16.sp,
                  ),
                ),
                trailing: _buildButton(
                  title: confirmString,
                  onPressed: onPressed,
                ),
              ),
            ),
            ASDivider(),
            Expanded(child: child),
          ],
        ),
      ),
    );
  }
}