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_locale.dart';
5 : import 'package:app_finance/_configs/member_list.dart';
6 : import 'package:app_finance/_configs/theme_helper.dart';
7 : import 'package:app_finance/_mixins/launcher_mixin.dart';
8 : import 'package:app_finance/design/button/full_sized_button_widget.dart';
9 : import 'package:app_finance/pages/about/widgets/member_widget.dart';
10 : import 'package:material_ui/material_ui.dart';
11 :
12 : class MembersTab extends StatelessWidget with LauncherMixin {
13 1 : const MembersTab({super.key});
14 :
15 0 : @override
16 : Widget build(BuildContext context) {
17 0 : final indent = ThemeHelper.getIndent();
18 0 : final crossAxisCount = ThemeHelper.getWidthCount(null, context);
19 0 : final width = ThemeHelper.getWidth(context) / (64 * crossAxisCount);
20 0 : return Padding(
21 0 : padding: EdgeInsets.fromLTRB(indent, indent * 4, indent, indent),
22 0 : child: GridView.builder(
23 0 : gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
24 : crossAxisCount: crossAxisCount,
25 : crossAxisSpacing: indent,
26 : mainAxisSpacing: indent,
27 : childAspectRatio: width,
28 : ),
29 : shrinkWrap: true,
30 0 : itemCount: memberList.length + 1,
31 0 : itemBuilder: (BuildContext context, int index) => index == 0
32 0 : ? Padding(
33 0 : padding: EdgeInsets.only(right: indent, top: indent),
34 0 : child: FullSizedButtonWidget(
35 0 : onPressed: () => openURL('https://github.com/lyskouski/app-finance/blob/main/CONTRIBUTING.md'),
36 0 : title: AppLocale.labels.coNew,
37 : icon: Icons.add,
38 : ),
39 : )
40 0 : : MemberWidget(memberList[index - 1]),
41 : ),
42 : );
43 : }
44 : }
|