blocify 0.1.0 copy "blocify: ^0.1.0" to clipboard
blocify: ^0.1.0 copied to clipboard

discontinued

A library that makes using the BLoC (Business Logic Component) design pattern easier.

blocify #

A library that makes using the BLoC (Business Logic Component) design pattern easier.

Usage #

Full example can be found here

DataBloc #

import 'package:blocify/blocify.dart';

...


// Create data bloc
DataBloc<bool> _switchBloc = DataBloc(true);


// Use data bloc
Widget _getSwitch() {
  return BlocBuilder<DataBloc<bool>, DataState<bool>>(
    bloc: _switchBloc,
    builder: (context, state) {
      return Switch(
        value: state.data,
        // Update data in state
        onChanged: (value) => _switchBloc.add(
          DataSetEvent(value),
        ),
      );
    },
  );
}

SingleAsyncOpBloc #

import 'package:blocify/blocify.dart';

...


// Create bloc
SingleAsyncOpBloc<User> _bloc = SingleAsyncOpBloc();

void _findUser() {
  if (_controller.text.isNotEmpty) {
    FocusScope.of(context).unfocus();
    // Send the event with an async request
    _bloc.add(
        SingleAsyncOpRequestEvent(_repository.getUser(_controller.text)));
  }
}

// Use bloc
Widget _getContent() {
  return BlocBuilder<SingleAsyncOpBloc<User>, SingleAsyncOpState<User>>(
    bloc: _bloc,
    builder: (context, state) {
      // Use state for updating UI
      if (state is SingleAsyncOpLoadingState) {
        return Center(child: CircularProgressIndicator());
      }
      if (state is SingleAsyncOpReadyState<User>) {
        return SingleChildScrollView(
          padding: EdgeInsets.only(bottom: 20),
          child: _getUserInfo(state.data),
        );
      }
      if (state is SingleAsyncOpErrorState) {
        return Center(
          child: Text('''Can't find user "${_controller.text}"'''),
        );
      }
      return Container();
    },
  );
}
0
likes
40
pub points
0%
popularity

Publisher

unverified uploader

A library that makes using the BLoC (Business Logic Component) design pattern easier.

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

bloc

More

Packages that depend on blocify