20 lines
745 B
Dart
20 lines
745 B
Dart
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||
import '../services/license_service.dart';
|
||
|
||
/// ライセンス状態の非同期プロバイダー
|
||
///
|
||
/// アプリ起動時に一度だけVPSに問い合わせ、結果をキャッシュする。
|
||
/// 手動更新は [licenseStatusProvider].invalidate() を呼ぶ。
|
||
final licenseStatusProvider = FutureProvider<LicenseStatus>((ref) async {
|
||
return LicenseService.checkStatus();
|
||
});
|
||
|
||
/// Pro版かどうか(ナビゲーション・機能解放の分岐に使う)
|
||
final isProProvider = Provider<bool>((ref) {
|
||
final statusAsync = ref.watch(licenseStatusProvider);
|
||
return statusAsync.maybeWhen(
|
||
data: (status) => status == LicenseStatus.pro,
|
||
orElse: () => false,
|
||
);
|
||
});
|