mirror of
https://github.com/koloideal/Casha.git
synced 2026-08-08 17:51:14 +03:00
step
This commit is contained in:
@@ -1,29 +1,27 @@
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import '../../features/dashboard/provider.dart';
|
||||
import '../models/user_model.dart';
|
||||
import '../services/premium_manager.dart';
|
||||
import 'billing_provider.dart';
|
||||
|
||||
class CurrentUserNotifier extends Notifier<UserModel> {
|
||||
static const _key = 'user_plan';
|
||||
|
||||
@override
|
||||
UserModel build() {
|
||||
final prefs = ref.watch(sharedPreferencesProvider);
|
||||
final planName = prefs.getString(_key);
|
||||
final plan = UserPlan.values.firstWhere(
|
||||
(e) => e.name == planName,
|
||||
orElse: () => UserPlan.free,
|
||||
);
|
||||
return UserModel(plan: plan);
|
||||
final billing = ref.watch(billingServiceProvider);
|
||||
final manager = PremiumManager(prefs, billing);
|
||||
return UserModel(plan: manager.currentPlan);
|
||||
}
|
||||
|
||||
Future<void> setPlan(UserPlan plan) async {
|
||||
final prefs = ref.read(sharedPreferencesProvider);
|
||||
state = UserModel(plan: plan);
|
||||
await prefs.setString(_key, plan.name);
|
||||
}
|
||||
|
||||
Future<void> toggleVip() async {
|
||||
await setPlan(state.isVip ? UserPlan.free : UserPlan.vip);
|
||||
Future<void> refreshFromPremium() async {
|
||||
final prefs = ref.read(sharedPreferencesProvider);
|
||||
final billing = ref.read(billingServiceProvider);
|
||||
final manager = PremiumManager(prefs, billing);
|
||||
state = UserModel(plan: manager.currentPlan);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user