import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/material.dart';
import 'package:prosappco/src/authentication/authentication_repository.dart';
import 'package:prosappco/src/components/photo_view.dart';

class DrawerMenu extends StatelessWidget {
  Reference? ref;
  String userName;
  String userPhoneNumber;
  String userCity;
  String userState;

  DrawerMenu({
    super.key,
    required this.ref,
    required this.userName,
    required this.userPhoneNumber,
    required this.userCity,
    required this.userState,
  });

  @override
  Widget build(BuildContext context) {
    return Drawer(
      child: ListView(
        padding: EdgeInsets.zero,
        children: [
          Column(
            children: [
              Column(
                children: [
                  ListTile(
                    onTap: () {
                      if (ModalRoute.of(context)?.settings.name != '/profile') {
                        Navigator.pushNamed(context, '/profile');
                      } else {
                        Scaffold.of(context).openEndDrawer();
                      }
                    },
                    title: Text(userName,
                        style: const TextStyle(fontWeight: FontWeight.bold)),
                    subtitle: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Text(
                          userPhoneNumber,
                          style: const TextStyle(fontSize: 12),
                        ),
                        Text(
                          userCity,
                          style: const TextStyle(fontSize: 12),
                        ),
                      ],
                    ),
                    leading: ReferencePhoto(
                      ref: ref,
                      size: 55,
                      sizeCircle: 60,
                    ),
                    trailing: const Icon(Icons.keyboard_arrow_right,
                        color: Colors.black),
                    contentPadding: const EdgeInsets.symmetric(
                        vertical: 20, horizontal: 16),
                  ),
                ], //
              ),
              const Divider(height: 0, color: Colors.grey),
              Column(
                children: [
                  ListTile(
                    onTap: () {},
                    leading: const Icon(
                      Icons.history,
                      color: Colors.black,
                    ),
                    title: const Text(
                      'Mis servicios',
                      style: TextStyle(fontSize: 15),
                    ),
                  ),
                  ListTile(
                    onTap: () {
                      if (ModalRoute.of(context)?.settings.name != '/profile') {
                        Navigator.pushNamed(context, '/profile');
                      } else {
                        Scaffold.of(context).openEndDrawer();
                      }
                    },
                    leading: const Icon(
                      Icons.person_outline,
                      color: Colors.black,
                    ),
                    title: const Text(
                      'Mi perfil',
                      style: TextStyle(fontSize: 15),
                    ),
                  ),
                  ListTile(
                    onTap: () {},
                    leading: const Icon(
                      Icons.construction_outlined,
                      color: Colors.black,
                    ),
                    title: const Text(
                      'Configuración',
                      style: TextStyle(fontSize: 15),
                    ),
                  ),
                  ListTile(
                    onTap: () {},
                    leading: const Icon(
                      Icons.question_mark_rounded,
                      color: Colors.black,
                    ),
                    title: const Text(
                      'Soporte',
                      style: TextStyle(fontSize: 15),
                    ),
                  ),
                  ListTile(
                    onTap: () {},
                    leading: const Icon(
                      Icons.messenger_outline,
                      color: Colors.black,
                    ),
                    title: const Text(
                      'Mensajes',
                      style: TextStyle(fontSize: 15),
                    ),
                  ),
                  Builder(builder: (BuildContext context) {
                    return ListTile(
                      onTap: () {
                        if (ModalRoute.of(context)?.settings.name !=
                            '/welcome') {
                          Navigator.pushNamed(context, '/welcome');
                        } else {
                          Scaffold.of(context).openEndDrawer();
                        }
                      },
                      trailing: const Icon(
                        Icons.keyboard_arrow_right,
                        color: Colors.white,
                      ),
                      title: const Text(
                        'Solicitar servicio',
                        style: TextStyle(
                            color: Colors.white,
                            fontSize: 17,
                            fontWeight: FontWeight.bold),
                      ),
                      tileColor: const Color(0xFF2BA4EC),
                      contentPadding: const EdgeInsets.symmetric(
                          vertical: 5, horizontal: 16),
                    );
                  }),
                ],
              ),
              Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  Text(
                    'Prosapp',
                    style: TextStyle(fontSize: 10, color: Colors.grey[700]),
                  ),
                  Padding(
                    padding: const EdgeInsets.only(top: 7, left: 3, right: 3),
                    child: Text(
                      '®',
                      style: TextStyle(fontSize: 25, color: Colors.grey[700]),
                    ),
                  ),
                  Text(
                    'todos los derechos reservados',
                    style: TextStyle(fontSize: 10, color: Colors.grey[700]),
                  ),
                ],
              ),
            ],
          ),
          Padding(
            padding: const EdgeInsets.only(top: 200),
            child: Row(
              children: [
                const SizedBox(width: 10),
                ElevatedButton(
                  onPressed: () {
                    AuthenticationRepository.instance.logout();
                  },
                  style: ElevatedButton.styleFrom(
                    backgroundColor: Colors.white,
                    shape: const CircleBorder(),
                    elevation: 3,
                    minimumSize: const Size(45, 45),
                  ),
                  child: const Icon(
                    Icons.logout_outlined,
                    color: Colors.red,
                    size: 35,
                  ),
                ),
                const SizedBox(width: 5),
                ElevatedButton(
                  onPressed: () {
                    if (userState == 'pendiente' || userState.isEmpty) {
                      Navigator.pushNamed(context, '/profesionalProfile');
                    } else if (userState == 'revision') {
                      Navigator.pushNamed(context, '/profesionalRevision');
                    }
                  },
                  style: ElevatedButton.styleFrom(
                    backgroundColor: const Color(0xFF2BA4EC),
                    shape: RoundedRectangleBorder(
                      borderRadius: BorderRadius.circular(50),
                    ),
                    elevation: 0,
                    minimumSize: const Size(200, 45),
                  ),
                  child: const Text(
                    'Modo profesional',
                    style: TextStyle(
                      color: Colors.white,
                      fontSize: 15,
                    ),
                  ),
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}
