// Flutter imports:
import 'package:flutter/material.dart';
import 'package:remever/common/resources.dart';
import 'package:remever/common/typography.dart';
import 'package:remever/components/extensions/context.dart';

class AuthTextField extends StatelessWidget {
  const AuthTextField({required this.email, super.key, this.autofocus = true});

  final TextEditingController email;
  final bool autofocus;

  @override
  Widget build(BuildContext context) {
    final OutlineInputBorder border = OutlineInputBorder(
      borderRadius: const BorderRadius.all(Radius.circular(8)).r,
      borderSide: BorderSide(color: AppColors.gray),
    );

    return TextFormField(
      autofocus: autofocus,
      controller: email,
      validator: (String? value) {
        if (value == null || value == '') return 'Поле не может быть пустым';
        if (!value.contains('@') || !value.contains('.')) {
          return 'Неверный e-mail';
        }
        return null;
      },
      cursorColor: AppColors.primary,

      decoration: InputDecoration(
        filled: true,
        fillColor: AppColors.white,
        focusedBorder: border,
        enabledBorder: border,
        errorBorder: border,
        focusedErrorBorder: border,
        hintText: 'Введите e-mail',
        hintStyle: const TextStyle(fontWeight: FontWeight.w400, height: 1.2),
        errorStyle: SemiBold12px().style.copyWith(color: AppColors.info_red),
        suffixIconConstraints: const BoxConstraints(minWidth: 0, minHeight: 0),
        suffixIcon: Padding(
          padding: const EdgeInsets.only(right: 12).r,
          child: InkWell(
            onTap: () {
              email.clear();
            },
            child: SizedBox.square(
              dimension: 24.r,
              child: DecoratedBox(
                decoration: BoxDecoration(
                  color: AppColors.bg,
                  shape: BoxShape.circle,
                ),
                child: Icon(Icons.close, color: AppColors.disabled, size: 16.r),
              ),
            ),
          ),
        ),
      ),
    );
  }
}
