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)); }