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,
|
|||
|
|
);
|
|||
|
|
});
|