You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
fluffychat/lib/pangea/widgets/subscription/subscription_buttons.dart

58 lines
2.2 KiB
Dart

import 'package:fluffychat/pangea/controllers/pangea_controller.dart';
import 'package:fluffychat/pangea/controllers/subscription_controller.dart';
import 'package:fluffychat/pangea/pages/settings_subscription/settings_subscription.dart';
import 'package:fluffychat/widgets/matrix.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
class SubscriptionButtons extends StatelessWidget {
final SubscriptionManagementController controller;
final PangeaController pangeaController = MatrixState.pangeaController;
SubscriptionButtons({
required this.controller,
Key? key,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return ListView.builder(
shrinkWrap: true,
itemCount: pangeaController
.subscriptionController.subscription!.availableSubscriptions.length,
itemBuilder: (BuildContext context, int i) => Column(
children: [
ListTile(
title: pangeaController.subscriptionController.subscription!
.availableSubscriptions[i].isTrial
? Text(L10n.of(context)!.oneWeekTrial)
: Text(
pangeaController.subscriptionController.subscription!
.availableSubscriptions[i]
.displayName(context),
),
subtitle: Text(
pangeaController.subscriptionController.subscription!
.availableSubscriptions[i]
.displayPrice(context),
),
trailing: const Icon(Icons.keyboard_arrow_right_outlined),
selected: controller.selectedSubscription ==
pangeaController.subscriptionController.subscription!
.availableSubscriptions[i],
selectedTileColor:
Theme.of(context).colorScheme.secondary.withAlpha(16),
onTap: () {
final SubscriptionDetails selected = pangeaController
.subscriptionController
.subscription!
.availableSubscriptions[i];
controller.selectSubscription(selected);
},
),
const Divider(height: 1),
],
),
);
}
}