// ignore_for_file: must_call_super, prefer_typing_uninitialized_variables


import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:namer_app/footer.dart';
import 'package:namer_app/header.dart';
import 'package:namer_app/service/edit_user.dart';
import '../globals.dart';


class EditUserPage extends StatefulWidget {
  const EditUserPage({super.key, required json});

@override
State<EditUserPage> createState() => _EditUserPageState();
}

class _EditUserPageState extends State<EditUserPage>{
var jsonList;
@override
void initState(){
  getData();
}

void getData() async { 
    try { 
      var response = await Dio() 
          .get('http://localhost:8080/api/v1/users',
          options: Options(headers: headers)); 
      if (response.statusCode == 200) { 
        setState(() { 
          jsonList = response.data['results'] as List; 
        }); 
      } else { 
        print(response.statusCode); 
      } 
    } catch (e) { 
      print(e); 
    } 
  } 

  @override
  Widget build(BuildContext context) {
    // TextEditingController usernameController = jsonList['username'];
    // TextEditingController nameController = jsonList['name'];
    var usernameController = TextEditingController();
    var nameController = TextEditingController();
    // usernameController.text = jsonList['username'];
    // nameController.text = jsonList['name'];
    return Scaffold(
      appBar: CustomAppbar(),
      backgroundColor: Colors.white,
      body: Column(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: [
          Center(
              child: Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(
                'EDIT USER',
                style: TextStyle(color: Colors.black, fontSize: 48),
              ),
            ],
          )),
          Column(
            children: [
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: SizedBox(
                  width: 396,
                  child: TextField(
                    decoration: InputDecoration(
                        border: OutlineInputBorder(),
                        focusedBorder: OutlineInputBorder(
                            borderRadius: BorderRadius.all(Radius.circular(12)),
                            borderSide: BorderSide(color: Colors.black)),
                        enabledBorder: OutlineInputBorder(
                            borderRadius: BorderRadius.all(Radius.circular(12)),
                            borderSide: BorderSide(color: Colors.black)),
                        labelText: 'Enter Username', //todo get data
                        labelStyle: TextStyle(color: Colors.black),
                        filled: true,
                        fillColor: Colors.white.withOpacity(0.25)),
                    cursorColor: Colors.black,
                    style: TextStyle(color: Colors.black),
                    controller: usernameController,
                  ),
                ),
              ),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: SizedBox(
                  width: 396,
                  child: TextField(
                    decoration: InputDecoration(
                        border: OutlineInputBorder(),
                        focusedBorder: OutlineInputBorder(
                            borderRadius: BorderRadius.all(Radius.circular(12)),
                            borderSide: BorderSide(color: Colors.black)),
                        enabledBorder: OutlineInputBorder(
                            borderRadius: BorderRadius.all(Radius.circular(12)),
                            borderSide: BorderSide(color: Colors.black)),
                        labelText: 'Enter Name', //todo get data
                        labelStyle: TextStyle(color: Colors.black),
                        filled: true,
                        fillColor: Colors.white.withOpacity(0.25)),
                    cursorColor: Colors.black,
                    style: TextStyle(color: Colors.black),
                    controller: nameController,
                  ),
                ),
              ),
              Padding(
                padding: const EdgeInsets.all(20.0),
                child: SizedBox(
                  width: 396,
                  height: 61,
                  child: ElevatedButton(
                    onPressed: () => edit(context, jsonList['id'], usernameController.text, nameController.text),
                    style: ElevatedButton.styleFrom(
                      backgroundColor: Colors.black, //todo putih lage
                      side: BorderSide(color: Colors.white),
                      shape: RoundedRectangleBorder(
                        borderRadius: BorderRadius.circular(12.0),
                      ),
                    ),
                    child: Text(
                      'Edit',
                      style: TextStyle(color: Colors.white),
                    ),
                  ),
                ),
              ),
            ],
          ),
        ],
      ),
      bottomNavigationBar: Footer(),
    );
  }
}