import 'package:InvenTree/api.dart'; import 'package:InvenTree/barcode.dart'; import 'package:InvenTree/widget/company_list.dart'; import 'package:InvenTree/widget/search.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:InvenTree/api.dart'; import 'package:InvenTree/widget/category_display.dart'; import 'package:InvenTree/widget/location_display.dart'; import 'package:InvenTree/settings/settings.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; class InvenTreeDrawer extends StatelessWidget { final BuildContext context; InvenTreeDrawer(this.context); void _closeDrawer() { // Close the drawer Navigator.of(context).pop(); } /* * Return to the 'home' screen. * This will empty the navigation stack. */ void _home() { _closeDrawer(); Navigator.pushNamedAndRemoveUntil(context, "/", (r) => false); } void _search() { _closeDrawer(); Navigator.push(context, MaterialPageRoute(builder: (context) => SearchWidget())); } /* * Launch the camera to scan a QR code. * Upon successful scan, data are passed off to be decoded. */ void _scan() async { if (!InvenTreeAPI().checkConnection(context)) return; _closeDrawer(); scanQrCode(context); } /* * Display the top-level PartCategory list */ void _showParts() { if (!InvenTreeAPI().checkConnection(context)) return; _closeDrawer(); Navigator.push(context, MaterialPageRoute(builder: (context) => CategoryDisplayWidget(null))); } /* * Display the top-level StockLocation list */ void _showStock() { if (!InvenTreeAPI().checkConnection(context)) return; _closeDrawer(); Navigator.push(context, MaterialPageRoute(builder: (context) => LocationDisplayWidget(null))); } void _showSuppliers() { if (!InvenTreeAPI().checkConnection(context)) return; _closeDrawer(); Navigator.push(context, MaterialPageRoute(builder: (context) => SupplierListWidget())); } void _showManufacturers() { if (!InvenTreeAPI().checkConnection(context)) return; _closeDrawer(); Navigator.push(context, MaterialPageRoute(builder: (context) => ManufacturerListWidget())); } void _showCustomers() { if (!InvenTreeAPI().checkConnection(context)) return; _closeDrawer(); Navigator.push(context, MaterialPageRoute(builder: (context) => CustomerListWidget())); } /* * Load settings widget */ void _settings() { _closeDrawer(); Navigator.push(context, MaterialPageRoute(builder: (context) => InvenTreeSettingsWidget())); } @override Widget build(BuildContext context) { return Drawer( child: new ListView( children: ListTile.divideTiles( context: context, tiles: [ new ListTile( leading: new Image.asset( "assets/image/icon.png", fit: BoxFit.scaleDown, width: 40, ), title: new Text(I18N.of(context).appTitle), onTap: _home, ), /* // TODO - Add search functionality! new ListTile( title: new Text("Search"), leading: new FaIcon(FontAwesomeIcons.search), onTap: _search, ), */ new ListTile( title: new Text(I18N.of(context).scanBarcode), onTap: _scan, leading: new FaIcon(FontAwesomeIcons.barcode), ), new ListTile( title: new Text(I18N.of(context).parts), leading: new Icon(Icons.category), onTap: _showParts, ), new ListTile( title: new Text(I18N.of(context).stock), leading: new FaIcon(FontAwesomeIcons.boxes), onTap: _showStock, ), /* new ListTile( title: new Text("Suppliers"), leading: new FaIcon(FontAwesomeIcons.building), onTap: _showSuppliers, ), new ListTile( title: Text("Manufacturers"), leading: new FaIcon(FontAwesomeIcons.industry), onTap: _showManufacturers, ), new ListTile( title: new Text("Customers"), leading: new FaIcon(FontAwesomeIcons.users), onTap: _showCustomers, ), */ new ListTile( title: new Text(I18N.of(context).settings), leading: new Icon(Icons.settings), onTap: _settings, ), ] ).toList(), ) ); } }