import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:smf_mobile/constants/app_constants.dart';
import 'package:smf_mobile/constants/color_constants.dart';
// import 'package:flutter_gen/gen_l10n/app_localizations.dart';

class AssistantInspectorDialog extends StatefulWidget {
  final String noteText;
  final String status;
  final ValueChanged<Map> parentAction;
  const AssistantInspectorDialog({
    Key? key,
    required this.noteText,
    required this.status,
    required this.parentAction,
  }) : super(key: key);

  @override
  _AssistantInspectorDialogState createState() =>
      _AssistantInspectorDialogState();
}

class _AssistantInspectorDialogState extends State<AssistantInspectorDialog> {
  final TextEditingController _noteController = TextEditingController();
  bool inspectionUpdated = false;
  Map data = {};
  @override
  void initState() {
    super.initState();
    _noteController.text = widget.noteText;
  }

  _saveData(bool status) {
    Map data = {'status': status, 'note': _noteController.text};
    widget.parentAction(data);
  }

  saveNoteText(String text) {}

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: [
        Align(
            alignment: FractionalOffset.topCenter,
            child: Container(
              margin: const EdgeInsets.only(top: 150),
              decoration: BoxDecoration(
                  color: Colors.white, borderRadius: BorderRadius.circular(4)),
              constraints: const BoxConstraints(minHeight: 290, maxHeight: 290),
              width: MediaQuery.of(context).size.width - 40,
              child: Material(
                  child: Padding(
                padding: const EdgeInsets.all(20),
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    SizedBox(
                      height: 185,
                      child: ListView(
                          shrinkWrap: true,
                          physics: const AlwaysScrollableScrollPhysics(),
                          scrollDirection: Axis.vertical,
                          children: [
                            Padding(
                                padding: const EdgeInsets.all(0),
                                child: Text(
                                  'Add note',
                                  style: GoogleFonts.lato(
                                    color: AppColors.black87,
                                    fontWeight: FontWeight.w700,
                                    fontSize: 14,
                                    letterSpacing: 0.25,
                                  ),
                                )),
                            Container(
                              margin: const EdgeInsets.only(top: 15),
                              decoration: BoxDecoration(
                                borderRadius: BorderRadius.circular(4),
                                border: Border.all(color: AppColors.black16),
                              ),
                              child: Material(
                                color: Colors.white,
                                borderRadius: BorderRadius.circular(8),
                                child: Focus(
                                  child: TextFormField(
                                    // autofocus: true,
                                    enabled: widget.status ==
                                            InspectionStatus.inspectionCompleted
                                        ? false
                                        : true,
                                    controller: _noteController,
                                    textCapitalization:
                                        TextCapitalization.sentences,
                                    textInputAction: TextInputAction.done,
                                    keyboardType: TextInputType.multiline,
                                    minLines:
                                        8, //Normal textInputField will be displayed
                                    maxLines: 8, // wh
                                    onEditingComplete: () {
                                      SystemChannels.textInput
                                          .invokeMethod('TextInput.hide');
                                      return;
                                    },
                                    style: const TextStyle(
                                        color: AppColors.black87, fontSize: 14),
                                    decoration: const InputDecoration(
                                      border: InputBorder.none,
                                      hintText: 'Type here',
                                      hintStyle: TextStyle(
                                          fontSize: 14.0,
                                          color: AppColors.black60),
                                      contentPadding: EdgeInsets.all(10.0),
                                    ),
                                  ),
                                ),
                              ),
                            ),
                          ]),
                    ),
                    Container(
                        margin: const EdgeInsets.only(top: 15),
                        child: Row(
                          mainAxisAlignment: MainAxisAlignment.start,
                          children: [
                            ButtonTheme(
                              child: OutlinedButton(
                                onPressed: () {
                                  Navigator.of(context).pop(false);
                                  if (widget.status !=
                                      InspectionStatus.inspectionCompleted) {
                                    _saveData(false);
                                  }
                                },
                                style: OutlinedButton.styleFrom(
                                  // primary: Colors.white,
                                  side: const BorderSide(
                                      width: 1, color: AppColors.primaryBlue),
                                  shape: RoundedRectangleBorder(
                                    borderRadius: BorderRadius.circular(4),
                                  ),
                                  // onSurface: Colors.grey,
                                ),
                                child: Text(
                                  'Cancel',
                                  style: GoogleFonts.lato(
                                      color: AppColors.primaryBlue,
                                      fontSize: 14,
                                      fontWeight: FontWeight.w700),
                                ),
                              ),
                            ),
                            const Spacer(),
                            ButtonTheme(
                              child: OutlinedButton(
                                onPressed: () {
                                  Navigator.of(context).pop(false);
                                  if (widget.status !=
                                      InspectionStatus.inspectionCompleted) {
                                    _saveData(true);
                                  }
                                },
                                style: OutlinedButton.styleFrom(
                                  // primary: Colors.white,
                                  side: const BorderSide(
                                      width: 1, color: AppColors.primaryBlue),
                                  shape: RoundedRectangleBorder(
                                    borderRadius: BorderRadius.circular(4),
                                  ),
                                  // onSurface: Colors.grey,
                                ),
                                child: Text(
                                  'Skip',
                                  style: GoogleFonts.lato(
                                      color: AppColors.primaryBlue,
                                      fontSize: 14,
                                      fontWeight: FontWeight.w700),
                                ),
                              ),
                            ),
                            Padding(
                              padding: const EdgeInsets.only(left: 10),
                              child: TextButton(
                                onPressed: () {
                                  Navigator.of(context).pop(false);
                                  if (widget.status !=
                                      InspectionStatus.inspectionCompleted) {
                                    _saveData(true);
                                  }
                                },
                                style: TextButton.styleFrom(
                                  // primary: Colors.white,
                                  padding: const EdgeInsets.only(
                                      left: 15, right: 15),
                                  backgroundColor: AppColors.primaryBlue,
                                  shape: RoundedRectangleBorder(
                                      borderRadius: BorderRadius.circular(4),
                                      side: const BorderSide(
                                          color: AppColors.black16)),
                                ),
                                child: Text(
                                  'Submit',
                                  style: GoogleFonts.lato(
                                    color: Colors.white,
                                    fontWeight: FontWeight.w700,
                                    fontSize: 14,
                                  ),
                                ),
                              ),
                            )
                          ],
                        ))
                  ],
                ),
              )),
            )),
      ],
    );
  }
}