49 lines
1.6 KiB
Dart
49 lines
1.6 KiB
Dart
import "package:flutter_riverpod/flutter_riverpod.dart";
|
|
import "package:nexus/controllers/client_controller.dart";
|
|
import "package:nexus/helpers/extension_helper.dart";
|
|
import "package:nexus/pages/chat_page.dart";
|
|
import "package:nexus/pages/login_page.dart";
|
|
import "package:window_manager/window_manager.dart";
|
|
import "package:flutter/material.dart";
|
|
import "package:dynamic_system_colors/dynamic_system_colors.dart";
|
|
import "package:window_size/window_size.dart";
|
|
|
|
void main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
|
|
await windowManager.ensureInitialized();
|
|
await windowManager.waitUntilReadyToShow(
|
|
WindowOptions(titleBarStyle: TitleBarStyle.hidden),
|
|
);
|
|
|
|
setWindowMinSize(const Size.square(500));
|
|
|
|
runApp(ProviderScope(child: const App()));
|
|
}
|
|
|
|
class App extends ConsumerWidget {
|
|
const App({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context, WidgetRef ref) => DynamicColorBuilder(
|
|
builder: (lightDynamic, darkDynamic) => MaterialApp(
|
|
debugShowCheckedModeBanner: false,
|
|
// Use indigo to work around bugs in theme generation
|
|
theme: (lightDynamic ?? ColorScheme.fromSeed(seedColor: Colors.indigo))
|
|
.theme,
|
|
darkTheme:
|
|
(darkDynamic ??
|
|
ColorScheme.fromSeed(
|
|
seedColor: Colors.indigo,
|
|
brightness: Brightness.dark,
|
|
))
|
|
.theme,
|
|
home: ref
|
|
.watch(ClientController.provider)
|
|
.betterWhen(
|
|
data: (client) =>
|
|
client.accessToken == null ? LoginPage() : ChatPage(),
|
|
),
|
|
),
|
|
);
|
|
}
|