Initial commit: Krow Worker App
This commit is contained in:
73
lib/main.dart
Normal file
73
lib/main.dart
Normal file
@@ -0,0 +1,73 @@
|
||||
import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'core/router.dart';
|
||||
import 'core/theme.dart';
|
||||
import 'state/session_controller.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
|
||||
SystemChrome.setSystemUIOverlayStyle(
|
||||
const SystemUiOverlayStyle(
|
||||
statusBarColor: Colors.transparent,
|
||||
statusBarIconBrightness: Brightness.light,
|
||||
),
|
||||
);
|
||||
|
||||
runApp(
|
||||
ProviderScope(
|
||||
overrides: [prefsProvider.overrideWithValue(prefs)],
|
||||
child: const KrowApp(),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
class KrowApp extends StatelessWidget {
|
||||
const KrowApp({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp.router(
|
||||
title: 'KROW Worker',
|
||||
debugShowCheckedModeBanner: false,
|
||||
theme: buildKrowTheme(),
|
||||
scrollBehavior: const KrowScrollBehavior(),
|
||||
routerConfig: router,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// Scrolling feel, applied everywhere.
|
||||
class KrowScrollBehavior extends MaterialScrollBehavior {
|
||||
const KrowScrollBehavior();
|
||||
|
||||
/// Bouncing on every platform. The lists here sit under a pinned header, and
|
||||
/// a rubber-band edge shows you have reached the end of the content rather
|
||||
/// than the end of the screen — clamping just stops dead against the header.
|
||||
@override
|
||||
ScrollPhysics getScrollPhysics(BuildContext context) =>
|
||||
const BouncingScrollPhysics(parent: AlwaysScrollableScrollPhysics());
|
||||
|
||||
/// Let the web and desktop builds be dragged with a mouse or trackpad, not
|
||||
/// only scrolled with a wheel.
|
||||
@override
|
||||
Set<PointerDeviceKind> get dragDevices => {
|
||||
PointerDeviceKind.touch,
|
||||
PointerDeviceKind.mouse,
|
||||
PointerDeviceKind.trackpad,
|
||||
PointerDeviceKind.stylus,
|
||||
};
|
||||
|
||||
/// The bounce is the end-of-list signal; a glow on top of it is noise.
|
||||
@override
|
||||
Widget buildOverscrollIndicator(
|
||||
BuildContext context,
|
||||
Widget child,
|
||||
ScrollableDetails details,
|
||||
) => child;
|
||||
}
|
||||
Reference in New Issue
Block a user