TIF_E41222181/lib/features/widgets/textfield_input_widget.dart

70 lines
2.1 KiB
Dart

import 'package:absensi_qr/constant/app_color.dart';
import 'package:absensi_qr/constant/app_font_style.dart';
import 'package:flutter/material.dart';
class TextfieldInputWidget extends StatelessWidget {
const TextfieldInputWidget({
super.key,
required this.controller,
required this.hintTxt,
required this.keyboardType,
this.customPadding,
this.useTransparentBackground = true,
this.hide,
this.suffixIcon,
this.onTapSuffixIcon,
});
final TextEditingController controller;
final String hintTxt;
final TextInputType keyboardType;
final bool? hide;
final EdgeInsetsGeometry? customPadding;
final bool useTransparentBackground;
final IconData? suffixIcon;
final VoidCallback? onTapSuffixIcon;
@override
Widget build(BuildContext context) {
return Container(
padding: customPadding ?? EdgeInsets.zero,
decoration: BoxDecoration(
color: useTransparentBackground
? Colors.transparent
: AppColor.backgroundColor,
borderRadius: BorderRadius.circular(12),
),
child: TextFormField(
controller: controller,
keyboardType: keyboardType,
style: AppFontStyle.primaryText,
obscureText: hide ?? false,
decoration: InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide: BorderSide(color: AppColor.colorOutlineBoxinput),
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide:
BorderSide(color: AppColor.colorOutlineBoxinput, width: 1),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide:
BorderSide(color: AppColor.colorTextSubtitle, width: 1.5),
),
hintText: hintTxt,
hintStyle: AppFontStyle.subTitleText,
suffixIcon: suffixIcon != null
? GestureDetector(
onTap: onTapSuffixIcon,
child: Icon(suffixIcon),
)
: null,
),
),
);
}
}