Pengusir-Hama-Burung-Otomatis/project/tugas_akhir/lib/screens/akun_page.dart

116 lines
3.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import '../main.dart';
class AkunPage extends StatelessWidget {
const AkunPage({super.key});
@override
Widget build(BuildContext context) {
final user = FirebaseAuth.instance.currentUser;
if (user == null) {
return const Scaffold(body: Center(child: Text("User belum login")));
}
String uid = user.uid;
return Scaffold(
appBar: AppBar(
title: const Text(
"Akun",
style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
),
backgroundColor: const Color(0xFF6FCF97),
iconTheme: const IconThemeData(color: Colors.white),
actions: const [
Padding(
padding: EdgeInsets.only(right: 16),
child: Icon(Icons.notifications, color: Colors.white),
),
],
),
body: StreamBuilder(
stream: db.child('users').child(uid).onValue,
builder: (context, AsyncSnapshot snapshot) {
if (snapshot.hasError) {
return Center(child: Text("Error: ${snapshot.error}"));
}
if (snapshot.connectionState == ConnectionState.waiting) {
return const Center(child: CircularProgressIndicator());
}
if (!snapshot.hasData || snapshot.data.snapshot.value == null) {
return const Center(child: Text("Data tidak ditemukan"));
}
final data = Map<String, dynamic>.from(snapshot.data.snapshot.value);
String nama = data['nama'] ?? '-';
String email = data['email'] ?? '-';
return SafeArea(
child: Padding(
padding: const EdgeInsets.all(20),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
// ICON USER
const Icon(Icons.person, size: 70, color: Colors.grey),
const SizedBox(height: 10),
// NAMA
Text(
nama,
style: const TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
color: Colors.brown,
),
),
const SizedBox(height: 5),
// EMAIL (opsional)
Text(email, style: const TextStyle(color: Colors.grey)),
const SizedBox(height: 30),
// BUTTON LOGOUT
SizedBox(
width: double.infinity,
height: 50,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xFFDCE8E1),
foregroundColor: Colors.black54,
elevation: 0,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
),
onPressed: () async {
await FirebaseAuth.instance.signOut();
},
child: const Text(
"Log Out",
style: TextStyle(fontSize: 16),
),
),
),
],
),
),
);
},
),
);
}
}