LCOV - code coverage report
Current view: top level - src - multi_repository_provider.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 2 2 100.0 %
Date: 2021-10-05 22:30:28 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:flutter/widgets.dart';
       2             : import 'package:flutter_bloc/src/repository_provider.dart';
       3             : import 'package:provider/provider.dart';
       4             : 
       5             : /// {@template multi_repository_provider}
       6             : /// Merges multiple [RepositoryProvider] widgets into one widget tree.
       7             : ///
       8             : /// [MultiRepositoryProvider] improves the readability and eliminates the need
       9             : /// to nest multiple [RepositoryProvider]s.
      10             : ///
      11             : /// By using [MultiRepositoryProvider] we can go from:
      12             : ///
      13             : /// ```dart
      14             : /// RepositoryProvider<RepositoryA>(
      15             : ///   create: (context) => RepositoryA(),
      16             : ///   child: RepositoryProvider<RepositoryB>(
      17             : ///     create: (context) => RepositoryB(),
      18             : ///     child: RepositoryProvider<RepositoryC>(
      19             : ///       create: (context) => RepositoryC(),
      20             : ///       child: ChildA(),
      21             : ///     )
      22             : ///   )
      23             : /// )
      24             : /// ```
      25             : ///
      26             : /// to:
      27             : ///
      28             : /// ```dart
      29             : /// MultiRepositoryProvider(
      30             : ///   providers: [
      31             : ///     RepositoryProvider<RepositoryA>(create: (context) => RepositoryA()),
      32             : ///     RepositoryProvider<RepositoryB>(create: (context) => RepositoryB()),
      33             : ///     RepositoryProvider<RepositoryC>(create: (context) => RepositoryC()),
      34             : ///   ],
      35             : ///   child: ChildA(),
      36             : /// )
      37             : /// ```
      38             : ///
      39             : /// [MultiRepositoryProvider] converts the [RepositoryProvider] list into a tree
      40             : /// of nested [RepositoryProvider] widgets.
      41             : /// As a result, the only advantage of using [MultiRepositoryProvider] is
      42             : /// improved readability due to the reduction in nesting and boilerplate.
      43             : /// {@endtemplate}
      44             : class MultiRepositoryProvider extends MultiProvider {
      45             :   /// {@macro multi_repository_provider}
      46           1 :   MultiRepositoryProvider({
      47             :     Key? key,
      48             :     required List<RepositoryProviderSingleChildWidget> providers,
      49             :     required Widget child,
      50           1 :   }) : super(key: key, providers: providers, child: child);
      51             : }

Generated by: LCOV version 1.15