Sistem-Pakar-Diagnosa-Penya.../frontend/lib/user/register_page.dart

145 lines
5.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:frontend/api_services/api_services.dart';
// Halaman Pendaftaran
class RegisterPage extends StatelessWidget {
final TextEditingController nameController = TextEditingController();
final TextEditingController emailController = TextEditingController();
final TextEditingController passwordController = TextEditingController();
final TextEditingController alamatController = TextEditingController();
final TextEditingController nomorHpController = TextEditingController();
final ApiService apiService = ApiService();
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color(0xFF9DC08D),
appBar: AppBar(
backgroundColor: Color(0xFF9DC08D),
title: Text('Pendaftaran'),
),
body: Center(
child: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 20.0),
child: Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15),
),
elevation: 5,
child: Padding(
padding: const EdgeInsets.all(20.0),
child: Column(
children: [
TextField(
decoration: InputDecoration(
labelText: 'Nama',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
),
),
controller: nameController,
),
SizedBox(height: 20),
TextField(
decoration: InputDecoration(
labelText: 'Username',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
),
),
controller: emailController,
),
SizedBox(height: 20),
TextField(
obscureText: true,
decoration: InputDecoration(
labelText: 'Password',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
),
),
controller: passwordController,
),
SizedBox(height: 20),
TextField(
decoration: InputDecoration(
labelText: 'Email',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
),
),
controller: emailController,
),
SizedBox(height: 20),
TextField(
decoration: InputDecoration(
labelText: 'Alamat',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
),
),
controller: alamatController,
),
SizedBox(height: 20),
TextField(
decoration: InputDecoration(
labelText: 'Nomor HP',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
),
),
controller: nomorHpController,
),
SizedBox(height: 20),
SizedBox(
width: double.infinity,
height: 50,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: Colors.green,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
),
onPressed: () async {
try {
await apiService.registerUser(
name: nameController.text,
email: emailController.text,
password: passwordController.text,
alamat: alamatController.text,
nomorTelepon: nomorHpController.text,
);
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Registrasi berhasil!')),
);
Navigator.pop(context); // kembali ke login page
} catch (e) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Registrasi gagal: $e')),
);
}
},
child: Text(
'Daftar',
style: TextStyle(
color: Colors.white,
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
),
),
],
),
),
),
),
),
),
);
}
}