mobx_widget 0.2.0 copy "mobx_widget: ^0.2.0" to clipboard
mobx_widget: ^0.2.0 copied to clipboard

outdated

ObserverFuture, ObserverStream and ObserverText Widget - A simple way to consume MobX Observables through widgets. You can find a sort of widgets.

Pub Version PRs Welcome

ObserverFuture, ObserverStream and ObserverText Widget - A simple way to consume MobX Observables through widgets. You can find a sort of widgets. #

Example usage #

add dependency to pubspec.yaml

  mobx_widget:
    git: https://github.com/emanuel-braz/mobx_widget.git

OR

  dependencies:
    mobx_widget: ^0.2.0

Import package and use Observer Widgets

import 'package:mobx_widget/mobx_widget.dart';

ObservableFuture (ObserverFuture)

ObserverFuture( // Use this widget to handle ObservableFuture events
  observableFuture: () => myStore.observableFuture,
  onData: (_, data) => Text('DATA: ${data.toString()}'),
  onNull: (_) => Text('NULL'),
  onError: (_, error) => Text('ERROR: ${error.toString()}'),
  onPending: (_) => Text('PENDING'),
  onUnstarted: (_) => Text('UNSTARTED'),
)

ObservableStream (ObserverStream)

ObserverStream(  // Use this widget to handle ObservableStream events
  observableStream: () => myStore.observableStream,
  onData: (_, data) => Text('DATA: $data'),
  onNull: (_) => Text('NULL'),
  onUnstarted: (_) => Text('UNSTARTED'),
  onError: (_, error) => Text('ERROR: ' + error.toString()),
),

Text Widget (ObserverText)

ObserverText(
  onData: (_) => myStore.text,
  // style: Theme.of(context).textTheme.bodyText1,
)

Customize the ObserverFuture widget behavior just once and use it in the entire application.

MyCustomObserverFutureWidget(
  observableFuture: () => myStore.observableFuture,
  onData: (_, data) => Text('😍'),
)
class MyCustomObserverFutureWidget extends StatelessWidget {
  
  final ObservableFuture Function() observableFuture;
  final Function(BuildContext context, dynamic data) onData;

  MyCustomObserverFutureWidget({Key key, this.observableFuture, this.onData}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ObserverFuture(
      observableFuture: observableFuture,
      onData: onData,
      onNull: (_) => Text('🤔'),
      onError: (_, error) => Text('😥'),
      onUnstarted: (_) => Text('😐'),
      onPending: (_)=> Text('👂👂👂'),
      showDefaultProgressInOverlay: true,
      overlayWidget: Container(color:Colors.black45, child: Text('👀💬', style: TextStyle(fontSize: 40),), alignment: Alignment.center,)
    );
  }
}

Contributions of any kind are welcome! 👾

TODO #

  • add example
  • add unit test
  • add widget test
  • add more widgets
16
likes
0
pub points
81%
popularity

Publisher

unverified uploader

ObserverFuture, ObserverStream and ObserverText Widget - A simple way to consume MobX Observables through widgets. You can find a sort of widgets.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter, flutter_mobx, mobx

More

Packages that depend on mobx_widget