TIF_E41211115_Genso_quiz_app/lib/component/global_text_field.dart

79 lines
2.3 KiB
Dart

import 'package:flutter/material.dart';
class GlobalTextField extends StatelessWidget {
final TextEditingController controller;
final String? hintText;
final String? labelText;
final int limitTextLine;
final bool isPassword;
final bool obscureText;
final VoidCallback? onToggleVisibility;
final TextInputType textInputType;
final bool forceUpperCase;
const GlobalTextField(
{super.key,
required this.controller,
this.hintText,
this.labelText,
this.limitTextLine = 1,
this.isPassword = false,
this.obscureText = false,
this.onToggleVisibility,
this.forceUpperCase = false,
this.textInputType = TextInputType.text});
@override
Widget build(BuildContext context) {
return TextField(
controller: controller,
keyboardType: textInputType,
obscureText: isPassword ? obscureText : false,
maxLines: limitTextLine,
textCapitalization: forceUpperCase ? TextCapitalization.characters : TextCapitalization.none,
decoration: InputDecoration(
labelText: labelText,
labelStyle: const TextStyle(
color: Color(0xFF6B778C),
fontSize: 14,
),
hintText: hintText,
hintStyle: const TextStyle(
color: Color(0xFF6B778C),
fontSize: 14,
),
filled: true,
fillColor: Color.fromARGB(255, 234, 234, 235),
contentPadding: const EdgeInsets.symmetric(
horizontal: 16,
vertical: 16,
),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderSide: BorderSide.none,
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderSide: BorderSide.none,
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderSide: const BorderSide(
color: Color(0xFF0052CC),
width: 2,
),
),
suffixIcon: isPassword
? IconButton(
icon: Icon(
obscureText ? Icons.visibility_off : Icons.visibility,
color: Color(0xFF6B778C),
),
onPressed: onToggleVisibility,
)
: null,
),
);
}
}