import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../core/auth/auth_notifier.dart'; class DisplayNameScreen extends ConsumerStatefulWidget { const DisplayNameScreen({super.key}); @override ConsumerState createState() => _DisplayNameScreenState(); } class _DisplayNameScreenState extends ConsumerState { final _controller = TextEditingController(); @override void dispose() { _controller.dispose(); super.dispose(); } void _submit() { final name = _controller.text.trim(); if (name.isEmpty) return; ref.read(authProvider.notifier).loginAnonymous(name); } @override Widget build(BuildContext context) { final authState = ref.watch(authProvider); final isLoading = authState is AsyncLoading; ref.listen(authProvider, (prev, next) { if (next is AsyncError) { ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(next.error.toString()))); } }); return 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), ElevatedButton( onPressed: isLoading ? null : _submit, child: isLoading ? const CircularProgressIndicator() : const Text('Lanjut'), ), ], ), ), ); } }