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

55 lines
2.1 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,
super.key,
});
@override
Widget build(BuildContext context) {
final bool inTrialWindow = pangeaController.userController.inTrialWindow;
return ListView.builder(
shrinkWrap: true,
itemCount: controller
.subscriptionController.subscription!.availableSubscriptions.length,
itemBuilder: (BuildContext context, int i) {
final SubscriptionDetails subscription = pangeaController
.subscriptionController.subscription!.availableSubscriptions[i];
return Column(
children: [
ListTile(
title: subscription.isTrial
? Text(L10n.of(context)!.oneWeekTrial)
: Text(
subscription.displayName(context),
),
subtitle: Text(
subscription.isTrial && !inTrialWindow
? L10n.of(context)!.trialPeriodExpired
: subscription.displayPrice(context),
),
trailing: const Icon(Icons.keyboard_arrow_right_outlined),
selected: controller.selectedSubscription == subscription,
selectedTileColor:
Theme.of(context).colorScheme.secondary.withAlpha(16),
enabled: !subscription.isTrial || inTrialWindow,
onTap: () {
controller.selectSubscription(subscription);
},
),
const Divider(height: 1),
],
);
},
);
}
}