import Cubit from '../cubit/interface/Cubit';
import BlocListener, { ListenerFunction } from './BlocListener';
import BlocBuilder, { BuilderFunction } from './BlocBuilder';

type ConsumerParam = {
    bloc: Cubit<any>,
    listener: ListenerFunction,
    children: BuilderFunction
}


const BlocConsumer = ({
    bloc,
    listener,
    children,
}: ConsumerParam) => {
    return (
        <BlocListener
            bloc={bloc}
            listener={listener}
        >
            <BlocBuilder bloc={bloc}>
                {children}
            </BlocBuilder>
        </BlocListener>

    );
}

export default BlocConsumer;