Pearoo 7b517b333a Revert "Rename everything filcnaplo-related to refilc"
This reverts commit d1a9625d93f30c19068f52fa9848a8266d8d97e7.
2023-09-19 18:16:57 +02:00

122 lines
5.3 KiB
Dart
Executable File

import 'package:filcnaplo/icons/filc_icons.dart';
import 'package:filcnaplo/models/supporter.dart';
import 'package:filcnaplo/theme/colors/colors.dart';
import 'package:filcnaplo_mobile_ui/premium/components/supporter_group_card.dart';
import 'package:filcnaplo_mobile_ui/premium/styles/gradients.dart';
import 'package:flutter/material.dart';
class SupportersScreen extends StatelessWidget {
const SupportersScreen({Key? key, required this.supporters}) : super(key: key);
final Future<Supporters?> supporters;
@override
Widget build(BuildContext context) {
return FutureBuilder<Supporters?>(
future: supporters,
builder: (context, snapshot) {
final highlightedSupporters =
snapshot.data?.github.where((e) => e.type == DonationType.monthly && e.price >= 5 && e.comment != "").toList() ?? [];
final tintaSupporters =
snapshot.data?.github.where((e) => e.type == DonationType.monthly && e.price >= 5 && e.comment == "").toList() ?? [];
final kupakSupporters = snapshot.data?.github.where((e) => e.type == DonationType.monthly && e.price == 2).toList() ?? [];
final onetimeSupporters = snapshot.data?.github.where((e) => e.type == DonationType.once && e.price >= 5).toList() ?? [];
final patreonSupporters = snapshot.data?.patreon ?? [];
return Scaffold(
body: CustomScrollView(
slivers: [
SliverAppBar.large(
surfaceTintColor: Theme.of(context).scaffoldBackgroundColor,
title: const Text(
"Támogatók",
style: TextStyle(fontWeight: FontWeight.w700),
),
),
if (snapshot.hasData)
SliverPadding(
padding: const EdgeInsets.symmetric(horizontal: 16.0).add(const EdgeInsets.only(bottom: 24.0)),
sliver: SliverToBoxAdapter(
child: Text(
snapshot.data!.description,
style: TextStyle(fontWeight: FontWeight.w500, fontSize: 20.0, color: AppColors.of(context).text.withOpacity(.7)),
),
),
),
if (!snapshot.hasData)
const SliverPadding(
padding: EdgeInsets.all(12.0),
sliver: SliverToBoxAdapter(
child: Center(child: CircularProgressIndicator()),
),
),
if (highlightedSupporters.isNotEmpty)
SliverPadding(
padding: const EdgeInsets.all(12.0),
sliver: SliverToBoxAdapter(
child: SupporterGroupCard(
title: const Text("Kiemelt támogatók"),
expanded: true,
supporters: highlightedSupporters,
),
),
),
if (tintaSupporters.isNotEmpty)
SliverPadding(
padding: const EdgeInsets.all(12.0),
sliver: SliverToBoxAdapter(
child: SupporterGroupCard(
icon: const Icon(FilcIcons.tinta),
title: Text(
"Tinta",
style: TextStyle(
foreground: GradientStyles.tintaPaint,
),
),
glow: Colors.purple,
supporters: tintaSupporters,
),
),
),
if (kupakSupporters.isNotEmpty)
SliverPadding(
padding: const EdgeInsets.all(12.0),
sliver: SliverToBoxAdapter(
child: SupporterGroupCard(
icon: const Icon(FilcIcons.kupak),
title: Text(
"Kupak",
style: TextStyle(foreground: GradientStyles.kupakPaint),
),
glow: Colors.lightGreen,
supporters: kupakSupporters,
),
),
),
if (onetimeSupporters.isNotEmpty)
SliverPadding(
padding: const EdgeInsets.all(12.0),
sliver: SliverToBoxAdapter(
child: SupporterGroupCard(
title: const Text("Egyszeri támogatók"),
supporters: onetimeSupporters,
),
),
),
if (patreonSupporters.isNotEmpty)
SliverPadding(
padding: const EdgeInsets.all(12.0),
sliver: SliverToBoxAdapter(
child: SupporterGroupCard(
title: const Text("Régebbi támogatóink"),
supporters: patreonSupporters,
),
),
),
],
),
);
});
}
}