LCOV - code coverage report
Current view: top level - widgets - snackbar.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 25 25 100.0 %
Date: 2022-07-13 09:29:13 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:basf_flutter_components/basf_flutter_components.dart';
       2             : import 'package:flutter/material.dart';
       3             : 
       4             : /// {@template app_snackbar}
       5             : /// Basf AppSnackBar
       6             : /// {@endtemplate}
       7             : class AppSnackBar extends StatelessWidget {
       8             :   /// {@macro app_snackbar}
       9             :   /// default
      10           1 :   const AppSnackBar({
      11             :     super.key,
      12             :     required this.message,
      13             :     this.prefixIcon,
      14             :     this.backgroundColor,
      15             :   });
      16             : 
      17             :   /// {@macro app_snackbar}
      18             :   /// info
      19           2 :   factory AppSnackBar.info({required String message}) => AppSnackBar(
      20             :         message: message,
      21             :         prefixIcon: Icons.info,
      22             :       );
      23             : 
      24             :   /// {@macro app_snackbar}
      25             :   /// error
      26           1 :   factory AppSnackBar.error({required String message}) {
      27           1 :     return AppSnackBar(
      28             :       message: message,
      29             :       prefixIcon: Icons.error,
      30             :       backgroundColor: BasfColors.red,
      31             :     );
      32             :   }
      33             : 
      34             :   /// Prefix icon of the snackbar
      35             :   final IconData? prefixIcon;
      36             : 
      37             :   /// Background color of the snackbar
      38             :   final Color? backgroundColor;
      39             : 
      40             :   /// Message of the snackbar
      41             :   final String message;
      42             : 
      43           1 :   @override
      44             :   Widget build(BuildContext context) {
      45           1 :     return _content();
      46             :   }
      47             : 
      48           1 :   Widget _content() {
      49           1 :     return Row(
      50           1 :       children: [
      51           1 :         _leftIcon(),
      52           1 :         HorizontalSpacer.semi(),
      53           1 :         _text(),
      54             :       ],
      55             :     );
      56             :   }
      57             : 
      58           1 :   Widget _leftIcon() {
      59           1 :     return Builder(
      60           1 :       builder: (context) {
      61           1 :         return Icon(
      62           1 :           prefixIcon,
      63             :           size: 22,
      64           3 :           color: Theme.of(context).snackBarTheme.contentTextStyle?.color,
      65             :         );
      66             :       },
      67             :     );
      68             :   }
      69             : 
      70           1 :   Widget _text() {
      71           1 :     return Builder(
      72           1 :       builder: (context) {
      73           1 :         return Expanded(
      74           1 :           child: Text(
      75           1 :             message,
      76             :             maxLines: 4,
      77           3 :             style: Theme.of(context).snackBarTheme.contentTextStyle,
      78             :           ),
      79             :         );
      80             :       },
      81             :     );
      82             :   }
      83             : }

Generated by: LCOV version 1.16