Files
mitra-corporate/lib/main.dart
2024-10-01 09:37:38 +07:00

163 lines
6.0 KiB
Dart

import 'dart:html';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:mitra_corporate/screen/splash_screen.dart/splash_screen.dart';
import 'app/constant.dart';
import 'app/route.dart';
import 'app/register_webview_rtub.dart'
if (dart.library.html) 'app/register_webview.dart';
void main() {
// runApp(const MyApp());
// registerWebViewWebImplementation();
WidgetsFlutterBinding.ensureInitialized();
Constant.setBaseUrl(window.location.host, window.location.protocol);
runApp(ProviderScope(observers: [], child: MyApp()));
// FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
// runApp(ProviderScope(observers: [Logger()], child: MyApp()));
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
// localizationsDelegates: [
// DefaultMaterialLocalizations.delegate,
// DefaultCupertinoLocalizations.delegate,
// DefaultWidgetsLocalizations.delegate,
// ],
// locale: Locale("id", "ID"),
debugShowCheckedModeBanner: false,
title: 'App Mitra',
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
// supportedLocales: [
// Locale('en', ''),
// Locale('id', ''), // arabic, no country code
// ],
theme: ThemeData(
useMaterial3: true,
colorScheme: ColorScheme.light(
brightness: Brightness.light,
primary: Constant.primaryRed,
surfaceTint: Color(0xff904a46),
onPrimary: Color(0xffffffff),
primaryContainer: Color(0xffffdad7),
onPrimaryContainer: Color(0xff3b0809),
secondary: Color(0xff775654),
onSecondary: Color(0xffffffff),
secondaryContainer: Color(0xffffdad7),
onSecondaryContainer: Color(0xff2c1514),
tertiary: Color(0xff735b2e),
onTertiary: Color(0xffffffff),
tertiaryContainer: Color(0xffffdea7),
onTertiaryContainer: Color(0xff271900),
error: Color(0xffba1a1a),
onError: Color(0xffffffff),
errorContainer: Color(0xffffdad6),
onErrorContainer: Color(0xff410002),
surface: Color(0xfffff8f7),
onSurface: Color(0xff231919),
onSurfaceVariant: Color(0xff534342),
outline: Color(0xff857371),
outlineVariant: Color(0xffd8c2c0),
shadow: Color(0xff000000),
scrim: Color(0xff000000),
inverseSurface: Color(0xff382e2d),
inversePrimary: Color(0xffffb3ae),
primaryFixed: Color(0xffffdad7),
onPrimaryFixed: Color(0xff3b0809),
primaryFixedDim: Color(0xffffb3ae),
onPrimaryFixedVariant: Color(0xff733330),
secondaryFixed: Color(0xffffdad7),
onSecondaryFixed: Color(0xff2c1514),
secondaryFixedDim: Color(0xffe7bdb9),
onSecondaryFixedVariant: Color(0xff5d3f3d),
tertiaryFixed: Color(0xffffdea7),
onTertiaryFixed: Color(0xff271900),
tertiaryFixedDim: Color(0xffe2c28c),
onTertiaryFixedVariant: Color(0xff594319),
surfaceDim: Color(0xffe8d6d4),
surfaceBright: Color(0xfffff8f7),
surfaceContainerLowest: Color(0xffffffff),
surfaceContainerLow: Color(0xfffff0ef),
surfaceContainer: Color(0xfffceae8),
surfaceContainerHigh: Color(0xfff6e4e2),
surfaceContainerHighest: Color(0xfff1dedd),
),
scaffoldBackgroundColor: Constant.backgroundColor,
dialogBackgroundColor: Colors.white,
buttonTheme: ButtonThemeData(
buttonColor: Constant.primaryRed,
),
cardColor: Colors.white,
cardTheme: CardTheme(color: Colors.white),
datePickerTheme: DatePickerThemeData(
locale: Locale("id", 'ID'),
backgroundColor: Colors.white,
headerForegroundColor: Colors.white,
headerBackgroundColor: Constant.primaryRed),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ButtonStyle(
backgroundColor: WidgetStateProperty.resolveWith((states) {
if (states.contains(WidgetState.pressed)) {
return Constant.primaryRed.withOpacity(0.5);
}
return Constant.primaryRed;
}),
shape: WidgetStatePropertyAll(RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8))))),
fontFamily: "OpenSans",
primaryColor: Constant.primaryRed,
primaryColorLight: Constant.primaryRed,
primarySwatch: MaterialColor(0xffFF0000, {
0: Color(0xffFF0000),
50: Color(0xffFF0000),
100: Color(0xffFF0000),
200: Color(0xffFF0000),
300: Color(0xffFF0000),
400: Color(0xffFF0000),
500: Color(0xffFF0000),
600: Color(0xffFF0000),
700: Color(0xffFF0000),
800: Color(0xffFF0000),
900: Color(0xffFF0000)
}),
// primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity),
initialRoute: splashRoute,
onGenerateRoute: AppRoute.generateRoute,
home: SplashScreen(),
);
}
}
class Logger extends ProviderObserver {
@override
void didUpdateProvider(
ProviderBase<Object?> provider,
Object? previousValue,
Object? newValue,
ProviderContainer container,
) {
// var a = jsonEncode(newValue);
print('''
{
"provider": "${provider.name ?? provider.runtimeType}",
"newValue": "$newValue"
}''');
}
}