12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- // 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'),
- ),
- ],
- ),
- ),
- );
- }
- }
|