// ignore_for_file: must_be_immutable

import 'package:flutter/material.dart';
import 'package:olivamia_pos/views/descuento/descuento_screen.dart';
import '../models/models.dart';
import '../models/usuario_model.dart';
import 'package:provider/provider.dart';
import '../themes/themes.dart';
import '../views/categoria_producto/categoria_producto_screen.dart';
import '../views/pedido/pedido_screen.dart';
import '../views/producto/producto_screen.dart';
import '../views/variable/variable_screen.dart';
import '../views/venta/venta_screen.dart';
import 'widgets_components.dart';

class AppDrawer extends StatelessWidget {
  AppDrawer({super.key});

  // Future<bool> _showExitConfirmationDialog(BuildContext context) async {
  //   bool shouldPop = false;
  //   await showDialog(
  //     context: context,
  //     builder: (context) => AlertDialog(
  //       surfaceTintColor: AppTheme.secondary,
  //       title: const Text('¿Cerrar sesión?'),
  //       content: const Text('¿Estás seguro de que quieres cerrar la sesión?'),
  //       actions: [
  //         TextButton(
  //           onPressed: () => Navigator.of(context).pop(false),
  //           child: const Text('Cancelar', style: TextStyle(color: Colors.red)),
  //         ),
  //         TextButton(
  //           onPressed: () {
  //             Navigator.pop(context);
  //             Navigator.pop(context);
  //             Provider.of<LoginViewModel>(context, listen: false).logOut();
  //             Navigator.of(context)
  //                 .pushNamedAndRemoveUntil('main', (route) => false);
  //           },
  //           child: const Text('Aceptar'),
  //         ),
  //       ],
  //     ),
  //   );
  //   return shouldPop;
  // }

  @override
  Widget build(BuildContext context) {
    // String? nombre = Provider.of<LoginViewModel>(context).nombre.toString();
    // String? correo = Provider.of<LoginViewModel>(context).correo.toString();
    //final avm = Provider.of<AdministracionViewModel>(context);
    //List<String> permisos = avm.lospermisos;
    return Drawer(
      surfaceTintColor: Colors.white,
      backgroundColor: Colors.white,
      child: Column(
        children: [
          Container(
            width: double.infinity,
            decoration: BoxDecoration(
              color: AppTheme.primary,
            ),
            padding: EdgeInsets.only(
              top: MediaQuery.of(context).padding.top,
            ),
            child: const Column(
              children: [
                Padding(
                  padding: EdgeInsets.all(8.0),
                  child: Image(
                    image: AssetImage('assets/OlivaLogo-WH.png'),
                    height: 150,
                  ),
                ),
                SizedBox(
                  height: 10,
                ),
                // Text(
                //   nombre.toString(),
                //   style: const TextStyle(
                //     fontSize: 18,
                //     fontWeight: FontWeight.bold,
                //   ),
                // ),
                // const SizedBox(
                //   height: 10,
                // ),
                // Text(
                //   correo.toString(),
                //   style: const TextStyle(
                //     fontSize: 15,
                //     fontWeight: FontWeight.bold,
                //   ),
                // ),
                SizedBox(
                  height: 10,
                ),
              ],
            ),
          ),
          //HEADER
          Expanded(
              child: ListView(children: [
            ListTile(
              leading: circulo(const Icon(Icons.restaurant_menu)),
              title: const Text('Pedidos'),
              onTap: () => {
                Navigator.pop(context),
                Navigator.of(context).push(
                  MaterialPageRoute(
                    builder: (context) => const PedidoScreen(),
                  ),
                ),
              },
            ),
            ListTile(
              leading: circulo(const Icon(Icons.menu_book_rounded)),
              title: const Text('Productos'),
              onTap: () => {
                Navigator.pop(context),
                Navigator.of(context).push(
                  MaterialPageRoute(
                    builder: (context) => ProductoScreen(),
                  ),
                ),
              },
            ),
            ListTile(
              leading: circulo(const Icon(Icons.format_list_bulleted_rounded)),
              title: const Text('Categoría Producto'),
              onTap: () => {
                Navigator.pop(context),
                Navigator.of(context).push(
                  MaterialPageRoute(
                    builder: (context) => CategoriaProductoScreen(),
                  ),
                ),
              },
            ),
            ListTile(
              leading: circulo(const Icon(Icons.receipt_long_outlined)),
              title: const Text('Pedidos Por Día'),
              onTap: () => {
                Navigator.pop(context),
                Navigator.of(context).push(
                  MaterialPageRoute(
                    builder: (context) => VentaScreen(),
                  ),
                ),
              },
            ),
            ExpansionTile(
              leading: circulo(const Icon(Icons.admin_panel_settings)),
              title: const Text('Administración'),
              children: [
                ListTile(
                  leading: circulo(const Icon(Icons.discount)),
                  title: const Text('Descuentos'),
                  onTap: () => {
                    Navigator.pop(context),
                    Navigator.of(context).push(
                      MaterialPageRoute(
                        builder: (context) => DescuentoScreen(),
                      ),
                    ),
                  },
                ),
                ListTile(
                  leading: circulo(const Icon(Icons.discount)),
                  title: const Text('Variables'),
                  onTap: () => {
                    Navigator.pop(context),
                    Navigator.of(context).push(
                      MaterialPageRoute(
                        builder: (context) => VariablesScreen(),
                      ),
                    ),
                  },
                ),
              ],
            ),
            // ListTile(
            //   leading: const Icon(Icons.logout),
            //   title: const Text('Cerrar sesión'),
            //   onTap: () {
            //     _showExitConfirmationDialog(context);
            //   },
            // ),
          ])),
          const Padding(
              padding: EdgeInsets.only(bottom: 10),
              child: Align(
                alignment: Alignment.bottomCenter,
                child: Text(
                  'v1.24.08.16',
                  style: TextStyle(fontWeight: FontWeight.w300),
                ),
              ))
        ],
      ),
    );
  }
}
