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-12-03 10:03:44 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             :   /// Creates a [BeamerProvider] with specified properties.
      28             :   ///
      29             :   /// [routerDelegate] is required because it is the object to provide down the tree.
      30           2 :   const BeamerProvider({
      31             :     Key? key,
      32             :     required this.routerDelegate,
      33             :     required Widget child,
      34           2 :   }) : super(key: key, child: child);
      35             : 
      36             :   /// Responsible for beaming, updating and rebuilding the page stack.
      37             :   final BeamerDelegate routerDelegate;
      38             : 
      39             :   /// Obtain the nearest [BeamerProvider].
      40             :   ///
      41             :   /// See [BuildContext.dependOnInheritedWidgetOfExactType].
      42           1 :   static BeamerProvider? of(BuildContext context) =>
      43           1 :       context.dependOnInheritedWidgetOfExactType<BeamerProvider>();
      44             : 
      45           1 :   @override
      46             :   bool updateShouldNotify(covariant InheritedWidget oldWidget) => false;
      47             : }

Generated by: LCOV version 1.14