e_receipt_mobile/lib/presentation/components/rounded_input.dart
2026-02-14 02:16:02 +06:30

76 lines
1.8 KiB
Dart

import 'package:flutter/material.dart';
Widget roundedInput({
required TextEditingController controller,
required String hint,
required IconData icon,
bool isPassword = false,
}) {
return RoundedInput(
controller: controller,
hint: hint,
icon: icon,
isPassword: isPassword,
);
}
class RoundedInput extends StatefulWidget {
const RoundedInput({
super.key,
required this.controller,
required this.hint,
required this.icon,
this.isPassword = false,
});
final TextEditingController controller;
final String hint;
final IconData icon;
final bool isPassword;
@override
State<RoundedInput> createState() => _RoundedInputState();
}
class _RoundedInputState extends State<RoundedInput> {
late bool _obscured;
@override
void initState() {
super.initState();
_obscured = widget.isPassword;
}
@override
Widget build(BuildContext context) {
return TextField(
controller: widget.controller,
obscureText: _obscured,
decoration: InputDecoration(
hintText: widget.hint,
prefixIcon: Icon(widget.icon, color: Colors.grey),
suffixIcon: widget.isPassword
? IconButton(
onPressed: () {
setState(() {
_obscured = !_obscured;
});
},
icon: Icon(
_obscured ? Icons.visibility : Icons.visibility_off,
color: Colors.grey,
),
)
: null,
filled: true,
fillColor: const Color(0xFFE9EEF3),
contentPadding: const EdgeInsets.symmetric(vertical: 16),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(30),
borderSide: BorderSide.none,
),
),
);
}
}