// 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'; // ignore: must_be_immutable class EditUserPage extends StatefulWidget { var id; EditUserPage({super.key, required this.id}); @override State createState() => _EditUserPageState(); } class _EditUserPageState extends State{ var jsonList; @override void initState(){ getData(); } void getData() async { try { var response = await Dio() .get('http://localhost:8080/api/v1/users/${widget.id}', 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(), ); } }