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