slrpg-app/lib/main.dart

38 lines
1.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:isar/isar.dart';
import 'package:path_provider/path_provider.dart';
import 'src/app.dart';
import 'src/shared/data/local/collections/user_collection.dart';
import 'src/shared/data/local/collections/cycle_collection.dart';
import 'src/shared/data/local/collections/workout_collection.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// Lock orientation to portrait
await SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
// Initialize Isar database
final dir = await getApplicationDocumentsDirectory();
final isar = await Isar.open(
[UserCollectionSchema, CycleCollectionSchema, WorkoutCollectionSchema],
directory: dir.path,
name: 'slrpg_db',
);
runApp(
ProviderScope(
overrides: [isarProvider.overrideWithValue(isar)],
child: const SLRPGApp(),
),
);
}
// Global Isar provider
final isarProvider = Provider<Isar>((ref) => throw UnimplementedError());