state_helpers 0.0.1 copy "state_helpers: ^0.0.1" to clipboard
state_helpers: ^0.0.1 copied to clipboard

Helpers for state management

Contains utility function and classes to help utilize state management more efficiently.

Features #

  1. Creating and handling StatefulWidgets more elegantly.
  2. Helpers for Bloc management system.
  3. Helper scope extensions function

Getting started #

Install #

flutter pub add state_helpers

Usage #

An easier way to create stateful widgets in Flutter. #

instead of writing with 2 classes:

import 'package:flutter/material.dart';  
  
class Counter extends StatefulWidget {  
  const Counter({super.key});  
  
  
  @override  
  State<StatefulWidget> createState() => _SimpleCounterState();  
}  
  
class _SimpleCounterState extends State<Counter> {  
  var count = 0;  
  
  @override  
  Widget build(BuildContext context) {  
    return Row(  
      children: [  
        TextButton(onPressed: () {  
          setState(() {  
            count--;  
          });  
        }, child: const Text('-')),  
        Text('value: $count'),  
        TextButton(  
            onPressed: () {  
              setState(() {  
                count++;  
              });  
            },  
            child: const Text('+')  
        )  
      ],  
    );  
  }  
}

use one class with a state mixin:

import 'package:flutter/material.dart';  
import 'package:state_helpers/state_helpers.dart';  
  
class SimpleCounter extends StatefulWidget with StateHolder<int> {  
  const SimpleCounter({super.key});  
  
  @override  
  int get initialState => 0;  
  
  @override  
  Widget build(BuildContext context, int state, StateEmitter<int> emitter) {  
    return Row(  
      children: [  
        TextButton(onPressed: () {  
          emitter(state - 1);  
        }, child: const Text('-')),  
        Text('value: $state'),  
        TextButton(  
            onPressed: () {  
             emitter(state + 1);  
            },  
            child: const Text('+')  
        )  
      ],  
    );  
  }  
}

Creating BlocBuilder and BlocSelector easier #

avoid remembering multiple types when creating BlocSelector & BlocBuilder

import 'package:example/widgets/bloc/color_bloc.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

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

  @override
  Widget build(BuildContext context) {
    return BlocSelector<ColorBloc, ColorData, String>(
        selector: (st) => st.name,
        builder: (context, snapshot) => Text(snapshot)
    );
  }
}

create a builders or selectors directly from the bloc instance:

import 'package:example/widgets/bloc/color_bloc.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

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

  @override
  Widget build(BuildContext context) {
    return context.read<ColorBloc>().selector(
        selector: (st) => st.color,
        builder: (context, snapshot) =>
            Container(height: 64, color: snapshot,)
    );
  }
}
2
likes
0
points
2
downloads

Publisher

unverified uploader

Weekly Downloads

Helpers for state management

Homepage

License

unknown (license)

Dependencies

bloc, flutter, flutter_bloc

More

Packages that depend on state_helpers