import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

class BlocModule<TBloc extends StateStreamableSource<TState>, TState> extends StatelessWidget {
  final TBloc Function(BuildContext context) create;
  final Widget Function(BuildContext context, TState state) child;
  const BlocModule({required this.create, required this.child, super.key});

  @override
  Widget build(BuildContext context) => BlocProvider<TBloc>(create: create, child: BlocBuilder<TBloc, TState>(builder: child));
}