History
This commit is contained in:
parent
a78e824cfe
commit
83ec81cf0c
|
|
@ -0,0 +1,26 @@
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:invoiceninja_flutter/ui/app/history_drawer_vm.dart';
|
||||||
|
|
||||||
|
class HistoryDrawer extends StatelessWidget {
|
||||||
|
const HistoryDrawer({
|
||||||
|
Key key,
|
||||||
|
@required this.viewModel,
|
||||||
|
}) : super(key: key);
|
||||||
|
|
||||||
|
final AppDrawerVM viewModel;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Drawer(
|
||||||
|
child: SafeArea(
|
||||||
|
child: Column(
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
children: <Widget>[
|
||||||
|
Text('testk')
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
|
import 'package:flutter/widgets.dart';
|
||||||
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
|
import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart';
|
||||||
|
import 'package:invoiceninja_flutter/ui/app/app_builder.dart';
|
||||||
|
import 'package:redux/redux.dart';
|
||||||
|
import 'package:invoiceninja_flutter/ui/app/history_drawer.dart';
|
||||||
|
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
||||||
|
import 'package:invoiceninja_flutter/redux/company/company_selectors.dart';
|
||||||
|
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||||
|
|
||||||
|
class HistoryDrawerBuilder extends StatelessWidget {
|
||||||
|
const HistoryDrawerBuilder({Key key}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return StoreConnector<AppState, AppDrawerVM>(
|
||||||
|
converter: AppDrawerVM.fromStore,
|
||||||
|
builder: (context, viewModel) {
|
||||||
|
return HistoryDrawer(viewModel: viewModel);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class AppDrawerVM {
|
||||||
|
AppDrawerVM({
|
||||||
|
@required this.companies,
|
||||||
|
@required this.selectedCompany,
|
||||||
|
@required this.user,
|
||||||
|
@required this.isLoading,
|
||||||
|
});
|
||||||
|
|
||||||
|
final List<CompanyEntity> companies;
|
||||||
|
final CompanyEntity selectedCompany;
|
||||||
|
final UserEntity user;
|
||||||
|
final bool isLoading;
|
||||||
|
|
||||||
|
static AppDrawerVM fromStore(Store<AppState> store) {
|
||||||
|
final AppState state = store.state;
|
||||||
|
|
||||||
|
return AppDrawerVM(
|
||||||
|
isLoading: state.isLoading,
|
||||||
|
companies: companiesSelector(state),
|
||||||
|
user: state.user,
|
||||||
|
selectedCompany: state.selectedCompany,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -7,7 +7,7 @@ import 'package:invoiceninja_flutter/redux/ui/ui_state.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/app_bottom_bar.dart';
|
import 'package:invoiceninja_flutter/ui/app/app_bottom_bar.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
|
||||||
import 'app_drawer_vm.dart';
|
import 'menu_drawer_vm.dart';
|
||||||
|
|
||||||
class ListScaffold extends StatelessWidget {
|
class ListScaffold extends StatelessWidget {
|
||||||
const ListScaffold({
|
const ListScaffold({
|
||||||
|
|
@ -44,7 +44,7 @@ class ListScaffold extends StatelessWidget {
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
drawer: isMobile(context) ? AppDrawerBuilder() : null,
|
drawer: isMobile(context) ? MenuDrawerBuilder() : null,
|
||||||
//endDrawer: isMobile(context),
|
//endDrawer: isMobile(context),
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,8 @@ import 'package:flutter_redux/flutter_redux.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart';
|
import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/app_drawer_vm.dart';
|
import 'package:invoiceninja_flutter/ui/app/history_drawer_vm.dart';
|
||||||
|
import 'package:invoiceninja_flutter/ui/app/menu_drawer_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/help_text.dart';
|
import 'package:invoiceninja_flutter/ui/app/help_text.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/screen_imports.dart';
|
import 'package:invoiceninja_flutter/ui/app/screen_imports.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_screen_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_screen_vm.dart';
|
||||||
|
|
@ -75,10 +76,14 @@ class MainScreen extends StatelessWidget {
|
||||||
|
|
||||||
return Row(children: <Widget>[
|
return Row(children: <Widget>[
|
||||||
if (uiState.isMenuVisible) ...[
|
if (uiState.isMenuVisible) ...[
|
||||||
AppDrawerBuilder(),
|
MenuDrawerBuilder(),
|
||||||
VerticalDivider(width: isDarkMode(context) ? 1 : .5),
|
VerticalDivider(width: isDarkMode(context) ? 1 : .5),
|
||||||
],
|
],
|
||||||
Expanded(child: screen)
|
Expanded(child: screen),
|
||||||
|
if (uiState.isHistoryVisible) ...[
|
||||||
|
VerticalDivider(width: isDarkMode(context) ? 1 : .5),
|
||||||
|
HistoryDrawerBuilder(),
|
||||||
|
],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart';
|
import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/product/product_actions.dart';
|
import 'package:invoiceninja_flutter/redux/product/product_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart';
|
import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/app_drawer_vm.dart';
|
import 'package:invoiceninja_flutter/ui/app/menu_drawer_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/lists/selected_indicator.dart';
|
import 'package:invoiceninja_flutter/ui/app/lists/selected_indicator.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/icons.dart';
|
import 'package:invoiceninja_flutter/utils/icons.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
@ -28,8 +28,8 @@ import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
// STARTER: import - do not remove comment
|
// STARTER: import - do not remove comment
|
||||||
|
|
||||||
class AppDrawer extends StatelessWidget {
|
class MenuDrawer extends StatelessWidget {
|
||||||
const AppDrawer({
|
const MenuDrawer({
|
||||||
Key key,
|
Key key,
|
||||||
@required this.viewModel,
|
@required this.viewModel,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
@ -4,20 +4,20 @@ import 'package:flutter_redux/flutter_redux.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart';
|
import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/app_builder.dart';
|
import 'package:invoiceninja_flutter/ui/app/app_builder.dart';
|
||||||
import 'package:redux/redux.dart';
|
import 'package:redux/redux.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/app_drawer.dart';
|
import 'package:invoiceninja_flutter/ui/app/menu_drawer.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/company/company_selectors.dart';
|
import 'package:invoiceninja_flutter/redux/company/company_selectors.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||||
|
|
||||||
class AppDrawerBuilder extends StatelessWidget {
|
class MenuDrawerBuilder extends StatelessWidget {
|
||||||
const AppDrawerBuilder({Key key}) : super(key: key);
|
const MenuDrawerBuilder({Key key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return StoreConnector<AppState, AppDrawerVM>(
|
return StoreConnector<AppState, AppDrawerVM>(
|
||||||
converter: AppDrawerVM.fromStore,
|
converter: AppDrawerVM.fromStore,
|
||||||
builder: (context, viewModel) {
|
builder: (context, viewModel) {
|
||||||
return AppDrawer(viewModel: viewModel);
|
return MenuDrawer(viewModel: viewModel);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -11,7 +11,7 @@ import 'package:invoiceninja_flutter/redux/project/project_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart';
|
import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/task/task_actions.dart';
|
import 'package:invoiceninja_flutter/redux/task/task_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/ui/ui_state.dart';
|
import 'package:invoiceninja_flutter/redux/ui/ui_state.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/app_drawer_vm.dart';
|
import 'package:invoiceninja_flutter/ui/app/menu_drawer_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/list_filter.dart';
|
import 'package:invoiceninja_flutter/ui/app/list_filter.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/list_filter_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/list_filter_button.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/dashboard/dashboard_activity.dart';
|
import 'package:invoiceninja_flutter/ui/dashboard/dashboard_activity.dart';
|
||||||
|
|
@ -57,7 +57,7 @@ class _DashboardViewState extends State<DashboardView>
|
||||||
return WillPopScope(
|
return WillPopScope(
|
||||||
onWillPop: () async => true,
|
onWillPop: () async => true,
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
drawer: isMobile(context) ? AppDrawerBuilder() : null,
|
drawer: isMobile(context) ? MenuDrawerBuilder() : null,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
leading: !isMobile(context)
|
leading: !isMobile(context)
|
||||||
? IconButton(
|
? IconButton(
|
||||||
|
|
|
||||||
|
|
@ -85,9 +85,9 @@ if [ ${action} = "init" ]; then
|
||||||
'./lib/redux/ui/ui_state.dart'
|
'./lib/redux/ui/ui_state.dart'
|
||||||
'./lib/ui/auth/login.dart'
|
'./lib/ui/auth/login.dart'
|
||||||
'./lib/ui/auth/login_vm.dart'
|
'./lib/ui/auth/login_vm.dart'
|
||||||
'./lib/ui/app/app_drawer.dart'
|
'./lib/ui/app/menu_drawer.dart'
|
||||||
'./lib/ui/app/init.dart'
|
'./lib/ui/app/init.dart'
|
||||||
'./lib/ui/app/app_drawer_vm.dart'
|
'./lib/ui/app/menu_drawer_vm.dart'
|
||||||
'./lib/ui/app/actions_menu_button.dart'
|
'./lib/ui/app/actions_menu_button.dart'
|
||||||
'./lib/ui/app/app_bottom_bar.dart'
|
'./lib/ui/app/app_bottom_bar.dart'
|
||||||
'./lib/ui/app/app_search.dart'
|
'./lib/ui/app/app_search.dart'
|
||||||
|
|
@ -336,7 +336,7 @@ else
|
||||||
|
|
||||||
comment="STARTER: import - do not remove comment"
|
comment="STARTER: import - do not remove comment"
|
||||||
code="import 'package:${package}\/redux\/${module_snake}\/${module_snake}_actions.dart';${lineBreak}"
|
code="import 'package:${package}\/redux\/${module_snake}\/${module_snake}_actions.dart';${lineBreak}"
|
||||||
sed -i -e "s/$comment/$comment${lineBreak}$code/g" ./lib/ui/app/app_drawer.dart
|
sed -i -e "s/$comment/$comment${lineBreak}$code/g" ./lib/ui/app/menu_drawer.dart
|
||||||
|
|
||||||
comment="STARTER: menu - do not remove comment"
|
comment="STARTER: menu - do not remove comment"
|
||||||
code="DrawerTile(${lineBreak}"
|
code="DrawerTile(${lineBreak}"
|
||||||
|
|
@ -351,7 +351,7 @@ else
|
||||||
code="${code}${module_camel}: ${Module}Entity(), context: context));${lineBreak}"
|
code="${code}${module_camel}: ${Module}Entity(), context: context));${lineBreak}"
|
||||||
code="${code}},${lineBreak}"
|
code="${code}},${lineBreak}"
|
||||||
code="${code}),${lineBreak}"
|
code="${code}),${lineBreak}"
|
||||||
sed -i -e "s/$comment/$comment${lineBreak}$code/g" ./lib/ui/app/app_drawer.dart
|
sed -i -e "s/$comment/$comment${lineBreak}$code/g" ./lib/ui/app/menu_drawer.dart
|
||||||
|
|
||||||
comment="STARTER: import - do not remove comment"
|
comment="STARTER: import - do not remove comment"
|
||||||
code="import 'package:${package}\/redux\/${module_snake}\/${module_snake}_state.dart';${lineBreak}"
|
code="import 'package:${package}\/redux\/${module_snake}\/${module_snake}_state.dart';${lineBreak}"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue