import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:go_router/go_router.dart'; import '../../../core/pairing/pairing_notifier.dart'; class SearchingScreen extends ConsumerWidget { const SearchingScreen({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { ref.listen(pairingProvider, (prev, next) { if (next is PairingBestieFoundData) { context.go('/chat/found', extra: { 'sessionId': next.sessionId, 'mitraName': next.mitraName, }); } else if (next is PairingNoBestieData) { context.go('/chat/no-bestie'); } else if (next is PairingCancelledData) { context.go('/home'); } }); return Scaffold( body: Center( child: Padding( padding: const EdgeInsets.all(32), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ const CircularProgressIndicator(), const SizedBox(height: 32), const Text( 'Mencari Bestie...', style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold), ), const SizedBox(height: 8), const Text( 'Tunggu sebentar ya, kami sedang mencarikan Bestie untukmu', textAlign: TextAlign.center, style: TextStyle(fontSize: 16, color: Colors.grey), ), const SizedBox(height: 48), OutlinedButton( onPressed: () => ref.read(pairingProvider.notifier).cancelPairing(), child: const Text('Batalkan'), ), ], ), ), ), ); } }