import 'package:flutter/material.dart';
import 'events.dart';
import '../variable/globals.dart' as globals;
import 'package:http/http.dart' as http;
import 'dart:io';
import 'dart:convert';

import 'package:shared_preferences/shared_preferences.dart';

mixin ShowDescImageAdd<T extends StatefulWidget> on State<T> {
  Future<void> addEvents(var events) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    var accessToken = prefs.getString("access_token") ?? "";
    List<String> send = ["toto"];

    if (accessToken.isNotEmpty) {
      var urlPut = Uri.parse("${globals.api}/events");
      print("start date : ${events["start_date"]}");
      var responsePut = await http.put(urlPut,
          headers: {
            HttpHeaders.cookieHeader: 'access_token=${accessToken}',
            HttpHeaders.acceptHeader: 'application/json, text/plain, */*',
            HttpHeaders.contentTypeHeader: 'application/json'
          },
          body: jsonEncode({
            'name': events["name"],
            'place': events["place"],
            'start_date': events['date'],
            'end_date': events['date'],
            'organizers': send,
            'latitude': '0.0',
            'longitude': '0.0',
          }));

      print("http put code status : ${responsePut.statusCode}");
      print("http put body : ${responsePut.body}");
    }
  }

  void showDescImageAddDialog(BuildContext context, var events) {
    // Create AlertDialog
    String name = events['name'];
    AlertDialog dialog = AlertDialog(
      title: Text("Ajouter un evenement"),
      content: Text("${name} n'a pas été trouvé. Voulez-vous l'ajouter ? "),
      actions: [
        TextButton(
            child: Text("Annuler"),
            onPressed: () {
              Navigator.of(context).pop("Yes, Of course!"); // Return value
            }),
        TextButton(
            child: Text("Oui"),
            onPressed: () {
              addEvents(events); // Return value
            }),
      ],
    );

    // Call showDialog function to show dialog.
    Future futureValue = showDialog(
        context: context,
        builder: (BuildContext context) {
          return dialog;
        });
  }
}