import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:satu/core/redux/actions/nav_actions.dart'; import 'package:satu/core/redux/actions/user_actions.dart'; import 'package:satu/core/redux/store.dart'; import 'package:satu/core/services/api_service.dart'; import 'package:satu/core/utils/locator.dart'; import 'package:satu/shared/app_colors.dart'; import 'package:satu/shared/ui_helpers.dart'; import 'package:satu/views/settings/setting_view.dart'; import 'package:satu/views/work/work_view.dart'; class AppDrawer extends StatelessWidget { @override Widget build(BuildContext context) { return Drawer( child: ListView( padding: EdgeInsets.zero, children: [ _createHeader(), _createDrawerItem(icon: Icons.contacts, text: 'Касса', onTap: () { Navigator.of(context).pop(); Redux.store.dispatch(navigateDrawer(WorkView)); }), Divider(), ExpansionTile( title: Text("Справочники"), childrenPadding: EdgeInsets.only(left: 18.0), children: [ ListTile( title: Text('Категории'), onTap: () { Navigator.of(context).pop(); }, ), ListTile( title: Text('Товары'), onTap: () { Navigator.of(context).pop(); }, ), ListTile( title: Text('Контрагенты'), onTap: () { Navigator.of(context).pop(); }, ), ], ), _createDrawerItem(icon: Icons.settings, text: 'Настройки', onTap: () { Navigator.of(context).pop(); Redux.store.dispatch(navigateDrawer(SettingsView)); }), Divider(), _createDrawerItem(icon: Icons.bug_report, text: 'Сообщить об ошибке'), verticalSpaceMedium, _createDrawerItem(icon: Icons.exit_to_app, text: 'Выйти из аккаунта', onTap: () async { Redux.store.dispatch(logout); }), ListTile( title: Text('0.0.1'), ), ], ), ); } Widget _createHeader() { return DrawerHeader( margin: EdgeInsets.zero, padding: EdgeInsets.zero, decoration: BoxDecoration( color: yellowColor ), // decoration: BoxDecoration( // image: DecorationImage( // fit: BoxFit.fill, // image: AssetImage('assets/images/halyk-bank.png'))), child: Stack(children: [ Positioned( bottom: 12.0, left: 16.0, child: Text("Сату - онлайн касса", style: TextStyle( color: Colors.white, fontSize: 20.0, fontWeight: FontWeight.w500) ) ), ])); } Widget _createDrawerItem( {IconData icon, String text, GestureTapCallback onTap}) { return ListTile( title: Row( children: [ Icon(icon), Padding( padding: EdgeInsets.only(left: 8.0), child: Text(text), ) ], ), onTap: onTap, ); } }