halkyon/halkyon_learn_flutter/lib/main.dart

47 lines
1.8 KiB
Dart
Raw Normal View History

import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:halkyon_learn_flutter/src/core/bloc/app_bloc_observer.dart';
import 'package:halkyon_learn_flutter/src/core/dependencies/dependencies.dart';
import 'package:halkyon_learn_flutter/src/core/dependencies/dependencies_scope.dart';
import 'package:halkyon_learn_flutter/src/feature/auth/widget/session_gate.dart';
import 'package:halkyon_learn_flutter/src/feature/editor_playground/widget/editor_playground_screen.dart';
import 'package:material_ui/material_ui.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
Bloc.observer = const AppBlocObserver();
final dependencies = await Dependencies.create();
runApp(
DependenciesScope(
dependencies: dependencies,
child: const HalkyonLearnApp(),
),
);
}
/// Builds a theme for the given [brightness].
ThemeData _buildTheme(Brightness brightness) {
return ThemeData(
colorScheme: ColorScheme.fromSeed(
seedColor: Colors.blue,
brightness: brightness,
),
);
}
class const HalkyonLearnApp({super.key}) extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Halkyon Learn',
theme: _buildTheme(Brightness.light),
darkTheme: _buildTheme(Brightness.dark),
// Packages that still import package:flutter/material.dart (Serverpod's sign-in
// widgets, the rich-text editor) see this app's theme and localizations only
// through the bridge, since material_ui is a separate copy of that library. The
// bridge is deprecated on purpose, as a reminder: remove it once they have moved.
// ignore: deprecated_member_use
builder: (context, child) => MaterialUiCompatibilityBridge(child: child!),
home: const SessionGate(child: EditorPlaygroundScreen()),
);
}
}