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(); showSearch( context: context, delegate: PartSearchDelegate(context) ); //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: ListView( children: ListTile.divideTiles( context: context, tiles: [ ListTile( leading: Image.asset( "assets/image/icon.png", fit: BoxFit.scaleDown, width: 30, ), title: Text( I18N.of(context).appTitle, style: TextStyle(fontWeight: FontWeight.bold), ), onTap: _home, ), ListTile( title: Text(I18N.of(context).scanBarcode), onTap: _scan, leading: FaIcon(FontAwesomeIcons.barcode), ), ListTile( title: Text(I18N.of(context).search), leading: FaIcon(FontAwesomeIcons.search), onTap: _search, ), ListTile( title: Text(I18N.of(context).parts), leading: Icon(Icons.category), onTap: _showParts, ), ListTile( title: Text(I18N.of(context).stock), leading: FaIcon(FontAwesomeIcons.boxes), onTap: _showStock, ), /* ListTile( title: Text("Suppliers"), leading: FaIcon(FontAwesomeIcons.building), onTap: _showSuppliers, ), ListTile( title: Text("Manufacturers"), leading: FaIcon(FontAwesomeIcons.industry), onTap: _showManufacturers, ), ListTile( title: Text("Customers"), leading: FaIcon(FontAwesomeIcons.users), onTap: _showCustomers, ), */ ListTile( title: Text(I18N.of(context).settings), leading: Icon(Icons.settings), onTap: _settings, ), ] ).toList(), ) ); } }