import 'package:flutter/material.dart';

import 'package:flutter_gen/gen_l10n/l10n.dart';

import 'package:fluffychat/pages/settings_password/settings_password.dart';
import 'package:fluffychat/widgets/layouts/max_width_body.dart';

class SettingsPasswordView extends StatelessWidget {
  final SettingsPasswordController controller;
  const SettingsPasswordView(this.controller, {super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text(L10n.of(context)!.changePassword)),
      body: ListTileTheme(
        iconColor: Theme.of(context).colorScheme.onBackground,
        child: MaxWidthBody(
          child: Padding(
            padding: const EdgeInsets.all(16.0),
            child: Column(
              children: [
                Center(
                  child: Icon(
                    Icons.key_outlined,
                    color: Theme.of(context).dividerColor,
                    size: 80,
                  ),
                ),
                const SizedBox(height: 16),
                TextField(
                  controller: controller.oldPasswordController,
                  obscureText: true,
                  autocorrect: false,
                  autofocus: true,
                  readOnly: controller.loading,
                  decoration: InputDecoration(
                    hintText: L10n.of(context)!.pleaseEnterYourCurrentPassword,
                    errorText: controller.oldPasswordError,
                  ),
                ),
                const Divider(height: 32),
                TextField(
                  controller: controller.newPassword1Controller,
                  obscureText: true,
                  autocorrect: false,
                  readOnly: controller.loading,
                  decoration: InputDecoration(
                    hintText: L10n.of(context)!.newPassword,
                    errorText: controller.newPassword1Error,
                  ),
                ),
                const SizedBox(height: 16),
                TextField(
                  controller: controller.newPassword2Controller,
                  obscureText: true,
                  autocorrect: false,
                  readOnly: controller.loading,
                  decoration: InputDecoration(
                    hintText: L10n.of(context)!.repeatPassword,
                    errorText: controller.newPassword2Error,
                  ),
                ),
                const SizedBox(height: 16),
                SizedBox(
                  width: double.infinity,
                  child: ElevatedButton.icon(
                    onPressed:
                        controller.loading ? null : controller.changePassword,
                    icon: const Icon(Icons.send_outlined),
                    label: controller.loading
                        ? const LinearProgressIndicator()
                        : Text(L10n.of(context)!.changePassword),
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}
