
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:rogapp/pages/index/index_controller.dart';
import 'package:rogapp/routes/app_pages.dart';
import 'package:rogapp/services/auth_service.dart';
import 'package:url_launcher/url_launcher.dart';

class DrawerPage extends StatelessWidget {
  DrawerPage({ Key? key }) : super(key: key);

  final IndexController indexController = Get.find<IndexController>();

  void _launchURL(url) async {
    if (!await launch(url)) throw 'Could not launch $url';
  }

  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: Drawer(
        // Add a ListView to the drawer. This ensures the user can scroll
        // through the options in the drawer if there isn't enough vertical
        // space to fit everything.
        child: Column(
          children: [
            Container(
              height: 100,
              color: Colors.amber,
              child: Obx(() => 
                Center(
                child: Padding(
                  padding: const EdgeInsets.all(8.0),
                  child: 
                  indexController.currentUser.isEmpty ?
                    Flexible(child: Text("drawer_title".tr, style: const TextStyle(color: Colors.black, fontSize: 20),))
                    :
                    Text(indexController.currentUser[0]['user']['email'], style: const TextStyle(color: Colors.black, fontSize: 20),),
                ),
              )
              ),
            ),
            Obx(() => 
              indexController.currentUser.isEmpty ?
              ListTile(
                leading: const Icon(Icons.login),
                title: Text("login".tr),
                onTap: (){
                  Get.toNamed(AppPages.LOGIN);
                },
              ) : 
              ListTile(
                leading: const Icon(Icons.login),
                title: Text("logout".tr),
                onTap: (){
                  indexController.logout();
                  Get.toNamed(AppPages.LOGIN);
                },
              )
            ),
            indexController.currentUser.isNotEmpty ?
            ListTile(
              leading: const Icon(Icons.password),
              title: Text("change_password".tr),
              onTap: (){
                Get.toNamed(AppPages.CHANGE_PASSWORD);
              },
            ) : 
            const SizedBox(width: 0, height: 0,),
            indexController.currentUser.isEmpty ?
            ListTile(
              leading: const Icon(Icons.person),
              title: Text("sign_up".tr),
              onTap: (){
                Get.toNamed(AppPages.REGISTER);
              },
            ) : 
            const SizedBox(width: 0, height: 0,),
            indexController.currentUser.isNotEmpty ?
            ListTile(
              leading: const Icon(Icons.delete_forever),
              title: Text("delete_account".tr),
              onTap: (){
                String _token = indexController.currentUser[0]['token'];
                AuthService.deleteUser(_token).then((value){
                  if(value.isNotEmpty){
                    indexController.logout();
                    Get.toNamed(AppPages.TRAVEL);
                    Get.snackbar("accounted_deleted".tr, "account_deleted_message".tr);
                  }
                });
              },
            ) : 
            const SizedBox(width: 0, height: 0,),
            // ListTile(
            //   leading: const Icon(Icons.person),
            //   title: Text("profile".tr),
            //   onTap: (){},
            // ),
            // ListTile(
            //   leading: const Icon(Icons.route),
            //   title: Text("recommended_route".tr),
            //   onTap: (){},
            // ),
            // ListTile(
            //   leading: const Icon(Icons.favorite_rounded),
            //   title: Text("point_rank".tr),
            //   onTap: (){},
            // ),
            indexController.currentUser.isNotEmpty ?
            ListTile(
              leading: const Icon(Icons.featured_video),
              title: Text("rog_web".tr),
              onTap: (){
                _launchURL("https://www.gifuai.net/?page_id=17397");
              },
            ) : 
            const SizedBox(width: 0, height: 0,),
            ListTile(
              leading: const Icon(Icons.privacy_tip),
              title: Text("privacy".tr),
              onTap: (){
                _launchURL("https://rogaining.sumasen.net/api/privacy/");
              },
            )
            // ListTile(
            //   leading: const Icon(Icons.router),
            //   title: Text("my_route".tr),
            //   onTap: (){},
            // ),
            // ListTile(
            //   leading: const Icon(Icons.history_sharp),
            //   title: Text("visit_history".tr),
            //   onTap: (){},
            // ),
          ],
        ),
      ),
    );
  }
}