← ClaudeAtlas

bloc-patternslisted

When to activate: flutter_bloc, BLoC, Cubit, BlocBuilder, BlocListener, BlocConsumer, HydratedBloc, events, states, bloc pattern
Mattakushi432/Claude-Code-Skills-Custom-DevTools-Pack · ★ 0 · AI & Automation · score 73
Install: claude install-skill Mattakushi432/Claude-Code-Skills-Custom-DevTools-Pack
# BLoC Patterns ## Cubit (simple state, no events) ```dart class CounterCubit extends Cubit<int> { CounterCubit() : super(0); void increment() => emit(state + 1); void decrement() => emit(state - 1); void reset() => emit(0); } // Widget BlocProvider( create: (_) => CounterCubit(), child: BlocBuilder<CounterCubit, int>( builder: (context, count) => Text('$count'), ), ); context.read<CounterCubit>().increment(); ``` ## BLoC with Sealed Events and States ```dart // events.dart sealed class AuthEvent {} class LoginRequested extends AuthEvent { final String email, password; LoginRequested(this.email, this.password); } class LogoutRequested extends AuthEvent {} class TokenRefreshRequested extends AuthEvent {} // states.dart sealed class AuthState {} class AuthInitial extends AuthState {} class AuthLoading extends AuthState {} class AuthAuthenticated extends AuthState { final User user; AuthAuthenticated(this.user); } class AuthFailure extends AuthState { final String message; AuthFailure(this.message); } // bloc.dart class AuthBloc extends Bloc<AuthEvent, AuthState> { AuthBloc(this._authService) : super(AuthInitial()) { on<LoginRequested>(_onLogin); on<LogoutRequested>(_onLogout); } final AuthService _authService; Future<void> _onLogin(LoginRequested event, Emitter<AuthState> emit) async { emit(AuthLoading()); try { final user = await _authService.login(event.email, event.password); emit(AuthAuthenticated(us