LCOV - code coverage report
Current view: top level - src - beamer_provider.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 5 5 100.0 %
Date: 2021-09-11 22:34:03 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:beamer/src/beamer_delegate.dart';
       2             : import 'package:flutter/widgets.dart';
       3             : 
       4             : /// Provides [BeamerDelegate] to the `*App.router` Widget.
       5             : ///
       6             : /// This is useful when using `builder` in the `*App.router` widget.
       7             : /// Then, if using Beamer the regular way, `Beamer.of(context)` will not exist.
       8             : /// The way to solve it is by using `BeamerProvider` above `*App.router`:
       9             : ///
      10             : /// ```dart
      11             : /// final _routerDelegate = BeamerDelegate(...);
      12             : ///
      13             : /// @override
      14             : /// Widget build(BuildContext context) {
      15             : ///   return BeamerProvider(
      16             : ///     routerDelegate: _routerDelegate
      17             : ///     child: MaterialApp.router(
      18             : ///       routerDelegate: _routerDelegate,
      19             : ///       routeInformationParser: BeamerParser(...),
      20             : ///       ...
      21             : ///     )
      22             : ///   );
      23             : /// }
      24             : ///
      25             : /// ```
      26             : class BeamerProvider extends InheritedWidget {
      27           2 :   const BeamerProvider({
      28             :     Key? key,
      29             :     required this.routerDelegate,
      30             :     required Widget child,
      31           2 :   }) : super(key: key, child: child);
      32             : 
      33             :   /// Responsible for beaming, updating and rebuilding the page stack.
      34             :   final BeamerDelegate routerDelegate;
      35             : 
      36           1 :   static BeamerProvider? of(BuildContext context) =>
      37           1 :       context.dependOnInheritedWidgetOfExactType<BeamerProvider>();
      38             : 
      39           1 :   @override
      40             :   bool updateShouldNotify(covariant InheritedWidget oldWidget) => false;
      41             : }

Generated by: LCOV version 1.14