quickDouble function

Future<double?> quickDouble({
  1. required BuildContext context,
  2. TextStyle textStyle = const TextStyle(color: Colors.white),
  3. Color backgroundColor = Colors.black,
  4. Widget? title,
  5. EdgeInsets? inputFieldPadding,
  6. EdgeInsets? inputFieldMargin,
  7. Language? language,
})

Implementation

Future<double?> quickDouble({
  required BuildContext context,
  TextStyle textStyle = const TextStyle(
    color: Colors.white,
  ),
  Color backgroundColor = Colors.black,
  Widget? title,
  EdgeInsets? inputFieldPadding,
  EdgeInsets? inputFieldMargin,
  Language? language,
})async{
  TextEditingController controller = TextEditingController();
  bool submitted = false;
  await showDialog(
   context: context,
   builder: (ctx)=> AlertDialog(
     title: title,
     content: _SimplifiedTextField(
       controller: controller,
       backgroundColor: backgroundColor,
       title: title,
       inputFieldPadding: inputFieldPadding,
       inputFieldMargin: inputFieldMargin,
       language: language,
       textStyle: textStyle,
       inputType: TextInputType.number,
     ),
     actions: [
       TextButton(
         onPressed: (){
           Navigator.pop(context);
         },
         child: TranslatableText(
           options: [
             TranslateOption(language: Languages.english, text: "cancel"),
             TranslateOption(language: Languages.spanish, text: "cancelar"),
           ],
           displayLanguage: language ?? Languages.english,
          ),
          style: ButtonStyle(
            overlayColor: MaterialStateProperty.all(backgroundColor),
          ),
        ),
        TextButton(
         onPressed: (){
           submitted  = true;
           Navigator.pop(context);
         },
         child: TranslatableText(
           options: [
             TranslateOption(language: Languages.english, text: "submit"),
             TranslateOption(language: Languages.spanish, text: "someter"),
           ],
           displayLanguage: language ?? Languages.english,
           style: textStyle,
          ),
          style: ButtonStyle(
            backgroundColor: MaterialStateProperty.all(backgroundColor),
          ),
        ),
     ],
   ),
  );
  if(submitted){
    double submittedDouble;
    try{
      submittedDouble = double.parse(controller.text);
      return submittedDouble;
    }catch(err){
      return null;
    }
  }else{
    return null;
  }
}