import 'dart:typed_data';

import 'package:flutter/material.dart';
import 'package:furibase/components/bottom_navbar.dart';
import 'package:furibase/components/main_menu.dart';
import 'package:furibase/components/scan_button.dart';
import 'package:furibase/helpers/pick_image.dart';
import 'package:flutter/foundation.dart' show kIsWeb;

class AkunSaya extends StatefulWidget {
  @override
  _AkunSayaState createState() => _AkunSayaState();
}

class _AkunSayaState extends State<AkunSaya> {
  dynamic _profileImage;
  dynamic _headerImage;
  //final ImagePicker _picker = ImagePicker();

  Future<void> _pickImage(bool isProfile) async {
    final imagePicker = ImagePickerHelper();
    dynamic pic = await imagePicker.pickImage();

    if (pic != null) {
      setState(() {
        if (isProfile) {
          _profileImage = pic;
        } else {
          _headerImage = pic;
        }
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Saya"),
        backgroundColor: Color.fromARGB(225, 79, 76, 182),
      ),
      backgroundColor: const Color.fromARGB(255, 255, 255, 255),
      body: Stack(
        children: [
          Positioned(
            bottom: 0,
            left: 0,
            right: 0,
            child: Padding(
              padding: const EdgeInsets.only(top: 20.0, left: 20, right: 20),
              child: Container(
                height: MediaQuery.of(context).size.height * 0.7,
                width: MediaQuery.of(context).size.width,
                decoration: BoxDecoration(
                  color: const Color.fromARGB(255, 205, 202, 189),
                  borderRadius: BorderRadius.only(
                    topLeft: Radius.circular(20),
                    topRight: Radius.circular(20),
                  ),
                ),
              ),
            ),
          ),
          Column(
            children: [
              // Header image (bisa diubah)
              SizedBox(
                height: 80,
                child: Container(
                  decoration: BoxDecoration(
                    borderRadius: BorderRadius.only(
                      bottomLeft: Radius.circular(40),
                      bottomRight: Radius.circular(40),
                    ),
                    color: Color.fromARGB(225, 79, 76, 182),
                  ),
                ),
              ),
              SizedBox(height: 40),
              Expanded(
                child: Padding(
                  padding: EdgeInsets.all(20),
                  child: ListView(
                    padding: EdgeInsets.symmetric(horizontal: 20, vertical: 40),
                    children: [
                      TextFormField(
                        initialValue: "Cepot",
                        decoration: const InputDecoration(
                          border: UnderlineInputBorder(),
                          labelText: 'Nama',
                          labelStyle: TextStyle(color: Colors.black),
                        ),
                        style: TextStyle(color: Colors.black),
                      ),
                      TextFormField(
                        initialValue: "cpt09",
                        decoration: const InputDecoration(
                          border: UnderlineInputBorder(),
                          labelText: 'Nama Pengguna',
                          labelStyle: TextStyle(color: Colors.black),
                        ),
                        style: TextStyle(color: Colors.black),
                      ),

                      TextFormField(
                        initialValue: "Jl. Sentosa jaya",
                        decoration: const InputDecoration(
                          border: UnderlineInputBorder(),
                          labelText: 'Alamat',
                          labelStyle: TextStyle(color: Colors.black),
                        ),
                        style: TextStyle(color: Colors.black),
                      ),

                      TextFormField(
                        initialValue: "******",
                        decoration: const InputDecoration(
                          border: UnderlineInputBorder(),
                          labelText: 'Kata Sandi',
                          labelStyle: TextStyle(color: Colors.black),
                        ),
                        style: TextStyle(color: Colors.black),
                      ),
                      TextFormField(
                        initialValue: "+62923",
                        decoration: const InputDecoration(
                          border: UnderlineInputBorder(),
                          labelText: 'No. HP',
                          labelStyle: TextStyle(color: Colors.black),
                        ),
                        style: TextStyle(color: Colors.black),
                      ),
                    ],
                  ),
                ),
              ),
            ],
          ),
          // Profile Picture (bisa diubah)
          Positioned(
            top: 25,
            left: MediaQuery.of(context).size.width / 2 - 50,
            child: GestureDetector(
              onTap: () => _pickImage(true),
              child: Stack(
                alignment: Alignment.bottomRight,
                children: [
                  CircleAvatar(
                    radius: 50,
                    backgroundColor: Colors.grey[300],
                    backgroundImage:
                        _profileImage != null
                            ? (kIsWeb
                                ? MemoryImage(_profileImage) as ImageProvider
                                : FileImage(_profileImage) as ImageProvider)
                            : null,
                    child:
                        _profileImage == null
                            ? Icon(Icons.person, size: 50, color: Colors.white)
                            : null,
                  ),
                  CircleAvatar(
                    radius: 15,
                    backgroundColor: Colors.blue,
                    child: Icon(Icons.edit, color: Colors.white, size: 15),
                  ),
                ],
              ),
            ),
          ),

          Positioned(
            top: 130,
            left: MediaQuery.of(context).size.width / 2 - 50,
            child: GestureDetector(
              onTap: () => _pickImage(true),
              child: Stack(
                alignment: Alignment.bottomRight,
                children: [
                  Text(
                    "Nama Akun",
                    style: TextStyle(
                      color: Colors.deepPurple,
                      fontSize: 18,
                      fontWeight: FontWeight.bold,
                    ),
                  ),
                ],
              ),
            ),
          ),
        ],
      ),
    );
  }

  Widget _buildListItem(IconData icon, String label, {bool isLogout = false}) {
    return ListTile(
      leading: Icon(
        icon,
        color:
            isLogout
                ? const Color.fromARGB(255, 181, 47, 47)
                : const Color.fromARGB(255, 255, 255, 255),
      ),
      title: Text(label, style: TextStyle(fontSize: 16, color: Colors.black)),
      trailing: Icon(Icons.arrow_forward_ios, size: 16),
      onTap: () {},
    );
  }
}
