diff --git a/filcnaplo/assets/images/btn_github.svg b/filcnaplo/assets/images/btn_github.svg
new file mode 100644
index 0000000..f4b53c1
--- /dev/null
+++ b/filcnaplo/assets/images/btn_github.svg
@@ -0,0 +1,3 @@
+
diff --git a/filcnaplo/assets/images/plus_tier_cap.png b/filcnaplo/assets/images/plus_tier_cap.png
new file mode 100644
index 0000000..ad117d3
Binary files /dev/null and b/filcnaplo/assets/images/plus_tier_cap.png differ
diff --git a/filcnaplo/assets/images/plus_tier_ink.png b/filcnaplo/assets/images/plus_tier_ink.png
new file mode 100644
index 0000000..4afa961
Binary files /dev/null and b/filcnaplo/assets/images/plus_tier_ink.png differ
diff --git a/filcnaplo/assets/images/plus_tier_sponge.png b/filcnaplo/assets/images/plus_tier_sponge.png
new file mode 100644
index 0000000..4920897
Binary files /dev/null and b/filcnaplo/assets/images/plus_tier_sponge.png differ
diff --git a/filcnaplo_mobile_ui/lib/premium/components/active_sponsor_card.dart b/filcnaplo_mobile_ui/lib/premium/components/active_sponsor_card.dart
index 1fc0998..2569bb2 100755
--- a/filcnaplo_mobile_ui/lib/premium/components/active_sponsor_card.dart
+++ b/filcnaplo_mobile_ui/lib/premium/components/active_sponsor_card.dart
@@ -1,5 +1,5 @@
import 'package:filcnaplo/icons/filc_icons.dart';
-import 'package:filcnaplo_mobile_ui/premium/premium_screen.dart';
+import 'package:filcnaplo_mobile_ui/premium/plus_screen.dart';
import 'package:refilc_plus/models/premium_scopes.dart';
import 'package:refilc_plus/providers/premium_provider.dart';
import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
@@ -85,7 +85,7 @@ class ActiveSponsorCard extends StatelessWidget {
onTap: () {
Navigator.of(context, rootNavigator: true)
.push(MaterialPageRoute(builder: (context) {
- return const PremiumScreen();
+ return const PlusScreen();
}));
},
child: Padding(
diff --git a/filcnaplo_mobile_ui/lib/premium/components/github_button.dart b/filcnaplo_mobile_ui/lib/premium/components/github_button.dart
new file mode 100644
index 0000000..a04bc86
--- /dev/null
+++ b/filcnaplo_mobile_ui/lib/premium/components/github_button.dart
@@ -0,0 +1,113 @@
+import 'package:filcnaplo/theme/colors/colors.dart';
+import 'package:refilc_plus/providers/premium_provider.dart';
+import 'package:refilc_plus/ui/mobile/premium/activation_view/activation_view.dart';
+import 'package:flutter/material.dart';
+import 'package:flutter_feather_icons/flutter_feather_icons.dart';
+import 'package:flutter_svg/svg.dart';
+import 'package:provider/provider.dart';
+
+class GithubLoginButton extends StatelessWidget {
+ const GithubLoginButton({super.key});
+
+ @override
+ Widget build(BuildContext context) {
+ final premium = Provider.of(context);
+
+ return Card(
+ margin: EdgeInsets.zero,
+ elevation: 0,
+ color: const Color(0xFFC1CBDF),
+ shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16.0)),
+ child: InkWell(
+ borderRadius: BorderRadius.circular(14.0),
+ onTap: () {
+ if (premium.hasPremium) {
+ premium.auth.refreshAuth(removePremium: true);
+ ScaffoldMessenger.of(context).showSnackBar(SnackBar(
+ content: Text(
+ "reFilc+ támogatás deaktiválva!",
+ style: TextStyle(
+ color: AppColors.of(context).text,
+ fontWeight: FontWeight.bold,
+ fontSize: 18.0),
+ ),
+ backgroundColor: Theme.of(context).scaffoldBackgroundColor,
+ ));
+ return;
+ }
+
+ Navigator.of(context).push(MaterialPageRoute(builder: (context) {
+ return const PremiumActivationView();
+ }));
+ },
+ child: Padding(
+ padding: const EdgeInsets.symmetric(vertical: 12.0),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ Stack(
+ children: [
+ SvgPicture.asset(
+ "assets/images/btn_github.svg",
+ height: 28.0,
+ ),
+ Positioned.fill(
+ child: Align(
+ alignment: Alignment.bottomRight,
+ child: Transform.translate(
+ offset: const Offset(3.5, 4.6),
+ child: Container(
+ padding: const EdgeInsets.all(4.0),
+ decoration: const BoxDecoration(
+ color: Color(0xFFC1CBDF),
+ // color: Colors.red,
+ shape: BoxShape.circle,
+ ),
+ child: const SizedBox(
+ height: 10.0,
+ width: 10.0,
+ ),
+ ),
+ ),
+ ),
+ ),
+ Positioned.fill(
+ child: Align(
+ alignment: Alignment.bottomRight,
+ child: Transform.translate(
+ offset: const Offset(2.0, 2.0),
+ child: Icon(
+ premium.hasPremium
+ ? FeatherIcons.minusCircle
+ : FeatherIcons.plusCircle,
+ color: const Color(0xFF243F76),
+ size: 14.0,
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
+ const SizedBox(
+ width: 18.0,
+ ),
+ Text(
+ premium.hasPremium
+ ? "Github szétkapcsolása"
+ : "Fiók összekötése Github-al",
+ style: const TextStyle(
+ fontWeight: FontWeight.w600,
+ fontSize: 18,
+ color: Color(0xFF243F76),
+ ),
+ ),
+ const SizedBox(
+ width: 4.0,
+ ),
+ ],
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/filcnaplo_mobile_ui/lib/premium/components/plan_card.dart b/filcnaplo_mobile_ui/lib/premium/components/plan_card.dart
index e2ef406..effd679 100755
--- a/filcnaplo_mobile_ui/lib/premium/components/plan_card.dart
+++ b/filcnaplo_mobile_ui/lib/premium/components/plan_card.dart
@@ -1,154 +1,223 @@
-import 'package:filcnaplo/theme/colors/colors.dart';
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
-class PremiumPlanCard extends StatelessWidget {
- const PremiumPlanCard({
+class PlusPlanCard extends StatelessWidget {
+ const PlusPlanCard({
super.key,
- this.icon,
- this.title,
- this.description,
+ required this.iconPath,
+ required this.title,
+ required this.description,
+ required this.color,
this.price = 0,
this.url,
- this.gradient,
this.active = false,
+ this.borderRadius,
+ this.features = const [],
});
- final Widget? icon;
- final Widget? title;
- final int price;
- final Widget? description;
- final String? url;
- final Gradient? gradient;
+ final String iconPath;
+ final String title;
+ final String description;
+ final Color color;
+ final double price;
+ final Uri? url;
final bool active;
+ final BorderRadiusGeometry? borderRadius;
+ final List> features;
@override
Widget build(BuildContext context) {
- return Card(
- margin: EdgeInsets.zero,
- shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20.0)),
- child: InkWell(
- customBorder:
- RoundedRectangleBorder(borderRadius: BorderRadius.circular(20.0)),
- onTap: () {
- if (url != null) {
- launchUrl(
- Uri.parse(url!),
- mode: LaunchMode.externalApplication,
- );
- }
- },
+ return GestureDetector(
+ onTap: () {
+ if (url != null) {
+ launchUrl(
+ url!,
+ mode: LaunchMode.externalApplication,
+ );
+ }
+ },
+ child: Card(
+ margin: EdgeInsets.zero,
+ shape: RoundedRectangleBorder(
+ borderRadius: borderRadius!,
+ ),
+ shadowColor: Colors.transparent,
+ surfaceTintColor: Theme.of(context).colorScheme.background,
child: Padding(
- padding: const EdgeInsets.all(20.0),
+ padding: const EdgeInsets.only(
+ top: 18.0, bottom: 16.0, left: 22.0, right: 18.0),
child: Column(
children: [
Row(
- crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
- if (!active)
- Expanded(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- if (icon != null) ...[
- IconTheme(
- data: Theme.of(context)
- .iconTheme
- .copyWith(size: 42.0),
- child: icon!,
- ),
- const SizedBox(height: 12.0),
- ],
- DefaultTextStyle(
- style: Theme.of(context)
- .textTheme
- .displaySmall!
- .copyWith(
- fontWeight: FontWeight.bold,
- fontSize: 25.0),
- child: title!,
- ),
- ],
+ Row(
+ children: [
+ Image.asset(
+ iconPath,
+ width: 25.0,
+ height: 25.0,
),
- )
- else
- Expanded(
- child: Align(
- alignment: Alignment.centerLeft,
- child: Container(
- decoration: BoxDecoration(
- gradient: gradient,
- borderRadius: BorderRadius.circular(99.0),
- ),
- child: Container(
- decoration: BoxDecoration(
- color: Theme.of(context).scaffoldBackgroundColor,
- borderRadius: BorderRadius.circular(99.0),
+ const SizedBox(
+ width: 16.0,
+ ),
+ Text(
+ title,
+ style: TextStyle(
+ fontSize: 22.0,
+ color: color,
+ fontWeight: FontWeight.w600,
+ height: 1.2,
+ ),
+ ),
+ ],
+ ),
+ Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(20.0),
+ gradient: active
+ ? const LinearGradient(
+ begin: Alignment.topLeft,
+ end: Alignment.bottomRight,
+ colors: [
+ Color.fromARGB(255, 196, 213, 253),
+ Color.fromARGB(255, 227, 235, 250),
+ Color.fromARGB(255, 214, 226, 250),
+ ],
+ )
+ : const LinearGradient(
+ colors: [
+ Color(0xFFEFF4FE),
+ Color(0xFFEFF4FE),
+ ],
),
- margin: const EdgeInsets.all(4.0),
- padding:
- const EdgeInsets.symmetric(horizontal: 12.0),
- child: const Text(
- "Aktív",
- style: TextStyle(
- fontWeight: FontWeight.bold,
- fontSize: 20.0,
- ),
- ),
- ),
+ ),
+ padding: const EdgeInsets.all(4.0),
+ child: Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(20.0),
+ color: const Color(0xFFEFF4FE),
+ ),
+ padding: const EdgeInsets.symmetric(
+ horizontal: 8.0, vertical: 0.0),
+ child: Text(
+ active
+ ? 'Aktív'
+ : '${price.toStringAsFixed(2).replaceAll('.', ',')} €',
+ style: const TextStyle(
+ fontSize: 16.6,
+ color: Color(0xFF243F76),
+ fontWeight: FontWeight.w600,
),
),
),
- Text.rich(
- TextSpan(children: [
- TextSpan(text: "\$$price"),
- TextSpan(
- text: " / hó",
- style: TextStyle(
- color: Theme.of(context)
- .textTheme
- .bodyMedium!
- .color!
- .withOpacity(.7)),
- ),
- ]),
- style: const TextStyle(
- fontWeight: FontWeight.bold, fontSize: 24.0),
),
],
),
- if (active) ...[
- const SizedBox(height: 18.0),
- Row(
- children: [
- if (icon != null) ...[
- IconTheme(
- data: Theme.of(context).iconTheme.copyWith(
- size: 24.0, color: AppColors.of(context).text),
- child: icon!,
- ),
- ],
- const SizedBox(width: 12.0),
- DefaultTextStyle(
- style: Theme.of(context).textTheme.displaySmall!.copyWith(
- fontWeight: FontWeight.bold, fontSize: 25.0),
- child: title!,
- ),
- ],
- ),
- ],
- const SizedBox(height: 6.0),
- if (description != null)
- DefaultTextStyle(
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
- color: Theme.of(context)
- .textTheme
- .bodyMedium!
- .color!
- .withOpacity(.8),
- fontSize: 18),
- child: description!,
+ const SizedBox(
+ height: 12.0,
+ ),
+ Text(
+ description,
+ style: TextStyle(
+ color: const Color(0xFF011234).withOpacity(0.6),
+ fontSize: 13.69,
+ fontWeight: FontWeight.w500,
),
+ ),
+ const SizedBox(
+ height: 14.20,
+ ),
+ Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: features
+ .map((e) => Column(
+ children: [
+ const SizedBox(
+ height: 10.0,
+ ),
+ Row(
+ children: [
+ SizedBox(
+ width: 22.22,
+ child: Text(
+ e[0],
+ style: const TextStyle(fontSize: 18.0),
+ ),
+ ),
+ const SizedBox(
+ width: 14.0,
+ ),
+ Expanded(
+ child: e[1].endsWith('tier_benefits')
+ ? Text.rich(
+ style: const TextStyle(
+ height: 1.2,
+ fontWeight: FontWeight.w500,
+ color: Color(0xFF011234),
+ fontSize: 13.69,
+ ),
+ TextSpan(
+ children: [
+ const TextSpan(
+ text: 'Minden ',
+ ),
+ e[1].startsWith('cap')
+ ? const TextSpan(
+ text: 'Kupak',
+ style: TextStyle(
+ color:
+ Color(0xFF47BB00),
+ fontWeight:
+ FontWeight.w600,
+ ),
+ )
+ : const TextSpan(
+ children: [
+ TextSpan(
+ text: 'Kupak',
+ style: TextStyle(
+ color: Color(
+ 0xFF47BB00),
+ fontWeight:
+ FontWeight.w600,
+ ),
+ ),
+ TextSpan(
+ text: ' és ',
+ ),
+ TextSpan(
+ text: 'Tinta',
+ style: TextStyle(
+ color: Color(
+ 0xFF0061BB),
+ fontWeight:
+ FontWeight.w600,
+ ),
+ ),
+ ],
+ ),
+ const TextSpan(text: ' előny'),
+ ],
+ ),
+ )
+ : Text(
+ e[1],
+ maxLines: 2,
+ style: const TextStyle(
+ height: 1.2,
+ color: Color(0xFF011234),
+ fontWeight: FontWeight.w500,
+ fontSize: 13.69,
+ ),
+ ),
+ ),
+ ],
+ ),
+ ],
+ ))
+ .toList(),
+ ),
],
),
),
diff --git a/filcnaplo_mobile_ui/lib/premium/plus_screen.dart b/filcnaplo_mobile_ui/lib/premium/plus_screen.dart
index 9d99d17..cde236d 100644
--- a/filcnaplo_mobile_ui/lib/premium/plus_screen.dart
+++ b/filcnaplo_mobile_ui/lib/premium/plus_screen.dart
@@ -1,9 +1,21 @@
+import 'package:filcnaplo_mobile_ui/premium/components/plan_card.dart';
import 'package:flutter_feather_icons/flutter_feather_icons.dart';
import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
+import 'package:refilc_plus/providers/premium_provider.dart';
+import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
+
+import 'components/active_sponsor_card.dart';
+import 'components/github_button.dart';
class PlusScreen extends StatelessWidget {
const PlusScreen({super.key});
+ Uri parseTierUri({required String tierId}) {
+ return Uri.parse(
+ 'https://github.com/sponsors/refilc/sponsorships?tier_id=$tierId&preview=true');
+ }
+
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -21,11 +33,11 @@ class PlusScreen extends StatelessWidget {
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
- Theme.of(context).scaffoldBackgroundColor.withOpacity(0.2),
- Theme.of(context).scaffoldBackgroundColor.withOpacity(0.3),
+ Theme.of(context).scaffoldBackgroundColor.withOpacity(0.1),
+ Theme.of(context).scaffoldBackgroundColor.withOpacity(0.15),
+ Theme.of(context).scaffoldBackgroundColor.withOpacity(0.25),
+ Theme.of(context).scaffoldBackgroundColor.withOpacity(0.4),
Theme.of(context).scaffoldBackgroundColor.withOpacity(0.5),
- Theme.of(context).scaffoldBackgroundColor.withOpacity(0.8),
- Theme.of(context).scaffoldBackgroundColor,
],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
@@ -44,11 +56,17 @@ class PlusScreen extends StatelessWidget {
Theme.of(context)
.scaffoldBackgroundColor
.withOpacity(0.4),
+ Theme.of(context)
+ .scaffoldBackgroundColor
+ .withOpacity(0.6),
+ Theme.of(context)
+ .scaffoldBackgroundColor
+ .withOpacity(0.9),
Theme.of(context).scaffoldBackgroundColor,
],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
- stops: const [0.6, 0.7, 1.0],
+ stops: const [0.0, 0.1, 0.15, 0.18, 0.22],
),
),
child: Padding(
@@ -57,51 +75,496 @@ class PlusScreen extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- const Text(
- 'reFilc+',
- style: TextStyle(
- fontSize: 33,
- color: Color(0xFF0a1c41),
- fontWeight: FontWeight.bold,
- ),
- ),
- IconButton(
- onPressed: () => Navigator.of(context).pop(),
- icon: const Icon(
- FeatherIcons.x,
- color: Colors.black,
- ),
- )
- ],
- ),
- Text.rich(
- TextSpan(
- text: 'Még több reFilc, olcsóbban,\nmint bármi más!',
- style: const TextStyle(
- height: 1.2,
- fontSize: 22,
- color: Color(0xFF0A1C41),
- fontWeight: FontWeight.w600,
- ),
+ // heading (title, x button)
+ Padding(
+ padding: const EdgeInsets.only(left: 12.0),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
- WidgetSpan(
- child: Transform.translate(
- offset: const Offset(1.0, -5.5),
- child: Text(
- '1',
- style: TextStyle(
- fontSize: 14.4,
- color: const Color(0xFF0A1C41)
- .withOpacity(0.5),
- fontWeight: FontWeight.w600,
+ const Text(
+ 'reFilc+',
+ style: TextStyle(
+ fontSize: 33,
+ color: Color(0xFF0a1c41),
+ fontWeight: FontWeight.bold,
+ ),
+ ),
+ IconButton(
+ onPressed: () => Navigator.of(context).pop(),
+ icon: const Icon(
+ FeatherIcons.x,
+ color: Colors.black,
+ ),
+ )
+ ],
+ ),
+ ),
+ Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 12.0),
+ child: Text.rich(
+ TextSpan(
+ text:
+ 'Még több reFilc, olcsóbban,\nmint bármi más!',
+ style: const TextStyle(
+ height: 1.2,
+ fontSize: 22,
+ color: Color(0xFF0A1C41),
+ fontWeight: FontWeight.w600,
+ ),
+ children: [
+ WidgetSpan(
+ child: Transform.translate(
+ offset: const Offset(1.0, -5.5),
+ child: Text(
+ '1',
+ style: TextStyle(
+ fontSize: 14.4,
+ color: const Color(0xFF0A1C41)
+ .withOpacity(0.5),
+ fontWeight: FontWeight.w600,
+ ),
),
),
),
+ ],
+ ),
+ ),
+ ),
+ // cards and description
+ const SizedBox(
+ height: 60,
+ ),
+ Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 12.0),
+ child: Text.rich(
+ TextSpan(
+ children: [
+ const TextSpan(text: 'Támogasd a QwIT'),
+ WidgetSpan(
+ child: Transform.translate(
+ offset: const Offset(1.0, -3.6),
+ child: Text(
+ '2',
+ style: TextStyle(
+ color: const Color(0xFF011234)
+ .withOpacity(0.5),
+ fontSize: 10.0,
+ fontWeight: FontWeight.w500,
+ ),
+ ),
+ ),
+ ),
+ const TextSpan(
+ text:
+ ' csapatát, és szerezz cserébe pár kényelmes jutalmat!',
+ ),
+ ],
+ style: TextStyle(
+ color: const Color(0xFF011234).withOpacity(0.6),
+ fontWeight: FontWeight.w500,
),
+ ),
+ ),
+ ),
+ const SizedBox(
+ height: 18,
+ ),
+ PlusPlanCard(
+ active: ActiveSponsorCard.estimateLevel(
+ context.watch().scopes) ==
+ PremiumFeatureLevel.cap,
+ iconPath: 'assets/images/plus_tier_cap.png',
+ title: 'Kupak',
+ description:
+ 'Több személyre szabás, több fiók, egyszerű feladatfeljegyzés.',
+ color: const Color(0xFF47BB00),
+ url: parseTierUri(tierId: '371828'),
+ price: 0.99,
+ borderRadius: const BorderRadius.vertical(
+ top: Radius.circular(16.0),
+ bottom: Radius.circular(8.0)),
+ features: const [
+ ['✨', 'Előzetes hozzáférés új verziókhoz'],
+ ['👥', '2 fiók használata egyszerre'],
+ ['👋', 'Egyedi üdvözlő üzenet'],
+ [
+ '📓',
+ 'Korlátlan saját jegyzet és feladat a füzet oldalon'
],
+ ],
+ ),
+ const SizedBox(
+ height: 8.0,
+ ),
+ PlusPlanCard(
+ active: ActiveSponsorCard.estimateLevel(
+ context.watch().scopes) ==
+ PremiumFeatureLevel.ink,
+ iconPath: 'assets/images/plus_tier_ink.png',
+ title: 'Tinta',
+ description:
+ 'Férj hozzá még több funkcióhoz, használj még több profilt és tedd egyszerűbbé mindennapjaid.',
+ color: const Color(0xFF0061BB),
+ url: parseTierUri(tierId: '371944'),
+ price: 2.99,
+ borderRadius: const BorderRadius.vertical(
+ top: Radius.circular(8.0),
+ bottom: Radius.circular(8.0)),
+ features: const [
+ ['🕑', 'Órarend jegyzetek'],
+ ['👥', '5 fiók használata egyszerre'],
+ ['🎓', 'Összesített átlagszámoló'],
+ ['🟦', 'Live Activity szín'],
+ ['🖋️', 'cap_tier_benefits'],
+ ],
+ ),
+ const SizedBox(
+ height: 8.0,
+ ),
+ PlusPlanCard(
+ active: ActiveSponsorCard.estimateLevel(
+ context.watch().scopes) ==
+ PremiumFeatureLevel.sponge,
+ iconPath: 'assets/images/plus_tier_sponge.png',
+ title: 'Szivacs',
+ description:
+ 'Férj hozzá még több funkcióhoz, használj még több profilt és tedd egyszerűbbé mindennapjaid.',
+ color: const Color(0xFFFFC700),
+ url: parseTierUri(tierId: '371945'),
+ price: 4.99,
+ borderRadius: const BorderRadius.vertical(
+ top: Radius.circular(8.0),
+ bottom: Radius.circular(16.0)),
+ features: const [
+ ['📱', 'Alkalmazás ikonjának megváltoztatása'],
+ ['👥', 'Korlátlan fiók használata egyszerre'],
+ ['📒', 'Fejlettebb cél kitűzés'],
+ ['🔤', 'Egyedi betütípusok'],
+ ['🖋️', 'ink_cap_tier_benefits'],
+ ],
+ ),
+ const SizedBox(
+ height: 18.0,
+ ),
+ const GithubLoginButton(),
+ const SizedBox(
+ height: 30.0,
+ ),
+ Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 12.0),
+ child: Text(
+ 'Gyakori kérdések',
+ style: TextStyle(
+ color: const Color(0xFF011234).withOpacity(0.6),
+ fontWeight: FontWeight.w500,
+ ),
+ ),
+ ),
+ const SizedBox(
+ height: 18,
+ ),
+ Card(
+ margin: EdgeInsets.zero,
+ shape: const RoundedRectangleBorder(
+ borderRadius: BorderRadius.vertical(
+ top: Radius.circular(16.0),
+ bottom: Radius.circular(8.0),
+ ),
+ ),
+ shadowColor: Colors.transparent,
+ surfaceTintColor:
+ Theme.of(context).colorScheme.background,
+ child: Padding(
+ padding: const EdgeInsets.only(
+ top: 18.0,
+ bottom: 16.0,
+ left: 22.0,
+ right: 18.0,
+ ),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ const Text(
+ 'Mire költitek a pénzt?',
+ style: TextStyle(
+ fontSize: 16.6,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ const SizedBox(
+ height: 14.0,
+ ),
+ Text.rich(
+ TextSpan(
+ style: TextStyle(
+ color: const Color(0xFF011234)
+ .withOpacity(0.6),
+ fontWeight: FontWeight.w500,
+ ),
+ children: [
+ const TextSpan(
+ text:
+ 'A támogatásokból kapott pénz elsősorban az Apple',
+ ),
+ WidgetSpan(
+ child: Transform.translate(
+ offset: const Offset(1.0, -3.6),
+ child: Text(
+ '3',
+ style: TextStyle(
+ color: const Color(0xFF011234)
+ .withOpacity(0.5),
+ fontSize: 10.0,
+ fontWeight: FontWeight.w500,
+ ),
+ ),
+ ),
+ ),
+ const TextSpan(
+ text:
+ ' Developer Program évi \$100-os díját, valamint az API mögött álló szerverek és a reFilc domain címek árát fedezi, a maradékot egyéb fejlesztésekre, fejlesztői fagyizásra fordítjuk.',
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ const SizedBox(
+ height: 8.0,
+ ),
+ Card(
+ margin: EdgeInsets.zero,
+ shape: const RoundedRectangleBorder(
+ borderRadius: BorderRadius.vertical(
+ top: Radius.circular(8.0),
+ bottom: Radius.circular(16.0),
+ ),
+ ),
+ shadowColor: Colors.transparent,
+ surfaceTintColor:
+ Theme.of(context).colorScheme.background,
+ child: Padding(
+ padding: const EdgeInsets.only(
+ top: 18.0,
+ bottom: 16.0,
+ left: 22.0,
+ right: 18.0,
+ ),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ const Text(
+ 'Még mindig nyílt a forráskód?',
+ style: TextStyle(
+ fontSize: 16.6,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ const SizedBox(
+ height: 14.0,
+ ),
+ Text(
+ 'Igen, a reFilc teljesen nyílt forráskódú, és ez így is fog maradni. A reFilc+ funkcióinak forráskódjához bármely támogatónk hozzáférhet, ha ezt Discord-on kérelmezi.',
+ style: TextStyle(
+ color:
+ const Color(0xFF011234).withOpacity(0.6),
+ fontWeight: FontWeight.w500,
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ const SizedBox(
+ height: 30.0,
+ ),
+ Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 12.0),
+ child: Text(
+ 'Magyarázatok',
+ style: TextStyle(
+ color: const Color(0xFF011234).withOpacity(0.6),
+ fontWeight: FontWeight.w500,
+ ),
+ ),
+ ),
+ const SizedBox(
+ height: 18,
+ ),
+ Card(
+ margin: EdgeInsets.zero,
+ shape: const RoundedRectangleBorder(
+ borderRadius: BorderRadius.vertical(
+ top: Radius.circular(8.0),
+ bottom: Radius.circular(16.0),
+ ),
+ ),
+ shadowColor: Colors.transparent,
+ surfaceTintColor:
+ Theme.of(context).colorScheme.background,
+ child: Padding(
+ padding: const EdgeInsets.only(
+ top: 18.0,
+ bottom: 16.0,
+ left: 22.0,
+ right: 18.0,
+ ),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Row(
+ children: [
+ Container(
+ decoration: BoxDecoration(
+ color: const Color(0xff011234),
+ borderRadius: BorderRadius.circular(20.0),
+ ),
+ padding: const EdgeInsets.symmetric(
+ horizontal: 10.0,
+ vertical: 2.5,
+ ),
+ child: const Text(
+ '1',
+ style: TextStyle(
+ color: Colors.white,
+ fontWeight: FontWeight.w500,
+ ),
+ ),
+ ),
+ const SizedBox(
+ width: 14.0,
+ ),
+ const Expanded(
+ child: Text(
+ 'A szolgáltatás legalacsonyabb szintje olcsóbb a legtöbb ismert előfizetésnél, viszont előfordulhatnak kivételek.',
+ maxLines: 5,
+ style: TextStyle(
+ fontWeight: FontWeight.w500,
+ fontSize: 14.4,
+ height: 1.3,
+ ),
+ ),
+ ),
+ ],
+ ),
+ const SizedBox(
+ height: 14.0,
+ ),
+ Row(
+ children: [
+ Container(
+ decoration: BoxDecoration(
+ color: const Color(0xff011234),
+ borderRadius: BorderRadius.circular(20.0),
+ ),
+ padding: const EdgeInsets.symmetric(
+ horizontal: 8.8,
+ vertical: 2.5,
+ ),
+ child: const Text(
+ '2',
+ style: TextStyle(
+ color: Colors.white,
+ fontWeight: FontWeight.w500,
+ ),
+ ),
+ ),
+ const SizedBox(
+ width: 14.0,
+ ),
+ const Expanded(
+ child: Text(
+ 'A "QwIT" a "QwIT Development" rövid neve, ez a fejlesztői csapat neve, mely a reFilc és egyéb projektek mögött áll.',
+ maxLines: 5,
+ style: TextStyle(
+ fontWeight: FontWeight.w500,
+ fontSize: 14.4,
+ height: 1.3,
+ ),
+ ),
+ ),
+ ],
+ ),
+ const SizedBox(
+ height: 14.0,
+ ),
+ Row(
+ children: [
+ Container(
+ decoration: BoxDecoration(
+ color: const Color(0xff011234),
+ borderRadius: BorderRadius.circular(20.0),
+ ),
+ padding: const EdgeInsets.symmetric(
+ horizontal: 8.6,
+ vertical: 2.5,
+ ),
+ child: const Text(
+ '3',
+ style: TextStyle(
+ color: Colors.white,
+ fontWeight: FontWeight.w500,
+ ),
+ ),
+ ),
+ const SizedBox(
+ width: 14.0,
+ ),
+ const Expanded(
+ child: Text(
+ 'Az "Apple" az Apple Inc. védjegye.',
+ maxLines: 5,
+ style: TextStyle(
+ fontWeight: FontWeight.w500,
+ fontSize: 14.4,
+ height: 1.3,
+ ),
+ ),
+ ),
+ ],
+ ),
+ const SizedBox(
+ height: 14.0,
+ ),
+ Row(
+ children: [
+ Container(
+ decoration: BoxDecoration(
+ color: const Color(0xff011234),
+ borderRadius: BorderRadius.circular(20.0),
+ ),
+ padding: const EdgeInsets.symmetric(
+ horizontal: 7.9,
+ vertical: 2.5,
+ ),
+ child: const Text(
+ '4',
+ style: TextStyle(
+ color: Colors.white,
+ fontWeight: FontWeight.w500,
+ ),
+ ),
+ ),
+ const SizedBox(
+ width: 14.0,
+ ),
+ const Expanded(
+ child: Text(
+ 'Az árak jelképes összegek és csak körülbelül egyeznek a valós, Github-on látható, USA-dollárban feltűntetett árakkal.',
+ maxLines: 5,
+ style: TextStyle(
+ fontWeight: FontWeight.w500,
+ fontSize: 14.4,
+ height: 1.3,
+ ),
+ ),
+ ),
+ ],
+ ),
+ ],
+ ),
),
),
],
diff --git a/filcnaplo_mobile_ui/lib/premium/premium_screen.dart b/filcnaplo_mobile_ui/lib/premium/premium_screen.dart
index 35f9d31..1105d66 100755
--- a/filcnaplo_mobile_ui/lib/premium/premium_screen.dart
+++ b/filcnaplo_mobile_ui/lib/premium/premium_screen.dart
@@ -1,360 +1,360 @@
-import 'package:filcnaplo/api/client.dart';
-import 'package:filcnaplo/icons/filc_icons.dart';
-import 'package:filcnaplo/models/supporter.dart';
-import 'package:filcnaplo_mobile_ui/premium/components/active_sponsor_card.dart';
-import 'package:filcnaplo_mobile_ui/premium/components/github_card.dart';
-import 'package:filcnaplo_mobile_ui/premium/components/github_connect_button.dart';
-import 'package:filcnaplo_mobile_ui/premium/components/goal_card.dart';
-import 'package:filcnaplo_mobile_ui/premium/components/plan_card.dart';
-import 'package:filcnaplo_mobile_ui/premium/components/reward_card.dart';
-import 'package:filcnaplo_mobile_ui/premium/components/supporters_button.dart';
-import 'package:filcnaplo_mobile_ui/premium/styles/gradients.dart';
-import 'package:refilc_plus/providers/premium_provider.dart';
-import 'package:refilc_plus/ui/mobile/premium/activation_view/activation_view.dart';
-import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
-import 'package:flutter/material.dart';
-import 'package:flutter_svg/svg.dart';
-import 'package:provider/provider.dart';
+// import 'package:filcnaplo/api/client.dart';
+// import 'package:filcnaplo/icons/filc_icons.dart';
+// import 'package:filcnaplo/models/supporter.dart';
+// import 'package:filcnaplo_mobile_ui/premium/components/active_sponsor_card.dart';
+// import 'package:filcnaplo_mobile_ui/premium/components/github_card.dart';
+// import 'package:filcnaplo_mobile_ui/premium/components/github_connect_button.dart';
+// import 'package:filcnaplo_mobile_ui/premium/components/goal_card.dart';
+// import 'package:filcnaplo_mobile_ui/premium/components/plan_card.dart';
+// import 'package:filcnaplo_mobile_ui/premium/components/reward_card.dart';
+// import 'package:filcnaplo_mobile_ui/premium/components/supporters_button.dart';
+// import 'package:filcnaplo_mobile_ui/premium/styles/gradients.dart';
+// import 'package:refilc_plus/providers/premium_provider.dart';
+// import 'package:refilc_plus/ui/mobile/premium/activation_view/activation_view.dart';
+// import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
+// import 'package:flutter/material.dart';
+// import 'package:flutter_svg/svg.dart';
+// import 'package:provider/provider.dart';
-class PremiumScreen extends StatelessWidget {
- const PremiumScreen({super.key});
+// class PremiumScreen extends StatelessWidget {
+// const PremiumScreen({super.key});
- @override
- Widget build(BuildContext context) {
- final middleColor = Theme.of(context).brightness == Brightness.dark
- ? const Color.fromARGB(255, 20, 33, 57)
- : const Color.fromARGB(255, 10, 55, 140);
+// @override
+// Widget build(BuildContext context) {
+// final middleColor = Theme.of(context).brightness == Brightness.dark
+// ? const Color.fromARGB(255, 20, 33, 57)
+// : const Color.fromARGB(255, 10, 55, 140);
- final future = FilcAPI.getSupporters();
+// final future = FilcAPI.getSupporters();
- return FutureBuilder(
- future: future,
- builder: (context, snapshot) {
- return Scaffold(
- body: CustomScrollView(
- physics: const ClampingScrollPhysics(),
- slivers: [
- SliverAppBar(
- surfaceTintColor: Theme.of(context).scaffoldBackgroundColor,
- automaticallyImplyLeading: false,
- flexibleSpace: Container(
- decoration: BoxDecoration(
- gradient: LinearGradient(
- begin: Alignment.topCenter,
- end: Alignment.bottomCenter,
- colors: [
- const Color.fromARGB(255, 65, 51, 143),
- middleColor,
- ],
- ),
- ),
- ),
- actions: [
- Padding(
- padding: const EdgeInsets.only(right: 8.0),
- child: IconButton(
- onPressed: () {
- Navigator.of(context).pop();
- },
- icon: const Icon(Icons.close, color: Colors.white),
- ),
- ),
- ],
- ),
- SliverPadding(
- padding: const EdgeInsets.only(bottom: 25.0),
- sliver: SliverToBoxAdapter(
- child: Container(
- decoration: BoxDecoration(
- gradient: LinearGradient(
- begin: Alignment.topCenter,
- end: Alignment.bottomCenter,
- colors: [
- middleColor,
- Theme.of(context).scaffoldBackgroundColor,
- ],
- ),
- ),
- child: Row(
- children: [
- Expanded(
- child: Padding(
- padding:
- const EdgeInsets.symmetric(horizontal: 24.0),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- const SizedBox(height: 64.0),
- Row(
- children: [
- Image.asset(
- "assets/icons/ic_rounded.png",
- width: 69.0,
- height: 69.0,
- ),
- const SizedBox(
- width: 15.0,
- ),
- const Text(
- "reFilc+",
- style: TextStyle(
- fontWeight: FontWeight.w800,
- fontSize: 35.0,
- color: Colors.white),
- ),
- ],
- ),
- const SizedBox(height: 12.0),
- const Text(
- "Még több reFilc, olcsóbban, mint bármi más!*",
- style: TextStyle(
- fontWeight: FontWeight.w600,
- fontSize: 25.0,
- color: Colors.white),
- ),
- const SizedBox(height: 15.0),
- Text(
- "Támogasd a QwIT** csapatát, és szerezz cserébe pár kényelmes jutalmat!",
- style: TextStyle(
- fontWeight: FontWeight.w500,
- fontSize: 20,
- color: Colors.white.withOpacity(.8)),
- ),
- const SizedBox(height: 25.0),
- SupportersButton(supporters: future),
- ],
- ),
- ),
- ),
- ],
- ),
- ),
- ),
- ),
- SliverPadding(
- padding: const EdgeInsets.symmetric(horizontal: 24.0)
- .add(const EdgeInsets.only(bottom: 100)),
- sliver: SliverToBoxAdapter(
- child: Column(
- children: [
- PremiumPlanCard(
- icon: const Icon(FilcIcons.kupak),
- title: Text("Kupak",
- style: TextStyle(
- foreground: GradientStyles.kupakPaint)),
- gradient: GradientStyles.kupak,
- price: 2,
- description: const Text(
- "Szabd személyre a filcet és láss részletesebb statisztikákat."),
- url:
- "https://github.com/sponsors/filc/sponsorships?tier_id=238453&preview=true",
- active: ActiveSponsorCard.estimateLevel(
- context.watch().scopes) ==
- PremiumFeatureLevel.cap,
- ),
- const SizedBox(height: 8.0),
- PremiumPlanCard(
- icon: const Icon(FilcIcons.tinta),
- title: Text("Tinta",
- style: TextStyle(
- foreground: GradientStyles.tintaPaint)),
- gradient: GradientStyles.tinta,
- price: 5,
- description: const Text(
- "Kényelmesebb órarend, asztali alkalmazás és célok kitűzése."),
- url:
- "https://github.com/sponsors/filc/sponsorships?tier_id=238454&preview=true",
- active: ActiveSponsorCard.estimateLevel(
- context.watch().scopes) ==
- PremiumFeatureLevel.ink,
- ),
- const SizedBox(height: 12.0),
- PremiumGoalCard(
- progress: snapshot.data?.progress ?? 0,
- target: snapshot.data?.max ?? 1),
- const SizedBox(height: 12.0),
- const GithubConnectButton(),
- Padding(
- padding: const EdgeInsets.symmetric(vertical: 14.0)
- .add(const EdgeInsets.only(top: 12.0)),
- child: const Row(
- children: [
- Icon(FilcIcons.kupak),
- SizedBox(width: 12.0),
- Expanded(
- child: Text(
- "Kupak jutalmak",
- style: TextStyle(
- fontWeight: FontWeight.w500,
- fontSize: 20),
- ),
- ),
- ],
- ),
- ),
- PremiumRewardCard(
- imageKey: "premium_nickname_showcase",
- icon: SvgPicture.asset(
- "assets/images/nickname_icon.svg",
- color: Theme.of(context).iconTheme.color),
- title: const Text("Profil személyre szabás"),
- description: const Text(
- "Állíts be egy saját becenevet és egy profilképet (akár animáltat is!)"),
- ),
- const SizedBox(height: 14.0),
- PremiumRewardCard(
- imageKey: "premium_theme_showcase",
- icon: SvgPicture.asset("assets/images/theme_icon.svg",
- color: Theme.of(context).iconTheme.color),
- title: const Text("Téma+"),
- description: const Text(
- "Válassz saját háttérszínt és kártyaszínt is, akár saját HEX-kóddal!"),
- ),
- const SizedBox(height: 14.0),
- PremiumRewardCard(
- imageKey: "premium_stats_showcase",
- icon: SvgPicture.asset("assets/images/stats_icon.svg",
- color: Theme.of(context).iconTheme.color),
- title: const Text("Részletes jegy statisztika"),
- description: const Text(
- "Válassz heti, havi és háromhavi időtartam közül, és pontosan lásd, mennyi jegyed van."),
- ),
- const SizedBox(height: 14.0),
- const PremiumRewardCard(
- title: Text("Még pár dolog..."),
- description: Text(
- "🔣\tVálassz ikon témát\n✨\tPrémium rang és csevegő a discord szerverünkön\n📬\tElsőbbségi segítségnyújtás"),
- ),
- Padding(
- padding: const EdgeInsets.symmetric(vertical: 14.0)
- .add(const EdgeInsets.only(top: 12.0)),
- child: const Row(
- children: [
- Icon(FilcIcons.tinta),
- SizedBox(width: 12.0),
- Expanded(
- child: Text(
- "Tinta jutalmak",
- style: TextStyle(
- fontWeight: FontWeight.w500,
- fontSize: 20),
- ),
- ),
- ],
- ),
- ),
- PremiumRewardCard(
- imageKey: "premium_timetable_showcase",
- icon: SvgPicture.asset(
- "assets/images/timetable_icon.svg",
- color: Theme.of(context).iconTheme.color),
- title: const Text("Heti órarend nézet"),
- description: const Text(
- "Egy órarend, ami a teljes képernyődet kihasználja, csak nem olyan idegesítő, mint az eKRÉTA féle."),
- ),
- const SizedBox(height: 14.0),
- PremiumRewardCard(
- imageKey: "premium_widget_showcase",
- icon: SvgPicture.asset(
- "assets/images/widget_icon.svg",
- color: Theme.of(context).iconTheme.color),
- title: const Text("Widget"),
- description: const Text(
- "Mindig lásd, milyen órád lesz, a kezdőképernyőd kényelméből."),
- ),
- const SizedBox(height: 14.0),
- PremiumRewardCard(
- soon: true,
- imageKey: "premium_goal_showcase",
- icon: SvgPicture.asset("assets/images/goal_icon.svg",
- color: Theme.of(context).iconTheme.color),
- title: const Text("Cél követés"),
- description: const Text(
- "Add meg, mi a célod, és mi majd kiszámoljuk, hogyan juthatsz oda!"),
- ),
- const SizedBox(height: 14.0),
- PremiumRewardCard(
- soon: true,
- imageKey: "premium_desktop_showcase",
- icon: SvgPicture.asset(
- "assets/images/desktop_icon.svg",
- color: Theme.of(context).iconTheme.color),
- title: const Text("Asztali verzió"),
- description: const Text(
- "Érd el a reFilcet a gépeden is, és menekülj meg a csúnya felhasználói felületektől!"),
- ),
- const SizedBox(height: 14.0),
- const PremiumRewardCard(
- title: Text("Még pár dolog..."),
- description: Text(
- "🖋️\tMinden kupak jutalom\n✨\tKorai hozzáférés új verziókhoz"),
- ),
- Padding(
- padding: const EdgeInsets.symmetric(vertical: 14.0)
- .add(const EdgeInsets.only(top: 12.0)),
- child: const Row(
- children: [
- SizedBox(width: 12.0),
- Expanded(
- child: Text(
- "Mire vársz még?",
- style: TextStyle(
- fontWeight: FontWeight.w500,
- fontSize: 20),
- ),
- ),
- ],
- ),
- ),
- GithubCard(
- onPressed: () {
- Navigator.of(context)
- .push(MaterialPageRoute(builder: (context) {
- return const PremiumActivationView();
- }));
- },
- ),
- Padding(
- padding: const EdgeInsets.symmetric(vertical: 14.0)
- .add(const EdgeInsets.only(top: 12.0)),
- child: const Row(
- children: [
- SizedBox(width: 12.0),
- Expanded(
- child: Text(
- "Gyakori kérdések",
- style: TextStyle(
- fontWeight: FontWeight.w500,
- fontSize: 20),
- ),
- ),
- ],
- ),
- ),
- const PremiumRewardCard(
- title: Text("Mire költitek a pénzt?"),
- description: Text(
- "A pénz elsősorban az appstore évi \$100-os díját fedezi, a maradék a szerver a weboldal és új funkciók fejlesztésére fordítjuk."),
- ),
- const SizedBox(height: 14.0),
- const PremiumRewardCard(
- title: Text("Még mindig nyílt a forráskód?"),
- description: Text(
- "Igen, a reFilc teljesen nyílt forráskódú, és ez így is fog maradni. A prémium funkciók forráskódjához hozzáférnek a támogatók."),
- ),
- const SizedBox(height: 14.0),
- const PremiumRewardCard(
- title: Text("Hol tudok támogatni?"),
- description: Text(
- "A támogatáshoz szükséged van egy Github profilra, amit hozzá kell kötnöd a filc naplóhoz. A Github “Sponsors” funkciója segítségével kezeljük az támogatásod."),
- ),
- ],
- ),
- ),
- ),
- ],
- ),
- );
- });
- }
-}
+// return FutureBuilder(
+// future: future,
+// builder: (context, snapshot) {
+// return Scaffold(
+// body: CustomScrollView(
+// physics: const ClampingScrollPhysics(),
+// slivers: [
+// SliverAppBar(
+// surfaceTintColor: Theme.of(context).scaffoldBackgroundColor,
+// automaticallyImplyLeading: false,
+// flexibleSpace: Container(
+// decoration: BoxDecoration(
+// gradient: LinearGradient(
+// begin: Alignment.topCenter,
+// end: Alignment.bottomCenter,
+// colors: [
+// const Color.fromARGB(255, 65, 51, 143),
+// middleColor,
+// ],
+// ),
+// ),
+// ),
+// actions: [
+// Padding(
+// padding: const EdgeInsets.only(right: 8.0),
+// child: IconButton(
+// onPressed: () {
+// Navigator.of(context).pop();
+// },
+// icon: const Icon(Icons.close, color: Colors.white),
+// ),
+// ),
+// ],
+// ),
+// SliverPadding(
+// padding: const EdgeInsets.only(bottom: 25.0),
+// sliver: SliverToBoxAdapter(
+// child: Container(
+// decoration: BoxDecoration(
+// gradient: LinearGradient(
+// begin: Alignment.topCenter,
+// end: Alignment.bottomCenter,
+// colors: [
+// middleColor,
+// Theme.of(context).scaffoldBackgroundColor,
+// ],
+// ),
+// ),
+// child: Row(
+// children: [
+// Expanded(
+// child: Padding(
+// padding:
+// const EdgeInsets.symmetric(horizontal: 24.0),
+// child: Column(
+// crossAxisAlignment: CrossAxisAlignment.start,
+// children: [
+// const SizedBox(height: 64.0),
+// Row(
+// children: [
+// Image.asset(
+// "assets/icons/ic_rounded.png",
+// width: 69.0,
+// height: 69.0,
+// ),
+// const SizedBox(
+// width: 15.0,
+// ),
+// const Text(
+// "reFilc+",
+// style: TextStyle(
+// fontWeight: FontWeight.w800,
+// fontSize: 35.0,
+// color: Colors.white),
+// ),
+// ],
+// ),
+// const SizedBox(height: 12.0),
+// const Text(
+// "Még több reFilc, olcsóbban, mint bármi más!*",
+// style: TextStyle(
+// fontWeight: FontWeight.w600,
+// fontSize: 25.0,
+// color: Colors.white),
+// ),
+// const SizedBox(height: 15.0),
+// Text(
+// "Támogasd a QwIT** csapatát, és szerezz cserébe pár kényelmes jutalmat!",
+// style: TextStyle(
+// fontWeight: FontWeight.w500,
+// fontSize: 20,
+// color: Colors.white.withOpacity(.8)),
+// ),
+// const SizedBox(height: 25.0),
+// SupportersButton(supporters: future),
+// ],
+// ),
+// ),
+// ),
+// ],
+// ),
+// ),
+// ),
+// ),
+// SliverPadding(
+// padding: const EdgeInsets.symmetric(horizontal: 24.0)
+// .add(const EdgeInsets.only(bottom: 100)),
+// sliver: SliverToBoxAdapter(
+// child: Column(
+// children: [
+// // PremiumPlanCard(
+// // icon: const Icon(FilcIcons.kupak),
+// // title: Text("Kupak",
+// // style: TextStyle(
+// // foreground: GradientStyles.kupakPaint)),
+// // gradient: GradientStyles.kupak,
+// // price: 2,
+// // description: const Text(
+// // "Szabd személyre a filcet és láss részletesebb statisztikákat."),
+// // url:
+// // "https://github.com/sponsors/filc/sponsorships?tier_id=238453&preview=true",
+// // active: ActiveSponsorCard.estimateLevel(
+// // context.watch().scopes) ==
+// // PremiumFeatureLevel.cap,
+// // ),
+// // const SizedBox(height: 8.0),
+// // PremiumPlanCard(
+// // icon: const Icon(FilcIcons.tinta),
+// // title: Text("Tinta",
+// // style: TextStyle(
+// // foreground: GradientStyles.tintaPaint)),
+// // gradient: GradientStyles.tinta,
+// // price: 5,
+// // description: const Text(
+// // "Kényelmesebb órarend, asztali alkalmazás és célok kitűzése."),
+// // url:
+// // "https://github.com/sponsors/filc/sponsorships?tier_id=238454&preview=true",
+// // active: ActiveSponsorCard.estimateLevel(
+// // context.watch().scopes) ==
+// // PremiumFeatureLevel.ink,
+// // ),
+// const SizedBox(height: 12.0),
+// PremiumGoalCard(
+// progress: snapshot.data?.progress ?? 0,
+// target: snapshot.data?.max ?? 1),
+// const SizedBox(height: 12.0),
+// const GithubConnectButton(),
+// Padding(
+// padding: const EdgeInsets.symmetric(vertical: 14.0)
+// .add(const EdgeInsets.only(top: 12.0)),
+// child: const Row(
+// children: [
+// Icon(FilcIcons.kupak),
+// SizedBox(width: 12.0),
+// Expanded(
+// child: Text(
+// "Kupak jutalmak",
+// style: TextStyle(
+// fontWeight: FontWeight.w500,
+// fontSize: 20),
+// ),
+// ),
+// ],
+// ),
+// ),
+// PremiumRewardCard(
+// imageKey: "premium_nickname_showcase",
+// icon: SvgPicture.asset(
+// "assets/images/nickname_icon.svg",
+// color: Theme.of(context).iconTheme.color),
+// title: const Text("Profil személyre szabás"),
+// description: const Text(
+// "Állíts be egy saját becenevet és egy profilképet (akár animáltat is!)"),
+// ),
+// const SizedBox(height: 14.0),
+// PremiumRewardCard(
+// imageKey: "premium_theme_showcase",
+// icon: SvgPicture.asset("assets/images/theme_icon.svg",
+// color: Theme.of(context).iconTheme.color),
+// title: const Text("Téma+"),
+// description: const Text(
+// "Válassz saját háttérszínt és kártyaszínt is, akár saját HEX-kóddal!"),
+// ),
+// const SizedBox(height: 14.0),
+// PremiumRewardCard(
+// imageKey: "premium_stats_showcase",
+// icon: SvgPicture.asset("assets/images/stats_icon.svg",
+// color: Theme.of(context).iconTheme.color),
+// title: const Text("Részletes jegy statisztika"),
+// description: const Text(
+// "Válassz heti, havi és háromhavi időtartam közül, és pontosan lásd, mennyi jegyed van."),
+// ),
+// const SizedBox(height: 14.0),
+// const PremiumRewardCard(
+// title: Text("Még pár dolog..."),
+// description: Text(
+// "🔣\tVálassz ikon témát\n✨\tPrémium rang és csevegő a discord szerverünkön\n📬\tElsőbbségi segítségnyújtás"),
+// ),
+// Padding(
+// padding: const EdgeInsets.symmetric(vertical: 14.0)
+// .add(const EdgeInsets.only(top: 12.0)),
+// child: const Row(
+// children: [
+// Icon(FilcIcons.tinta),
+// SizedBox(width: 12.0),
+// Expanded(
+// child: Text(
+// "Tinta jutalmak",
+// style: TextStyle(
+// fontWeight: FontWeight.w500,
+// fontSize: 20),
+// ),
+// ),
+// ],
+// ),
+// ),
+// PremiumRewardCard(
+// imageKey: "premium_timetable_showcase",
+// icon: SvgPicture.asset(
+// "assets/images/timetable_icon.svg",
+// color: Theme.of(context).iconTheme.color),
+// title: const Text("Heti órarend nézet"),
+// description: const Text(
+// "Egy órarend, ami a teljes képernyődet kihasználja, csak nem olyan idegesítő, mint az eKRÉTA féle."),
+// ),
+// const SizedBox(height: 14.0),
+// PremiumRewardCard(
+// imageKey: "premium_widget_showcase",
+// icon: SvgPicture.asset(
+// "assets/images/widget_icon.svg",
+// color: Theme.of(context).iconTheme.color),
+// title: const Text("Widget"),
+// description: const Text(
+// "Mindig lásd, milyen órád lesz, a kezdőképernyőd kényelméből."),
+// ),
+// const SizedBox(height: 14.0),
+// PremiumRewardCard(
+// soon: true,
+// imageKey: "premium_goal_showcase",
+// icon: SvgPicture.asset("assets/images/goal_icon.svg",
+// color: Theme.of(context).iconTheme.color),
+// title: const Text("Cél követés"),
+// description: const Text(
+// "Add meg, mi a célod, és mi majd kiszámoljuk, hogyan juthatsz oda!"),
+// ),
+// const SizedBox(height: 14.0),
+// PremiumRewardCard(
+// soon: true,
+// imageKey: "premium_desktop_showcase",
+// icon: SvgPicture.asset(
+// "assets/images/desktop_icon.svg",
+// color: Theme.of(context).iconTheme.color),
+// title: const Text("Asztali verzió"),
+// description: const Text(
+// "Érd el a reFilcet a gépeden is, és menekülj meg a csúnya felhasználói felületektől!"),
+// ),
+// const SizedBox(height: 14.0),
+// const PremiumRewardCard(
+// title: Text("Még pár dolog..."),
+// description: Text(
+// "🖋️\tMinden kupak jutalom\n✨\tKorai hozzáférés új verziókhoz"),
+// ),
+// Padding(
+// padding: const EdgeInsets.symmetric(vertical: 14.0)
+// .add(const EdgeInsets.only(top: 12.0)),
+// child: const Row(
+// children: [
+// SizedBox(width: 12.0),
+// Expanded(
+// child: Text(
+// "Mire vársz még?",
+// style: TextStyle(
+// fontWeight: FontWeight.w500,
+// fontSize: 20),
+// ),
+// ),
+// ],
+// ),
+// ),
+// GithubCard(
+// onPressed: () {
+// Navigator.of(context)
+// .push(MaterialPageRoute(builder: (context) {
+// return const PremiumActivationView();
+// }));
+// },
+// ),
+// Padding(
+// padding: const EdgeInsets.symmetric(vertical: 14.0)
+// .add(const EdgeInsets.only(top: 12.0)),
+// child: const Row(
+// children: [
+// SizedBox(width: 12.0),
+// Expanded(
+// child: Text(
+// "Gyakori kérdések",
+// style: TextStyle(
+// fontWeight: FontWeight.w500,
+// fontSize: 20),
+// ),
+// ),
+// ],
+// ),
+// ),
+// const PremiumRewardCard(
+// title: Text("Mire költitek a pénzt?"),
+// description: Text(
+// "A pénz elsősorban az appstore évi \$100-os díját fedezi, a maradék a szerver a weboldal és új funkciók fejlesztésére fordítjuk."),
+// ),
+// const SizedBox(height: 14.0),
+// const PremiumRewardCard(
+// title: Text("Még mindig nyílt a forráskód?"),
+// description: Text(
+// "Igen, a reFilc teljesen nyílt forráskódú, és ez így is fog maradni. A prémium funkciók forráskódjához hozzáférnek a támogatók."),
+// ),
+// const SizedBox(height: 14.0),
+// const PremiumRewardCard(
+// title: Text("Hol tudok támogatni?"),
+// description: Text(
+// "A támogatáshoz szükséged van egy Github profilra, amit hozzá kell kötnöd a filc naplóhoz. A Github “Sponsors” funkciója segítségével kezeljük az támogatásod."),
+// ),
+// ],
+// ),
+// ),
+// ),
+// ],
+// ),
+// );
+// });
+// }
+// }