import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import '../../../core/auth/auth_bloc.dart'; class DisplayNameScreen extends StatefulWidget { const DisplayNameScreen({super.key}); @override State createState() => _DisplayNameScreenState(); } class _DisplayNameScreenState extends State { final _controller = TextEditingController(); @override void dispose() { _controller.dispose(); super.dispose(); } void _submit() { final name = _controller.text.trim(); if (name.isEmpty) return; context.read().add(AnonymousLoginRequested(name)); } @override Widget build(BuildContext context) { return BlocListener( listener: (context, state) { if (state is AuthError) { ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(state.message))); } }, child: Scaffold( appBar: AppBar(title: const Text('Siapa namamu?')), body: Padding( padding: const EdgeInsets.all(24), child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ const Text('Pilih nama yang ingin kamu gunakan. Nama ini tidak akan terlihat oleh siapapun selain mitra kamu.'), const SizedBox(height: 24), TextField( controller: _controller, decoration: const InputDecoration( labelText: 'Nama panggilan', border: OutlineInputBorder(), ), textInputAction: TextInputAction.done, onSubmitted: (_) => _submit(), ), const SizedBox(height: 24), BlocBuilder( builder: (context, state) => ElevatedButton( onPressed: state is AuthLoading ? null : _submit, child: state is AuthLoading ? const CircularProgressIndicator() : const Text('Lanjut'), ), ), ], ), ), ), ); } }