Line data Source code
1 : // ignore_for_file: public_member_api_docs 2 : 3 : import 'package:flutter/material.dart' show Widget, BuildContext, Key; 4 : 5 : import 'consumer_widget.dart'; 6 : 7 : /// A function that can also listen to providers 8 : /// 9 : /// See also [Consumer] 10 : typedef ConsumerBuilder = Widget Function( 11 : BuildContext context, 12 : BuilderRef ref, 13 : Widget? child, 14 : ); 15 : 16 : /// A widget to listen the events in a SimpleNotifier or StateNotifier 17 : /// 18 : /// [builder] 19 : /// [child] use this to pass a pre-built widget 20 : class Consumer extends ConsumerWidget { 21 4 : const Consumer({ 22 : Key? key, 23 : required this.builder, 24 : this.child, 25 4 : }) : super(key: key); 26 : 27 : /// callback that exposes the [BuilderRef] to decide 28 : /// when the consumer must be rebuilded 29 : final ConsumerBuilder builder; 30 : 31 : /// a pre-cached widget that it won't be 32 : /// rebuilded every time that the builder is called 33 : final Widget? child; 34 : 35 4 : @override 36 : Widget build(BuildContext context, BuilderRef ref) { 37 8 : return builder( 38 : context, 39 : ref, 40 4 : child, 41 : ); 42 : } 43 : }