This commit is contained in:
Hillel Coren 2019-10-12 21:49:33 +03:00
parent dea3e6cba4
commit 3bd9237801
2 changed files with 85 additions and 48 deletions

View File

@ -134,9 +134,7 @@ class MainScreen extends StatelessWidget {
viewWidget: ExpenseViewScreen(),
editWidget: ExpenseEditScreen(),
),
// TODO profile/time to see if this optimization helps
mainRoute == 'settings' ? SettingsScreens() : SizedBox(),
//SettingsScreens(),
SettingsScreens(),
],
),
),
@ -152,13 +150,79 @@ class SettingsScreens extends StatelessWidget {
final store = StoreProvider.of<AppState>(context);
final state = store.state;
final uiState = state.uiState;
final subRoute = uiState.subRoute;
final index = subRoute.isEmpty
? kSettingsSections.length
: kSettingsSections.indexOf(subRoute);
return Row(
children: <Widget>[
Widget screen = BlankScreen();
switch (uiState.subRoute) {
case kSettingsCompanyDetails:
screen = CompanyDetailsScreen();
break;
case kSettingsUserDetails:
screen = UserDetailsScreen();
break;
case kSettingsLocalization:
screen = LocalizationScreen();
break;
case kSettingsOnlinePayments:
screen = CompanyGatewayScreen();
break;
case kSettingsOnlinePaymentsView:
screen = CompanyGatewayViewScreen();
break;
case kSettingsOnlinePaymentsEdit:
screen = CompanyGatewayEditScreen();
break;
case kSettingsTaxRates:
screen = TaxRatesScreen();
break;
case kSettingsProducts:
screen = ProductSettingsScreen();
break;
case kSettingsNotifications:
screen = NotificationsSettingsScreen();
break;
case kSettingsImportExport:
screen = ImportExportScreen();
break;
case kSettingsDeviceSettings:
screen = DeviceSettingsScreen();
break;
case kSettingsGroupSettings:
screen = GroupSettingsScreen();
break;
case kSettingsGroupSettingsView:
screen = GroupViewScreen();
break;
case kSettingsGroupSettingsEdit:
screen = GroupEditScreen();
break;
case kSettingsInvoiceSettings:
screen = InvoiceSettingsScreen();
break;
case kSettingsInvoiceDesign:
screen = InvoiceDesignScreen();
break;
case kSettingsClientPortal:
screen = ClientPortalScreen();
break;
case kSettingsBuyNowButtons:
screen = BuyNowButtonsScreen();
break;
case kSettingsEmailSettings:
screen = EmailSettingsScreen();
break;
case kSettingsTemplatesAndReminders:
screen = TemplatesAndRemindersScreen();
break;
case kSettingsCreditCardsAndBanks:
screen = CreditCardsAndBanksScreen();
break;
case kSettingsDataVisualizations:
screen = DataVisualizationsScreen();
break;
}
return Row(children: <Widget>[
Expanded(
child: SettingsScreen(),
flex: 2,
@ -166,37 +230,9 @@ class SettingsScreens extends StatelessWidget {
VerticalDivider(width: isDarkMode(context) ? 1 : .5),
Expanded(
flex: 3,
child: IndexedStack(
index: index,
children: <Widget>[
CompanyDetailsScreen(),
UserDetailsScreen(),
LocalizationScreen(),
CompanyGatewayScreen(),
CompanyGatewayViewScreen(),
CompanyGatewayEditScreen(),
TaxRatesScreen(),
ProductSettingsScreen(),
NotificationsSettingsScreen(),
ImportExportScreen(),
DeviceSettingsScreen(),
GroupSettingsScreen(),
GroupViewScreen(),
GroupEditScreen(),
InvoiceSettingsScreen(),
InvoiceDesignScreen(),
ClientPortalScreen(),
BuyNowButtonsScreen(),
EmailSettingsScreen(),
TemplatesAndRemindersScreen(),
CreditCardsAndBanksScreen(),
DataVisualizationsScreen(),
BlankScreen(),
],
),
),
],
);
child: screen,
)
]);
}
}
@ -247,6 +283,7 @@ class EntityScreens extends StatelessWidget {
class BlankScreen extends StatelessWidget {
const BlankScreen([this.message]);
final String message;
@override

View File

@ -15,7 +15,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
class CompanyDetailsScreen extends StatelessWidget {
const CompanyDetailsScreen({Key key}) : super(key: key);
static const String route = '/settings/$kSettingsCompanyDetails';
static const String route = '/$kSettings/$kSettingsCompanyDetails';
@override
Widget build(BuildContext context) {