Company selector

This commit is contained in:
unknown 2018-05-23 08:12:24 -07:00
parent 4899e61505
commit b875d6e93b
4 changed files with 50 additions and 16 deletions

View File

@ -50,7 +50,7 @@ Middleware<AppState> _createLoginRequest(AuthRepositoryFlutter repository) {
store.dispatch(SelectCompany(1)); store.dispatch(SelectCompany(1));
store.dispatch(UserLoginSuccess()); store.dispatch(UserLoginSuccess());
store.dispatch(LoadDashboardAction()); //store.dispatch(LoadDashboardAction());
Navigator.of(action.context).pushNamed(AppRoutes.dashboard); Navigator.of(action.context).pushNamed(AppRoutes.dashboard);
} }

View File

@ -2,6 +2,13 @@ import 'package:flutter/material.dart';
import 'package:invoiceninja/routes.dart'; import 'package:invoiceninja/routes.dart';
class CustomDrawer extends StatelessWidget { class CustomDrawer extends StatelessWidget {
final String companyName;
CustomDrawer({
Key key,
@required this.companyName,
}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Drawer( return Drawer(
@ -16,19 +23,7 @@ class CustomDrawer extends StatelessWidget {
child: Text('Logo'), child: Text('Logo'),
), ),
), ),
Row( Text(this.companyName),
children: <Widget>[
Expanded(
child: Text('Test'),
),
MaterialButton(
onPressed: () {
},
child: Text('Change'),
)
],
)
], ],
)), )),
color: Colors.white10, color: Colors.white10,

View File

@ -0,0 +1,39 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:redux/redux.dart';
import 'package:invoiceninja/redux/dashboard/dashboard_actions.dart';
import 'package:invoiceninja/data/models/models.dart';
import 'package:invoiceninja/ui/app/custom_drawer.dart';
import 'package:invoiceninja/redux/app/app_state.dart';
import 'package:invoiceninja/redux/dashboard/dashboard_state.dart';
class CustomDrawerVM extends StatelessWidget {
CustomDrawerVM({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return StoreConnector<AppState, _ViewModel>(
converter: _ViewModel.fromStore,
builder: (context, vm) {
return CustomDrawer(
companyName: vm.companyName,
);
},
);
}
}
class _ViewModel {
final String companyName;
_ViewModel({
@required this.companyName,
});
static _ViewModel fromStore(Store<AppState> store) {
return _ViewModel(
companyName: store.state.selectedCompany().name,
);
}
}

View File

@ -1,6 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:invoiceninja/keys.dart'; import 'package:invoiceninja/keys.dart';
import 'package:invoiceninja/ui/app/custom_drawer.dart'; import 'package:invoiceninja/ui/app/custom_drawer_vm.dart';
import 'package:invoiceninja/ui/dashboard/dashboard_vm.dart'; import 'package:invoiceninja/ui/dashboard/dashboard_vm.dart';
class Dashboard extends StatelessWidget { class Dashboard extends StatelessWidget {
@ -12,7 +12,7 @@ class Dashboard extends StatelessWidget {
appBar: AppBar( appBar: AppBar(
title: Text('Dashboard'), title: Text('Dashboard'),
), ),
drawer: CustomDrawer(), drawer: CustomDrawerVM(),
body: DashboardVM(), body: DashboardVM(),
); );
} }