import 'package:flutter/material.dart'; import '../../../../core/theme/design_tokens.dart'; import 'auth_field.dart'; class PasswordField extends StatefulWidget { const PasswordField({ super.key, required this.controller, this.label, required this.hint, this.onChanged, }); final TextEditingController controller; final String? label; final String hint; final ValueChanged? onChanged; @override State createState() => _PasswordFieldState(); } class _PasswordFieldState extends State { bool _obscured = true; void _toggleVisibility() { setState(() { _obscured = !_obscured; }); } @override Widget build(BuildContext context) { return AuthField( label: widget.label, hint: widget.hint, controller: widget.controller, obscureText: _obscured, onChanged: widget.onChanged, suffixIcon: IconButton( onPressed: _toggleVisibility, tooltip: _obscured ? '显示密码' : '隐藏密码', icon: Icon( _obscured ? Icons.visibility_off_rounded : Icons.visibility_rounded, color: AppColors.authInputIcon, ), ), ); } }