41 lines
1.0 KiB
Dart
41 lines
1.0 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
import 'app.dart';
|
|
import 'core/api.dart';
|
|
import 'core/config.dart';
|
|
import 'core/format.dart';
|
|
import 'core/http_api.dart';
|
|
import 'core/providers.dart';
|
|
|
|
Future<void> main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
final Api api = HttpApi(
|
|
baseUrl: AppConfig.apiBaseUrl,
|
|
prefs: await SharedPreferences.getInstance(),
|
|
);
|
|
|
|
final user = await api.restore();
|
|
final start = user == null ? dateOnly(api.now) : await _latestOrToday(api);
|
|
|
|
runApp(
|
|
ProviderScope(
|
|
overrides: [
|
|
apiProvider.overrideWithValue(api),
|
|
startDateProvider.overrideWithValue(start),
|
|
sessionProvider.overrideWith(() => SessionNotifier(user)),
|
|
],
|
|
child: const SrsApp(),
|
|
),
|
|
);
|
|
}
|
|
|
|
Future<DateTime> _latestOrToday(Api api) async {
|
|
try {
|
|
return await api.latestDrawDate();
|
|
} on ApiException {
|
|
return dateOnly(api.now);
|
|
}
|
|
}
|