|
@@ -0,0 +1,79 @@
|
|
|
+// ignore_for_file: library_private_types_in_public_api
|
|
|
+
|
|
|
+import 'dart:convert';
|
|
|
+import 'package:flutter/material.dart';
|
|
|
+import 'package:http/http.dart' as http;
|
|
|
+
|
|
|
+class RegistrationScreen extends StatefulWidget {
|
|
|
+ static const routeName = 'registrationScreen';
|
|
|
+
|
|
|
+ const RegistrationScreen({super.key});
|
|
|
+ @override
|
|
|
+ _RegistrationScreenState createState() => _RegistrationScreenState();
|
|
|
+}
|
|
|
+
|
|
|
+class _RegistrationScreenState extends State<RegistrationScreen> {
|
|
|
+ final TextEditingController _usernameController = TextEditingController();
|
|
|
+ final TextEditingController _emailController = TextEditingController();
|
|
|
+ final TextEditingController _passwordController = TextEditingController();
|
|
|
+
|
|
|
+ Future<void> _registerUser() async {
|
|
|
+ const String apiUrl = 'YOUR_API_ENDPOINT'; // Replace with your API endpoint
|
|
|
+
|
|
|
+ final response = await http.post(
|
|
|
+ Uri.parse(apiUrl),
|
|
|
+ headers: {'Content-Type': 'application/json'},
|
|
|
+ body: jsonEncode({
|
|
|
+ 'username': _usernameController.text.trim(),
|
|
|
+ 'email': _emailController.text.trim(),
|
|
|
+ 'password': _passwordController.text.trim(),
|
|
|
+ }),
|
|
|
+ );
|
|
|
+
|
|
|
+ if (response.statusCode == 201) {
|
|
|
+ // User registration successful
|
|
|
+ print('User registered successfully');
|
|
|
+ } else {
|
|
|
+ // Handle registration errors
|
|
|
+ print('Error during registration: ${response.statusCode}');
|
|
|
+ print('Response body: ${response.body}');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @override
|
|
|
+ Widget build(BuildContext context) {
|
|
|
+ return Scaffold(
|
|
|
+ appBar: AppBar(
|
|
|
+ title: const Text('User Registration'),
|
|
|
+ ),
|
|
|
+ body: Padding(
|
|
|
+ padding: const EdgeInsets.all(16.0),
|
|
|
+ child: Column(
|
|
|
+ mainAxisAlignment: MainAxisAlignment.center,
|
|
|
+ children: [
|
|
|
+ TextField(
|
|
|
+ controller: _usernameController,
|
|
|
+ decoration: const InputDecoration(labelText: 'Username'),
|
|
|
+ ),
|
|
|
+ const SizedBox(height: 16.0),
|
|
|
+ TextField(
|
|
|
+ controller: _emailController,
|
|
|
+ decoration: const InputDecoration(labelText: 'Email'),
|
|
|
+ ),
|
|
|
+ const SizedBox(height: 16.0),
|
|
|
+ TextField(
|
|
|
+ controller: _passwordController,
|
|
|
+ decoration: const InputDecoration(labelText: 'Password'),
|
|
|
+ obscureText: true,
|
|
|
+ ),
|
|
|
+ const SizedBox(height: 24.0),
|
|
|
+ ElevatedButton(
|
|
|
+ onPressed: _registerUser,
|
|
|
+ child: const Text('Register'),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+}
|