LCOV - code coverage report
Current view: top level - lib/pages/about/widgets - member_widget.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 35 0.0 %
Date: 2024-10-04 11:09:33 Functions: 0 0 -

          Line data    Source code
       1             : // Copyright 2023 The terCAD team. All rights reserved.
       2             : // Use of this source code is governed by a CC BY-NC-ND 4.0 license that can be found in the LICENSE file.
       3             : 
       4             : import 'package:app_finance/_classes/herald/app_design.dart';
       5             : import 'package:app_finance/_classes/herald/app_locale.dart';
       6             : import 'package:app_finance/_configs/custom_text_theme.dart';
       7             : import 'package:app_finance/_configs/theme_helper.dart';
       8             : import 'package:app_finance/_ext/build_context_ext.dart';
       9             : import 'package:app_finance/design/wrapper/text_wrapper.dart';
      10             : import 'package:flutter/material.dart';
      11             : 
      12             : typedef MemberData = ({
      13             :   String name,
      14             :   List<String> badge,
      15             : });
      16             : 
      17             : class MemberWidget extends StatelessWidget {
      18           0 :   static final colors = {
      19           0 :     AppLocale.labels.coAuthor: Colors.amber.withOpacity(0.2),
      20           0 :     AppLocale.labels.coDeveloper: Colors.indigo.withOpacity(0.2),
      21           0 :     AppLocale.labels.coTranslator: Colors.pink.withOpacity(0.2),
      22           0 :     AppLocale.labels.coPromoter: Colors.purple.withOpacity(0.2),
      23           0 :     AppLocale.labels.coConsult: Colors.cyan.withOpacity(0.2),
      24             :   };
      25             : 
      26             :   final MemberData member;
      27             : 
      28           0 :   const MemberWidget(this.member, {super.key});
      29             : 
      30           0 :   @override
      31             :   Widget build(BuildContext context) {
      32           0 :     final indent = ThemeHelper.getIndent();
      33           0 :     final border = BorderSide(width: 1, color: context.colorScheme.primary.withOpacity(0.1));
      34           0 :     return Container(
      35           0 :       padding: EdgeInsets.all(indent),
      36           0 :       margin: EdgeInsets.only(top: indent, right: indent),
      37           0 :       decoration: BoxDecoration(
      38           0 :         border: Border(top: border, bottom: border, left: border, right: border),
      39           0 :         color: context.colorScheme.surface,
      40           0 :         boxShadow: [
      41           0 :           BoxShadow(
      42           0 :             color: context.colorScheme.secondary.withOpacity(0.08),
      43             :             spreadRadius: 1,
      44             :             blurRadius: 2,
      45             :             offset: const Offset(2, 2),
      46             :           ),
      47             :         ],
      48             :       ),
      49           0 :       child: Column(
      50           0 :         mainAxisAlignment: AppDesign.getAlignment<MainAxisAlignment>(),
      51           0 :         crossAxisAlignment: AppDesign.getAlignment(),
      52           0 :         children: [
      53           0 :           TextWrapper(member.name, style: context.textTheme.headlineMedium),
      54           0 :           Expanded(
      55           0 :             child: ListView.builder(
      56             :               scrollDirection: Axis.horizontal,
      57           0 :               itemCount: member.badge.length,
      58           0 :               itemBuilder: (BuildContext context, int i) => Container(
      59           0 :                 margin: EdgeInsets.only(right: indent),
      60           0 :                 padding: EdgeInsets.symmetric(horizontal: indent / 2),
      61           0 :                 decoration: BoxDecoration(
      62           0 :                   border: Border(top: border, bottom: border, left: border, right: border),
      63           0 :                   borderRadius: BorderRadius.all(Radius.circular(indent)),
      64           0 :                   color: colors[member.badge[i]],
      65             :                 ),
      66           0 :                 child: TextWrapper(member.badge[i], style: context.textTheme.numberSmall),
      67             :               ),
      68             :             ),
      69             :           ),
      70             :         ],
      71             :       ),
      72             :     );
      73             :   }
      74             : }

Generated by: LCOV version 1.14