ilkersevim_type_safe_bloc 0.1.2 copy "ilkersevim_type_safe_bloc: ^0.1.2" to clipboard
ilkersevim_type_safe_bloc: ^0.1.2 copied to clipboard

Type-safe flutter_bloc context extensions and selector, builder, listener, and consumer widgets for compile-time Cubit/BLoC access.

example/lib/main.dart

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

void main() {
  runApp(const ExampleApp());
}

class ExampleApp extends StatelessWidget {
  const ExampleApp({super.key});

  @override
  Widget build(final BuildContext context) {
    return MaterialApp(
      home: BlocProvider<CounterCubit>(
        create: (_) => CounterCubit(),
        child: const CounterPage(),
      ),
    );
  }
}

class CounterPage extends StatelessWidget {
  const CounterPage({super.key});

  @override
  Widget build(final BuildContext context) {
    return Scaffold(
      body: Center(
        child: TypeSafeBlocSelector<CounterCubit, int, int>(
          selector: (final state) => state,
          builder: (final context, final count) => Text('Count: $count'),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () => context.cubit<CounterCubit>().increment(),
        child: const Icon(Icons.add),
      ),
    );
  }
}

class CounterCubit extends Cubit<int> {
  CounterCubit() : super(0);

  void increment() => emit(state + 1);
}
1
likes
160
points
316
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Type-safe flutter_bloc context extensions and selector, builder, listener, and consumer widgets for compile-time Cubit/BLoC access.

Repository (GitHub)
View/report issues

Topics

#bloc #flutter #state-management

License

Apache-2.0 (license)

Dependencies

flutter, flutter_bloc, provider

More

Packages that depend on ilkersevim_type_safe_bloc