Upgrade Stripe con addebito immediato; downgrade programmato a fine periodo. UX billing più sobria con box info; icone piani. API inviti e OAuth YouTube per staff trasmissione; deep link join; scelta partita programmata o nuova. Co-authored-by: Cursor <cursoragent@cursor.com>
21 lines
579 B
Dart
21 lines
579 B
Dart
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
class InviteStorage {
|
|
static const _keyToken = 'pending_invite_token';
|
|
|
|
static Future<void> saveToken(String token) async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
await prefs.setString(_keyToken, token);
|
|
}
|
|
|
|
static Future<String?> readToken() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
return prefs.getString(_keyToken);
|
|
}
|
|
|
|
static Future<void> clear() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
await prefs.remove(_keyToken);
|
|
}
|
|
}
|