Correct scrolling in mobile apps
This commit is contained in:
parent
734b2033d1
commit
764d51d8b7
|
|
@ -136,6 +136,7 @@ void main({bool isTesting = false}) async {
|
|||
|
||||
doWhenWindowReady(() {
|
||||
final win = appWindow;
|
||||
win.title = 'Invoice Ninja';
|
||||
//const initialSize = Size(600, 450);
|
||||
//win.minSize = initialSize;
|
||||
//win.size = initialSize;
|
||||
|
|
|
|||
|
|
@ -243,15 +243,6 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
|
|||
state.prefState.enableDarkMode ? Colors.white : Colors.black87,
|
||||
);
|
||||
|
||||
// https://stackoverflow.com/a/69883043/497368
|
||||
MediaQueryData windowData =
|
||||
MediaQueryData.fromWindow(WidgetsBinding.instance.window);
|
||||
windowData = windowData.copyWith(
|
||||
textScaleFactor: state.prefState.textScaleFactor,
|
||||
alwaysUse24HourFormat:
|
||||
state.company?.settings?.enableMilitaryTime ?? false,
|
||||
);
|
||||
|
||||
return StyledToast(
|
||||
locale: locale,
|
||||
duration: Duration(seconds: 3),
|
||||
|
|
@ -264,15 +255,24 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
|
|||
),
|
||||
child: WebSocketRefresh(
|
||||
companyId: state.company?.id,
|
||||
child: MediaQuery(
|
||||
data: windowData,
|
||||
child: MaterialApp(
|
||||
builder: (BuildContext context, Widget child) {
|
||||
final MediaQueryData data = MediaQuery.of(context);
|
||||
return MediaQuery(
|
||||
data: data.copyWith(
|
||||
textScaleFactor: state.prefState.textScaleFactor,
|
||||
alwaysUse24HourFormat:
|
||||
state.company?.settings?.enableMilitaryTime ?? false,
|
||||
),
|
||||
child: child,
|
||||
);
|
||||
},
|
||||
useInheritedMediaQuery: true,
|
||||
scrollBehavior: MyCustomScrollBehavior(),
|
||||
navigatorKey: navigatorKey,
|
||||
supportedLocales: kLanguages
|
||||
.map((String locale) =>
|
||||
AppLocalization.createLocale(locale))
|
||||
.map(
|
||||
(String locale) => AppLocalization.createLocale(locale))
|
||||
.toList(),
|
||||
debugShowCheckedModeBanner: false,
|
||||
//showPerformanceOverlay: true,
|
||||
|
|
@ -308,8 +308,8 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
|
|||
primaryColorDark: Colors.black,
|
||||
textButtonTheme:
|
||||
TextButtonThemeData(style: textButtonTheme),
|
||||
outlinedButtonTheme: OutlinedButtonThemeData(
|
||||
style: outlinedButtonTheme),
|
||||
outlinedButtonTheme:
|
||||
OutlinedButtonThemeData(style: outlinedButtonTheme),
|
||||
)
|
||||
: ThemeData(
|
||||
colorScheme: ColorScheme.fromSwatch()
|
||||
|
|
@ -345,19 +345,17 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
|
|||
appBarTheme: AppBarTheme(
|
||||
color: hasAccentColor ? accentColor : Colors.white,
|
||||
iconTheme: IconThemeData(
|
||||
color:
|
||||
hasAccentColor ? Colors.white : accentColor,
|
||||
color: hasAccentColor ? Colors.white : accentColor,
|
||||
),
|
||||
titleTextStyle: TextStyle(
|
||||
fontSize: 20,
|
||||
color: hasAccentColor
|
||||
? Colors.white
|
||||
: Colors.black),
|
||||
color:
|
||||
hasAccentColor ? Colors.white : Colors.black),
|
||||
),
|
||||
textButtonTheme:
|
||||
TextButtonThemeData(style: textButtonTheme),
|
||||
outlinedButtonTheme: OutlinedButtonThemeData(
|
||||
style: outlinedButtonTheme),
|
||||
outlinedButtonTheme:
|
||||
OutlinedButtonThemeData(style: outlinedButtonTheme),
|
||||
),
|
||||
title: kAppName,
|
||||
onGenerateRoute: isMobile(context) ? null : generateRoute,
|
||||
|
|
@ -377,12 +375,9 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
|
|||
ProductViewScreen(),
|
||||
ProductEditScreen.route: (context) =>
|
||||
ProductEditScreen(),
|
||||
ClientScreen.route: (context) =>
|
||||
ClientScreenBuilder(),
|
||||
ClientViewScreen.route: (context) =>
|
||||
ClientViewScreen(),
|
||||
ClientEditScreen.route: (context) =>
|
||||
ClientEditScreen(),
|
||||
ClientScreen.route: (context) => ClientScreenBuilder(),
|
||||
ClientViewScreen.route: (context) => ClientViewScreen(),
|
||||
ClientEditScreen.route: (context) => ClientEditScreen(),
|
||||
ClientPdfScreen.route: (context) => ClientPdfScreen(),
|
||||
InvoiceScreen.route: (context) =>
|
||||
InvoiceScreenBuilder(),
|
||||
|
|
@ -392,8 +387,7 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
|
|||
InvoiceEditScreen(),
|
||||
InvoiceEmailScreen.route: (context) =>
|
||||
InvoiceEmailScreen(),
|
||||
InvoicePdfScreen.route: (context) =>
|
||||
InvoicePdfScreen(),
|
||||
InvoicePdfScreen.route: (context) => InvoicePdfScreen(),
|
||||
DocumentScreen.route: (context) =>
|
||||
DocumentScreenBuilder(),
|
||||
DocumentViewScreen.route: (context) =>
|
||||
|
|
@ -406,12 +400,9 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
|
|||
ExpenseViewScreen(),
|
||||
ExpenseEditScreen.route: (context) =>
|
||||
ExpenseEditScreen(),
|
||||
VendorScreen.route: (context) =>
|
||||
VendorScreenBuilder(),
|
||||
VendorViewScreen.route: (context) =>
|
||||
VendorViewScreen(),
|
||||
VendorEditScreen.route: (context) =>
|
||||
VendorEditScreen(),
|
||||
VendorScreen.route: (context) => VendorScreenBuilder(),
|
||||
VendorViewScreen.route: (context) => VendorViewScreen(),
|
||||
VendorEditScreen.route: (context) => VendorEditScreen(),
|
||||
TaskScreen.route: (context) => TaskScreenBuilder(),
|
||||
TaskViewScreen.route: (context) => TaskViewScreen(),
|
||||
TaskEditScreen.route: (context) => TaskEditScreen(),
|
||||
|
|
@ -432,8 +423,7 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
|
|||
QuoteScreen.route: (context) => QuoteScreenBuilder(),
|
||||
QuoteViewScreen.route: (context) => QuoteViewScreen(),
|
||||
QuoteEditScreen.route: (context) => QuoteEditScreen(),
|
||||
QuoteEmailScreen.route: (context) =>
|
||||
QuoteEmailScreen(),
|
||||
QuoteEmailScreen.route: (context) => QuoteEmailScreen(),
|
||||
QuotePdfScreen.route: (context) => QuotePdfScreen(),
|
||||
// STARTER: routes - do not remove comment
|
||||
RecurringExpenseScreen.route: (context) =>
|
||||
|
|
@ -485,18 +475,12 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
|
|||
PaymentTermEditScreen(),
|
||||
PaymentTermViewScreen.route: (context) =>
|
||||
PaymentTermViewScreen(),
|
||||
DesignScreen.route: (context) =>
|
||||
DesignScreenBuilder(),
|
||||
DesignViewScreen.route: (context) =>
|
||||
DesignViewScreen(),
|
||||
DesignEditScreen.route: (context) =>
|
||||
DesignEditScreen(),
|
||||
CreditScreen.route: (context) =>
|
||||
CreditScreenBuilder(),
|
||||
CreditViewScreen.route: (context) =>
|
||||
CreditViewScreen(),
|
||||
CreditEditScreen.route: (context) =>
|
||||
CreditEditScreen(),
|
||||
DesignScreen.route: (context) => DesignScreenBuilder(),
|
||||
DesignViewScreen.route: (context) => DesignViewScreen(),
|
||||
DesignEditScreen.route: (context) => DesignEditScreen(),
|
||||
CreditScreen.route: (context) => CreditScreenBuilder(),
|
||||
CreditViewScreen.route: (context) => CreditViewScreen(),
|
||||
CreditEditScreen.route: (context) => CreditEditScreen(),
|
||||
CreditEmailScreen.route: (context) =>
|
||||
CreditEmailScreen(),
|
||||
CreditPdfScreen.route: (context) => CreditPdfScreen(),
|
||||
|
|
@ -567,7 +551,6 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
|
|||
: {},
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}),
|
||||
),
|
||||
|
|
|
|||
Loading…
Reference in New Issue