29 lines
1.1 KiB
Dart
29 lines
1.1 KiB
Dart
|
|
import "package:flutter/material.dart";
|
|
import "package:flutter_riverpod/flutter_riverpod.dart";
|
|
import "package:hive_flutter/hive_flutter.dart";
|
|
import "package:path_provider/path_provider.dart";
|
|
|
|
import "package:smol_mail/data/providers/providers.dart";
|
|
import "package:smol_mail/smol/config.dart";
|
|
import "package:smol_mail/smol/store.dart";
|
|
import "package:smol_mail/presentation/app_widget.dart";
|
|
|
|
void main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
// Hive.initFlutter() defaults to getApplicationDocumentsDirectory(), which
|
|
// on Linux resolves to the user's actual ~/Documents folder (XDG_DOCUMENTS_DIR)
|
|
// rather than app-private storage — getApplicationSupportDirectory() is the
|
|
// one that's actually sandboxed per-app on every platform.
|
|
final dataDir = await getApplicationSupportDirectory();
|
|
Hive.init(dataDir.path);
|
|
final store = await SmolStore.open(dbPath: "${dataDir.path}/smol-mail.db");
|
|
applyPresetServer(store);
|
|
|
|
runApp(
|
|
ProviderScope(
|
|
overrides: [storeProvider.overrideWithValue(store)],
|
|
child: const AppWidget(),
|
|
),
|
|
);
|
|
}
|