@@ -26,6 +26,7 @@ class InputText extends StatelessWidget {
26
26
final Function ()? suffixOnTap;
27
27
final int ? minLines;
28
28
final int ? maxLines;
29
+ final InputBorderType inputBorder;
29
30
30
31
const InputText ({
31
32
super .key,
@@ -48,19 +49,20 @@ class InputText extends StatelessWidget {
48
49
this .suffixOnTap,
49
50
this .minLines,
50
51
this .maxLines,
52
+ this .inputBorder = InputBorderType .outline,
51
53
});
52
54
53
55
@override
54
56
Widget build (BuildContext context) {
55
57
return TextFormField (
56
58
decoration: InputDecoration (
57
59
contentPadding: padding,
58
- border: border ( AppTheme .colors['black' ]! .shade400),
59
- enabledBorder: border ( AppTheme .colors['black' ]! .shade400),
60
- disabledBorder: border ( AppTheme .colors['black' ]! .shade300 ),
61
- focusedBorder: border ( AppTheme .colors['black' ]! .shade400),
62
- errorBorder: border ( AppTheme .colors['danger ' ]! .shade400),
63
- focusedErrorBorder: border ( AppTheme .colors['danger ' ]! .shade400),
60
+ border: getInputBorder (inputBorder, AppTheme .colors['black' ]! .shade400),
61
+ enabledBorder: getInputBorder (inputBorder, AppTheme .colors['black' ]! .shade400),
62
+ disabledBorder: getInputBorder (inputBorder, AppTheme .colors['black' ]! .shade400 ),
63
+ focusedBorder: getInputBorder (inputBorder, AppTheme .colors['black' ]! .shade400),
64
+ errorBorder: getInputBorder (inputBorder, AppTheme .colors['black ' ]! .shade400),
65
+ focusedErrorBorder: getInputBorder (inputBorder, AppTheme .colors['black ' ]! .shade400),
64
66
errorStyle: TextStyle (color: AppTheme .colors['danger' ]! .shade400),
65
67
hintText: label,
66
68
hintStyle: TextStyle (
@@ -123,14 +125,29 @@ class InputText extends StatelessWidget {
123
125
);
124
126
}
125
127
126
- OutlineInputBorder border (Color color) {
127
- return OutlineInputBorder (
128
- borderRadius: BorderRadius .circular (borderRadius),
129
- borderSide: BorderSide (
130
- width: 1 ,
131
- color: color,
132
- ),
133
- );
128
+ InputBorder getInputBorder (InputBorderType inputBorderType, Color color) {
129
+ switch (inputBorderType) {
130
+ case InputBorderType .none:
131
+ return InputBorder .none;
132
+
133
+ case InputBorderType .underline:
134
+ return UnderlineInputBorder (
135
+ borderRadius: BorderRadius .circular (borderRadius),
136
+ borderSide: BorderSide (
137
+ width: 1 ,
138
+ color: color,
139
+ ),
140
+ );
141
+
142
+ case InputBorderType .outline:
143
+ return OutlineInputBorder (
144
+ borderRadius: BorderRadius .circular (borderRadius),
145
+ borderSide: BorderSide (
146
+ width: 1 ,
147
+ color: color,
148
+ ),
149
+ );
150
+ }
134
151
}
135
152
136
153
double getFontSize () {
@@ -148,3 +165,9 @@ class InputText extends StatelessWidget {
148
165
}
149
166
}
150
167
}
168
+
169
+ enum InputBorderType {
170
+ underline,
171
+ outline,
172
+ none,
173
+ }
0 commit comments