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

View File

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