feat: replace mail protocol with smolmail and rebuild the UI
This commit is contained in:
parent
cb24b68069
commit
e94e4158cc
93 changed files with 6387 additions and 3479 deletions
|
|
@ -1,18 +1,53 @@
|
|||
import "package:flutter/material.dart";
|
||||
import "package:flutter_riverpod/flutter_riverpod.dart";
|
||||
|
||||
import "package:flash_mail/presentation/theme/theme.dart";
|
||||
import "package:flash_mail/presentation/routes/app_router.dart";
|
||||
import "package:smol_mail/data/providers/providers.dart";
|
||||
import "package:smol_mail/presentation/theme/theme.dart";
|
||||
import "package:smol_mail/presentation/routes/app_router.dart";
|
||||
|
||||
class AppWidget extends ConsumerWidget {
|
||||
/// SnackBars need no context through this key, so the client's trust
|
||||
/// warnings can be shown from anywhere in the protocol stack.
|
||||
final rootScaffoldMessengerKey = GlobalKey<ScaffoldMessengerState>();
|
||||
|
||||
class AppWidget extends ConsumerStatefulWidget {
|
||||
const AppWidget({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
ConsumerState<AppWidget> createState() => _AppWidgetState();
|
||||
}
|
||||
|
||||
class _AppWidgetState extends ConsumerState<AppWidget> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
// §4/§8 trust warnings stay on screen until dismissed; ordinary notices
|
||||
// do not use this channel.
|
||||
ref.read(clientProvider).onWarning = (message) {
|
||||
rootScaffoldMessengerKey.currentState?.showSnackBar(
|
||||
SnackBar(
|
||||
backgroundColor: const Color.fromRGBO(198, 40, 40, 1),
|
||||
content: Text(message, style: const TextStyle(color: Colors.white)),
|
||||
duration: const Duration(days: 1),
|
||||
action: SnackBarAction(
|
||||
label: "Dismiss",
|
||||
textColor: Colors.white,
|
||||
onPressed: () =>
|
||||
rootScaffoldMessengerKey.currentState?.hideCurrentSnackBar(),
|
||||
),
|
||||
),
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp.router(
|
||||
title: "FlashMail",
|
||||
theme: appTheme,
|
||||
title: "kirakira",
|
||||
theme: appThemeLight,
|
||||
darkTheme: appThemeDark,
|
||||
themeMode: ThemeMode.system,
|
||||
debugShowCheckedModeBanner: false,
|
||||
scaffoldMessengerKey: rootScaffoldMessengerKey,
|
||||
routerConfig: AppRouter(ref).config(),
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue