inherited_stream 1.1.0 copy "inherited_stream: ^1.1.0" to clipboard
inherited_stream: ^1.1.0 copied to clipboard

An inherited widget for Streams, which updates its dependencies when the stream emits data.

Inherited Stream #

Pub build coverage License: MIT

An InheritedWidget for Streams, which updates its dependencies when the Stream emits.

Usage #

Create an InheritedStream #

class ProgressModel extends InheritedStream<ValueStream<double>> {
  const ProgressModel({
    Key key,
    ValueStream<double> stream,
    Widget child,
  }) : super(key: key, stream: stream, child: child);

  static double of(BuildContext context) {
    return context
        .dependOnInheritedWidgetOfExactType<ProgressModel>()
        .stream
        .value;
  }
}

Insert into the Widget Tree #

class _MyState extends State<MyPage> {
  final _subject = BehaviorSubject<double>.seeded(0.0);

  @override
  void dispose() {
    _subject.close();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ProgressModel(
        stream: _subject.stream,
        child: Progress(),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () => _subject.add(Random.nextDouble()),
      ),
    );
  }
}

Register Dependant(s) #

class Progress extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return CircularProgressIndicator(value: ProgressModel.of(context));
  }
}
5
likes
40
points
97
downloads

Publisher

verified publisherfelangel.dev

Weekly Downloads

An inherited widget for Streams, which updates its dependencies when the stream emits data.

Repository (GitHub)
View/report issues
Contributing

Documentation

Documentation

License

MIT (license)

Dependencies

flutter

More

Packages that depend on inherited_stream