import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:piring/Login/login_form.dart'; import 'package:piring/model/user.dart'; import 'package:http/http.dart' as http; import 'package:shared_preferences/shared_preferences.dart'; class pasBaru extends StatefulWidget { const pasBaru({super.key}); @override State createState() => _pasBaruState(); } class _pasBaruState extends State { String Id = ''; TextEditingController lupaController = TextEditingController(); Future updatePassword() async { final apiUrl = Uri.parse( 'https://isipiringku.esolusindo.com/api/UpdatePassword/updatePassword'); // Ambil nilai dari TextEditingController String password = lupaController.text; // Buat body request final Map requestBody = { 'id_user': Id, 'password': password, }; // Konversi requestBody menjadi JSON final jsonBody = json.encode(requestBody); try { final response = await http.post( apiUrl, headers: { 'Content-Type': 'application/json', }, body: jsonBody, ); if (response.statusCode == 200) { print(Id); // Permintaan berhasil print('Password berhasil diperbarui'); Navigator.pushReplacement( context, MaterialPageRoute( builder: (context) => LoginForm(), )); } else { // Permintaan gagal print( 'Gagal memperbarui password. Status code: ${response.statusCode}'); } } catch (e) { print('Terjadi kesalahan: $e'); } } @override void initState() { super.initState(); loadUserData(); } Future loadUserData() async { final prefs = await SharedPreferences.getInstance(); final userDataString = prefs.getString('user_data'); if (userDataString != null) { final userData = UserData.fromJson(json.decode(userDataString)); print(userData.nama); setState(() { Id = userData.idUser.toString(); print(Id); }); } } @override Widget build(BuildContext context) { return Scaffold( body: SingleChildScrollView( child: Stack(children: [ Container( height: 130, width: double.infinity, decoration: const BoxDecoration( image: DecorationImage( image: AssetImage('assets/images/head2.jpg'), fit: BoxFit.cover)), ), SafeArea( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 15.0), child: Container( width: MediaQuery.of(context).size.width, child: Stack( children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Padding(padding: EdgeInsets.only(top: 64)), const SizedBox(height: 20), Center( child: Container( width: MediaQuery.of(context).size.height * 0.4, height: 30, decoration: BoxDecoration( gradient: const LinearGradient( colors: [ Color.fromARGB(255, 250, 154, 0), Color.fromARGB(255, 246, 80, 20), Color.fromARGB(255, 235, 38, 16), ], ), borderRadius: BorderRadius.circular(30), boxShadow: kElevationToShadow[1], ), padding: const EdgeInsets.symmetric( horizontal: 5, vertical: 0, ), child: const Center( child: Text( 'Kalori Harian', style: TextStyle( color: Colors.white, fontWeight: FontWeight.bold, ), ), ), ), ), const SizedBox( height: 10, ), Center( child: Image.asset('assets/images/gembok.png'), ), SizedBox( height: 20, ), Center( child: Text( 'Silahkan Buat Password Baru untuk Mengamankan Akun Anda', style: TextStyle( fontWeight: FontWeight.bold, ), textAlign: TextAlign.center, ), ), SizedBox( height: 20, ), Center( child: TextFormField( controller: lupaController, decoration: InputDecoration( labelText: 'Password', border: OutlineInputBorder( borderRadius: BorderRadius.circular(20))), ), ), SizedBox( height: 10, ), Center( child: ElevatedButton( onPressed: () { updatePassword(); }, child: Text('Simpan')), ) ], ), ], ), )), ), ]), ), ); } }