LCOV - code coverage report
Current view: top level - lib/pages/about/widgets - member_widget.dart Coverage Total Hit
Test: lcov.info Lines: 0.0 % 35 0
Test Date: 2026-11-14 15:04:37 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:material_ui/material_ui.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.withValues(alpha: 0.2),
      20            0 :     AppLocale.labels.coDeveloper: Colors.indigo.withValues(alpha: 0.2),
      21            0 :     AppLocale.labels.coTranslator: Colors.pink.withValues(alpha: 0.2),
      22            0 :     AppLocale.labels.coPromoter: Colors.purple.withValues(alpha: 0.2),
      23            0 :     AppLocale.labels.coConsult: Colors.cyan.withValues(alpha: 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.withValues(alpha: 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.withValues(alpha: 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 2.0-1