Files
mobile-app/lib/features/auth/presentation/widgets/auth_text_field.dart

68 lines
1.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:real_estate_mobile/core/constants/app_colors.dart';
class AuthTextField extends StatelessWidget {
final String hintText;
final TextEditingController controller;
final bool obscureText;
final TextInputType keyboardType;
final Widget? suffixIcon;
final String? errorText;
final TextInputAction textInputAction;
const AuthTextField({
super.key,
required this.hintText,
required this.controller,
this.obscureText = false,
this.keyboardType = TextInputType.text,
this.suffixIcon,
this.errorText,
this.textInputAction = TextInputAction.next,
});
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextField(
controller: controller,
obscureText: obscureText,
keyboardType: keyboardType,
textInputAction: textInputAction,
style: const TextStyle(
fontFamily: 'Fractul',
fontSize: 14,
fontWeight: FontWeight.w300,
color: AppColors.primaryDark,
),
decoration: InputDecoration(
hintText: hintText,
suffixIcon: suffixIcon,
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(20),
borderSide: errorText != null
? const BorderSide(color: AppColors.error, width: 1.5)
: BorderSide.none,
),
),
),
if (errorText != null)
Padding(
padding: const EdgeInsets.only(top: 4, left: 8),
child: Text(
errorText!,
style: const TextStyle(
fontFamily: 'Fractul',
fontSize: 12,
fontWeight: FontWeight.w300,
color: AppColors.error,
),
),
),
],
);
}
}