import 'package:concierge/presentation/screens/receipt/receipt_route.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:concierge/presentation/screens/payment/bloc/payment_cubit.dart';
import 'package:concierge/presentation/screens/payment/bloc/payment_state.dart';
import 'package:payment_plugin/presentation/screens/payment_processing_page.dart'
    show PaymentProcessingPage;
import 'package:payment_plugin/presentation/app/bloc/payment_cubit.dart' as payment_plugin;
import 'package:payment_plugin/presentation/app/bloc/payment_processing_state.dart'
    as payment_plugin;

class PaymentScreen extends StatelessWidget {
  const PaymentScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return BlocBuilder<PaymentCubit, PaymentState>(
      builder: (context, state) {
        final cubit = context.read<PaymentCubit>();
        return BlocBuilder<payment_plugin.PaymentCubit, payment_plugin.PaymentProcessingState>(
          builder: (context, state) {
            return MultiBlocListener(
              listeners: [
                BlocListener<PaymentCubit, PaymentState>(
                  listenWhen: (prev, curr) => !prev.paymentSuccess && curr.paymentSuccess,
                  listener: (context, state) {
                    ReceiptRoute(orderId: state.orderId).replace(context);
                  },
                ),
              ],
              child: Material(
                child: PaymentProcessingPage(),
              ),
            );
          },
        );
      },
    );
  }
}