From 65c9679806ae873673d5245db464c80dbd22feaf Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Tue, 10 Jun 2025 12:08:44 +0200 Subject: [PATCH] delete legacy inputs --- .../mih_file_input.dart | 177 --------------- .../mih_multiline_text_input.dart | 146 ------------- .../mih_number_input.dart | 203 ------------------ .../mih_pass_input.dart | 194 ----------------- .../mih_text_input.dart | 187 ---------------- 5 files changed, 907 deletions(-) delete mode 100644 Frontend/lib/mih_components/mih_inputs_and_buttons/mih_file_input.dart delete mode 100644 Frontend/lib/mih_components/mih_inputs_and_buttons/mih_multiline_text_input.dart delete mode 100644 Frontend/lib/mih_components/mih_inputs_and_buttons/mih_number_input.dart delete mode 100644 Frontend/lib/mih_components/mih_inputs_and_buttons/mih_pass_input.dart delete mode 100644 Frontend/lib/mih_components/mih_inputs_and_buttons/mih_text_input.dart diff --git a/Frontend/lib/mih_components/mih_inputs_and_buttons/mih_file_input.dart b/Frontend/lib/mih_components/mih_inputs_and_buttons/mih_file_input.dart deleted file mode 100644 index 8cc102c5..00000000 --- a/Frontend/lib/mih_components/mih_inputs_and_buttons/mih_file_input.dart +++ /dev/null @@ -1,177 +0,0 @@ -import 'package:flutter/material.dart'; -import '../../main.dart'; - -class MIHFileField extends StatefulWidget { - final TextEditingController controller; - final String hintText; - final bool editable; - final bool required; - final void Function() onPressed; - - const MIHFileField({ - super.key, - required this.controller, - required this.hintText, - required this.editable, - required this.required, - required this.onPressed, - }); - - @override - State createState() => _MIHFileFieldState(); -} - -class _MIHFileFieldState extends State { - bool startup = true; - final FocusNode _focus = FocusNode(); - - bool makeEditable() { - if (widget.editable) { - return false; - } else { - return true; - } - } - - String? get _errorText { - final text = widget.controller.text; - String errorMessage = ''; - if (startup) { - return null; - } - if (!widget.required) { - return null; - } - if (text.isEmpty) { - return "${widget.hintText} is required"; - } - if (widget.hintText == "Email" && !isEmailValid(text)) { - errorMessage += "Enter a valid email address\n"; - } - if (widget.hintText == "Username" && text.length < 8) { - errorMessage += "• Username must contain at least 8 characters.\n"; - } - if (widget.hintText == "Username" && !isUsernameValid(text)) { - errorMessage += "• Username can only contain '_' special Chracters.\n"; - } - if (errorMessage.isEmpty) { - return null; - } - // If there are no error messages, the password is valid - return errorMessage; - } - - bool isUsernameValid(String username) { - return RegExp(r'^(?=[a-zA-Z0-9._]{8,20}$)(?!.*[_.]{2})[^_.].*[^_.]$') - .hasMatch(username); - } - - bool isEmailValid(String email) { - return RegExp(r'^[\w-\.]+@[a-zA-Z]+\.[a-zA-Z]{2,}$').hasMatch(email); - } - - void _onFocusChange() { - setState(() { - startup = false; - }); - } - - Widget setRequiredText() { - if (widget.required) { - return Row( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - "*", - style: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.errorColor()), - ), - const SizedBox( - width: 8.0, - ), - Text(widget.hintText, - style: TextStyle( - color: - MzanziInnovationHub.of(context)!.theme.secondaryColor())), - ], - ); - } else { - return Text(widget.hintText, - style: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor())); - } - } - - @override - void dispose() { - _focus.dispose(); - super.dispose(); - } - - @override - void initState() { - _focus.addListener(_onFocusChange); - super.initState(); - } - - @override - Widget build(BuildContext context) { - return TextField( - style: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor()), - controller: widget.controller, - focusNode: _focus, - readOnly: makeEditable(), - //enabled: !makeEditable(), - obscureText: false, - onChanged: (_) => setState(() { - startup = false; - }), - decoration: InputDecoration( - suffixIcon: IconButton( - icon: const Icon(Icons.attach_file), - onPressed: widget.onPressed, - ), - label: setRequiredText(), - //labelStyle: TextStyle(color: MzanziInnovationHub.of(context)!.theme.primaryColor()), - fillColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), - filled: true, - errorText: _errorText, - errorStyle: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.errorColor(), - fontWeight: FontWeight.bold), - //errorBorder: const InputBorder(), - //hintText: hintText, - //hintStyle: TextStyle(color: Colors.blueGrey[400]), - disabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), - width: 2.0, - ), - ), - enabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), - width: 2.0, - ), - ), - focusedErrorBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.errorColor(), - width: 2.0, - ), - ), - errorBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.errorColor(), - width: 2.0, - ), - ), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor()), - ), - ), - ); - } -} diff --git a/Frontend/lib/mih_components/mih_inputs_and_buttons/mih_multiline_text_input.dart b/Frontend/lib/mih_components/mih_inputs_and_buttons/mih_multiline_text_input.dart deleted file mode 100644 index 7a33a483..00000000 --- a/Frontend/lib/mih_components/mih_inputs_and_buttons/mih_multiline_text_input.dart +++ /dev/null @@ -1,146 +0,0 @@ -import 'package:flutter/material.dart'; -import '../../main.dart'; - -class MIHMLTextField extends StatefulWidget { - final TextEditingController controller; - final String hintText; - final bool editable; - final bool required; - - const MIHMLTextField({ - super.key, - required this.controller, - required this.hintText, - required this.editable, - required this.required, - }); - - @override - State createState() => _MIHMLTextFieldState(); -} - -class _MIHMLTextFieldState extends State { - bool startup = true; - final FocusNode _focus = FocusNode(); - - bool makeEditable() { - if (widget.editable) { - return false; - } else { - return true; - } - } - - String? get _errorText { - final text = widget.controller.text; - if (startup) { - return null; - } - if (!widget.required) { - return null; - } - if (text.isEmpty) { - return "${widget.hintText} is required"; - } - return null; - } - - void _onFocusChange() { - setState(() { - startup = false; - }); - } - - Widget setRequiredText() { - if (widget.required) { - return Row( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - "*", - style: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.errorColor()), - ), - const SizedBox( - width: 8.0, - ), - Text(widget.hintText, - style: TextStyle( - color: - MzanziInnovationHub.of(context)!.theme.secondaryColor())), - ], - ); - } else { - return Text(widget.hintText, - style: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor())); - } - } - - @override - void dispose() { - _focus.dispose(); - super.dispose(); - } - - @override - void initState() { - _focus.addListener(_onFocusChange); - super.initState(); - } - - @override - Widget build(BuildContext context) { - return TextField( - style: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor()), - textAlign: TextAlign.start, - textAlignVertical: TextAlignVertical.top, - expands: true, - maxLines: null, - controller: widget.controller, - readOnly: makeEditable(), - obscureText: false, - focusNode: _focus, - onChanged: (_) => setState(() { - startup = false; - }), - decoration: InputDecoration( - label: setRequiredText(), - errorText: _errorText, - errorStyle: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.errorColor(), - fontWeight: FontWeight.bold), - labelStyle: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor()), - alignLabelWithHint: true, - fillColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), - filled: true, - //hintText: hintText, - //hintStyle: TextStyle(color: Colors.blueGrey[400]), - enabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), - width: 2.0, - ), - ), - focusedErrorBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.errorColor(), - width: 2.0, - ), - ), - errorBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.errorColor(), - width: 2.0, - ), - ), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor()), - ), - ), - ); - } -} diff --git a/Frontend/lib/mih_components/mih_inputs_and_buttons/mih_number_input.dart b/Frontend/lib/mih_components/mih_inputs_and_buttons/mih_number_input.dart deleted file mode 100644 index dee3e614..00000000 --- a/Frontend/lib/mih_components/mih_inputs_and_buttons/mih_number_input.dart +++ /dev/null @@ -1,203 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import '../../main.dart'; - -class MIHNumberField extends StatefulWidget { - final TextEditingController controller; - final String hintText; - final bool editable; - final bool required; - final bool enableDecimal; - final Iterable? autoFillHintGroup; - - const MIHNumberField({ - super.key, - required this.controller, - required this.hintText, - required this.editable, - required this.required, - required this.enableDecimal, - this.autoFillHintGroup, - }); - - @override - State createState() => _MIHNumberFieldState(); -} - -class _MIHNumberFieldState extends State { - bool startup = true; - final FocusNode _focus = FocusNode(); - - List allowDecimals() { - if (widget.enableDecimal) { - return [ - FilteringTextInputFormatter.allow(RegExp(r'^\d+(\.\d*)?')), - ]; - } else { - return [FilteringTextInputFormatter.digitsOnly]; - } - } - - bool makeEditable() { - if (widget.editable) { - return false; - } else { - return true; - } - } - - String? get _errorText { - final text = widget.controller.text; - String errorMessage = ''; - if (startup) { - return null; - } - if (!widget.required) { - return null; - } - if (text.isEmpty) { - return "${widget.hintText} is required"; - } - if (widget.hintText == "Email" && !isEmailValid(text)) { - errorMessage += "Enter a valid email address\n"; - } - // if (widget.hintText == "Username" && text.length < 8) { - // errorMessage += "• Username must contain at least 8 characters.\n"; - // } - if (widget.hintText == "Username" && !isUsernameValid(text)) { - errorMessage += "Let's create a great username for you!\n"; - errorMessage += "• Your username should start with a letter.\n"; - errorMessage += "• You can use letters, numbers, and/ or underscores.\n"; - errorMessage += "• Keep it between 6 and 30 characters.\n"; - errorMessage += "• Avoid special characters like @, #, or \$.\"\n"; - } - if (errorMessage.isEmpty) { - return null; - } - // If there are no error messages, the password is valid - return errorMessage; - } - - bool isUsernameValid(String username) { - return RegExp(r'^[a-zA-Z][a-zA-Z0-9_]{5,19}$').hasMatch(username); - } - - bool isEmailValid(String email) { - var regex = RegExp(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'); - return regex.hasMatch(email); - } - - void _onFocusChange() { - setState(() { - startup = false; - }); - } - - // List getAutoFillDetails(){ - // if(widget.autoFillHintGroup == null){ - // return []; - // } - // else{ - // return widget.autoFillHintGroup!; - // } - // } - - Widget setRequiredText() { - if (widget.required) { - return Row( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - "*", - style: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.errorColor()), - ), - const SizedBox( - width: 8.0, - ), - Text(widget.hintText, - style: TextStyle( - color: - MzanziInnovationHub.of(context)!.theme.secondaryColor())), - ], - ); - } else { - return Text(widget.hintText, - style: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor())); - } - } - - @override - void dispose() { - _focus.dispose(); - super.dispose(); - } - - @override - void initState() { - _focus.addListener(_onFocusChange); - super.initState(); - } - - @override - Widget build(BuildContext context) { - return TextField( - keyboardType: TextInputType.number, - inputFormatters: allowDecimals(), - autofillHints: widget.autoFillHintGroup, - style: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), - ), - controller: widget.controller, - focusNode: _focus, - readOnly: makeEditable(), - //enabled: !makeEditable(), - obscureText: false, - onChanged: (_) => setState(() { - startup = false; - }), - decoration: InputDecoration( - label: setRequiredText(), - //labelStyle: TextStyle(color: MzanziInnovationHub.of(context)!.theme.primaryColor()), - fillColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), - filled: true, - errorText: _errorText, - errorStyle: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.errorColor(), - fontWeight: FontWeight.bold), - //errorBorder: const InputBorder(), - //hintText: hintText, - //hintStyle: TextStyle(color: Colors.blueGrey[400]), - disabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), - width: 2.0, - ), - ), - enabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), - width: 2.0, - ), - ), - focusedErrorBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.errorColor(), - width: 2.0, - ), - ), - errorBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.errorColor(), - width: 2.0, - ), - ), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor()), - ), - ), - ); - } -} diff --git a/Frontend/lib/mih_components/mih_inputs_and_buttons/mih_pass_input.dart b/Frontend/lib/mih_components/mih_inputs_and_buttons/mih_pass_input.dart deleted file mode 100644 index 73925004..00000000 --- a/Frontend/lib/mih_components/mih_inputs_and_buttons/mih_pass_input.dart +++ /dev/null @@ -1,194 +0,0 @@ -import 'package:flutter/material.dart'; -import '../../main.dart'; - -class MIHPassField extends StatefulWidget { - final TextEditingController controller; - final String hintText; - final bool required; - final bool signIn; - final Iterable? autoFillHintGroup; - final TextInputAction? textInputAction; - - const MIHPassField({ - super.key, - required this.controller, - required this.hintText, - required this.required, - required this.signIn, - this.autoFillHintGroup, - this.textInputAction, - }); - - @override - State createState() => _MIHPassFieldState(); -} - -class _MIHPassFieldState extends State { - bool startup = true; - final textFieldFocusNode = FocusNode(); - bool _obscured = true; - //bool valid = false; - - void _toggleObscured() { - setState(() { - _obscured = !_obscured; - if (textFieldFocusNode.hasPrimaryFocus) { - return; // If focus is on text field, dont unfocus - } - textFieldFocusNode.canRequestFocus = - false; // Prevents focus if tap on eye - }); - } - - String? get _errorText { - final text = widget.controller.text; - String errorMessage = ''; - if (startup) { - return null; - } - if (!widget.required) { - return null; - } - if (text.isEmpty) { - return "${widget.hintText} is required"; - } - // Password length greater than 8 - if (text.length <= 8 && !widget.signIn) { - errorMessage += '• Password must contain at least 8 characters.\n'; - } - - // Contains at least one uppercase letter - if (!text.contains(RegExp(r'[A-Z]')) && !widget.signIn) { - errorMessage += '• Uppercase letter is missing.\n'; - } - - // Contains at least one lowercase letter - if (!text.contains(RegExp(r'[a-z]')) && !widget.signIn) { - errorMessage += '• Lowercase letter is missing.\n'; - } - - // Contains at least one digit - if (!text.contains(RegExp(r'[0-9]')) && !widget.signIn) { - errorMessage += '• number is missing.\n'; - } - - // Contains at least one special character - if (!text.contains(RegExp(r'[!@#$%^&*]')) && !widget.signIn) { - errorMessage += '• Special character is missing - !@#\$%^&*\n'; - } - - // Contains no errors - if (errorMessage.isEmpty) { - return null; - } - // If there are no error messages, the password is valid - return errorMessage; - } - - Widget setRequiredText() { - if (widget.required) { - return Row( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - "*", - style: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.errorColor()), - ), - const SizedBox( - width: 8.0, - ), - Text(widget.hintText, - style: TextStyle( - color: - MzanziInnovationHub.of(context)!.theme.secondaryColor())), - ], - ); - } else { - return Text(widget.hintText, - style: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor())); - } - } - - void _onFocusChange() { - setState(() { - startup = false; - }); - } - - @override - void dispose() { - textFieldFocusNode.dispose(); - super.dispose(); - } - - @override - void initState() { - textFieldFocusNode.addListener(_onFocusChange); - super.initState(); - } - - @override - Widget build(BuildContext context) { - return TextField( - autofillHints: widget.autoFillHintGroup, - textInputAction: widget.textInputAction, - controller: widget.controller, - style: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor()), - obscureText: _obscured, - focusNode: textFieldFocusNode, - onChanged: (_) => setState(() { - startup = false; - }), - decoration: InputDecoration( - fillColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), - filled: true, - label: setRequiredText(), - //labelStyle: const TextStyle(color: Colors.blueAccent), - errorText: _errorText, - errorStyle: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.errorColor(), - fontWeight: FontWeight.bold), - //hintText: widget.hintText, - //hintStyle: TextStyle(color: Colors.blueGrey[400]), - enabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), - width: 2.0, - ), - ), - focusedErrorBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.errorColor(), - width: 2.0, - ), - ), - errorBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.errorColor(), - width: 2.0, - ), - ), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor()), - ), - suffixIcon: Padding( - padding: const EdgeInsets.fromLTRB(0, 0, 4, 0), - child: GestureDetector( - onTap: _toggleObscured, - child: Icon( - _obscured - ? Icons.visibility_rounded - : Icons.visibility_off_rounded, - size: 24, - color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), - ), - ), - ), - ), - ); - } -} diff --git a/Frontend/lib/mih_components/mih_inputs_and_buttons/mih_text_input.dart b/Frontend/lib/mih_components/mih_inputs_and_buttons/mih_text_input.dart deleted file mode 100644 index 301b8ce7..00000000 --- a/Frontend/lib/mih_components/mih_inputs_and_buttons/mih_text_input.dart +++ /dev/null @@ -1,187 +0,0 @@ -import 'package:flutter/material.dart'; -import '../../main.dart'; - -class MIHTextField extends StatefulWidget { - final TextEditingController controller; - final String hintText; - final bool editable; - final bool required; - final TextInputAction? textInputAction; - final Iterable? autoFillHintGroup; - - const MIHTextField({ - super.key, - required this.controller, - required this.hintText, - required this.editable, - required this.required, - this.autoFillHintGroup, - this.textInputAction, - }); - - @override - State createState() => _MIHTextFieldState(); -} - -class _MIHTextFieldState extends State { - bool startup = true; - final FocusNode _focus = FocusNode(); - - bool makeEditable() { - if (widget.editable) { - return false; - } else { - return true; - } - } - - String? get _errorText { - final text = widget.controller.text; - String errorMessage = ''; - if (startup) { - return null; - } - if (!widget.required) { - return null; - } - if (text.isEmpty) { - return "${widget.hintText} is required"; - } - if (widget.hintText == "Email" && !isEmailValid(text)) { - errorMessage += "Enter a valid email address\n"; - } - // if (widget.hintText == "Username" && text.length < 8) { - // errorMessage += "• Username must contain at least 8 characters.\n"; - // } - if (widget.hintText == "Username" && !isUsernameValid(text)) { - errorMessage += "Let's create a great username for you!\n"; - errorMessage += "• Your username should start with a letter.\n"; - errorMessage += "• You can use letters, numbers, and/ or underscores.\n"; - errorMessage += "• Keep it between 6 and 30 characters.\n"; - errorMessage += "• Avoid special characters like @, #, or \$.\"\n"; - } - if (errorMessage.isEmpty) { - return null; - } - // If there are no error messages, the password is valid - return errorMessage; - } - - bool isUsernameValid(String username) { - return RegExp(r'^[a-zA-Z][a-zA-Z0-9_]{5,19}$').hasMatch(username); - } - - bool isEmailValid(String email) { - var regex = RegExp(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'); - return regex.hasMatch(email); - } - - void _onFocusChange() { - setState(() { - startup = false; - }); - } - - // List getAutoFillDetails(){ - // if(widget.autoFillHintGroup == null){ - // return []; - // } - // else{ - // return widget.autoFillHintGroup!; - // } - // } - - Widget setRequiredText() { - if (widget.required) { - return Row( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - "*", - style: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.errorColor()), - ), - const SizedBox( - width: 8.0, - ), - Text(widget.hintText, - style: TextStyle( - color: - MzanziInnovationHub.of(context)!.theme.secondaryColor())), - ], - ); - } else { - return Text(widget.hintText, - style: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor())); - } - } - - @override - void dispose() { - _focus.dispose(); - super.dispose(); - } - - @override - void initState() { - _focus.addListener(_onFocusChange); - super.initState(); - } - - @override - Widget build(BuildContext context) { - return TextField( - autofillHints: widget.autoFillHintGroup, - textInputAction: widget.textInputAction, - style: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), - ), - controller: widget.controller, - focusNode: _focus, - readOnly: makeEditable(), - //enabled: !makeEditable(), - obscureText: false, - onChanged: (_) => setState(() { - startup = false; - }), - decoration: InputDecoration( - label: setRequiredText(), - fillColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), - filled: true, - errorText: _errorText, - errorStyle: TextStyle( - color: MzanziInnovationHub.of(context)!.theme.errorColor(), - fontWeight: FontWeight.bold), - disabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), - width: 2.0, - ), - ), - enabledBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), - width: 2.0, - ), - ), - focusedErrorBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.errorColor(), - width: 2.0, - ), - ), - errorBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.errorColor(), - width: 2.0, - ), - ), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide( - color: MzanziInnovationHub.of(context)!.theme.secondaryColor()), - ), - ), - ); - } -}