import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:concierge/presentation/navigation/app_routes.dart';
import 'package:go_router/go_router.dart';
import 'package:concierge/presentation/screens/receipt/bloc/receipt_cubit.dart';
import 'package:concierge/presentation/screens/receipt/receipt_screen.dart';

import '../../navigation/transitions/slide_in_transition.dart';

part '../../../_generated/presentation/screens/receipt/receipt_route.g.dart';

@TypedGoRoute<ReceiptRoute>(path: AppRoutes.receipt)
class ReceiptRoute extends GoRouteData with $ReceiptRoute {
  final int orderId;

  const ReceiptRoute({required this.orderId});

  @override
  Page<void> buildPage(BuildContext context, GoRouterState state) {
    return slideInTransition(
      state: state,
      child: BlocProvider(
        create: (context) => ReceiptCubit(context.read(), orderId: orderId),
        child: ReceiptScreen(),
      ),
    );
  }
}