aman-satu-flutter/lib/views/main/main_view.dart

77 lines
2.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:satu/core/redux/state/nav_state.dart';
import 'package:satu/core/redux/store.dart';
import 'package:satu/core/services/navigator_service.dart';
import 'package:satu/core/utils/locator.dart';
import 'package:satu/views/analytics/analytics_view.dart';
import 'package:satu/views/dictionaries/category/category_view.dart';
import 'package:satu/views/dictionaries/goods/goods_view.dart';
import 'package:satu/views/inventarization/view/inventarization_view.dart';
import 'package:satu/views/settings/setting_view.dart';
import 'package:satu/views/work/work_view.dart';
import 'package:satu/widgets/drawer/app_drawer.dart';
import '../dictionaries/contragents/contragents_view.dart';
import '../stocks/stocks_view.dart';
class MainView extends StatefulWidget {
@override
_MainViewState createState() => _MainViewState();
}
class _MainViewState extends State<MainView> {
final NavigatorService _navigatorService = locator<NavigatorService>();
final _workView = const WorkView();
final _settingsView = SettingsView();
final _categoryDictView = CategoryDictionaryView();
final _goodDictView = GoodsDictionaryView();
final _contragentDictView = ContragentsDictionaryView();
final _analyticsView = const AnalyticsView();
final _inventarizationView = InventarizationView();
final _stocksView = StocksView();
Widget _body(Type viewClass) {
if(viewClass == WorkView) {
return _workView;
}
if(viewClass == SettingsView) {
return _settingsView;
}
if(viewClass == CategoryDictionaryView) {
return _categoryDictView;
}
if(viewClass == InventarizationView) {
return _inventarizationView;
}
if(viewClass == GoodsDictionaryView) {
return _goodDictView;
}
if(viewClass == ContragentsDictionaryView) {
return _contragentDictView;
}
if(viewClass == AnalyticsView) {
return _analyticsView;
}
if(viewClass == StocksView) {
return _stocksView;
}
return _workView;
}
@override
Widget build(BuildContext context) {
return Scaffold(
key: _navigatorService.scaffoldDrawerKey,
drawer: AppDrawer(),
body: StoreConnector<AppState, NavState>(
converter: (store) => store.state.navState!,
builder: (_, vm) {
return _body(vm.drawerViewClass!);
})
);
}
}