mirror of
https://github.com/inventree/inventree-app.git
synced 2025-04-28 13:36:50 +00:00
Refactor "drawer"
- Reduce number of items - Long-pressing the "back" button opens the drawer Ref: https://stackoverflow.com/questions/58095547/flutter-scaffold-ofcontext-opendrawer-doesnt-work
This commit is contained in:
parent
4f8794e652
commit
18479b88e3
@ -7,13 +7,15 @@
|
|||||||
import "package:flutter/cupertino.dart";
|
import "package:flutter/cupertino.dart";
|
||||||
import "package:flutter/material.dart";
|
import "package:flutter/material.dart";
|
||||||
|
|
||||||
Widget backButton(BuildContext context) {
|
import "package:inventree/widget/drawer.dart";
|
||||||
|
|
||||||
|
Widget backButton(BuildContext context, GlobalKey<ScaffoldState> key) {
|
||||||
|
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onLongPress: () {
|
onLongPress: () {
|
||||||
while (Navigator.of(context).canPop()) {
|
// Display the menu
|
||||||
Navigator.of(context).pop();
|
key.currentState!.openDrawer();
|
||||||
}
|
print("hello?");
|
||||||
},
|
},
|
||||||
child: IconButton(
|
child: IconButton(
|
||||||
icon: BackButtonIcon(),
|
icon: BackButtonIcon(),
|
||||||
|
@ -28,7 +28,9 @@ class InvenTreeDrawer extends StatelessWidget {
|
|||||||
void _home() {
|
void _home() {
|
||||||
_closeDrawer();
|
_closeDrawer();
|
||||||
|
|
||||||
Navigator.pushNamedAndRemoveUntil(context, "/", (r) => false);
|
while (Navigator.of(context).canPop()) {
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _search() {
|
void _search() {
|
||||||
@ -37,12 +39,7 @@ class InvenTreeDrawer extends StatelessWidget {
|
|||||||
|
|
||||||
_closeDrawer();
|
_closeDrawer();
|
||||||
|
|
||||||
showSearch(
|
// TODO: Open search dialog
|
||||||
context: context,
|
|
||||||
delegate: PartSearchDelegate(context)
|
|
||||||
);
|
|
||||||
|
|
||||||
//Navigator.push(context, MaterialPageRoute(builder: (context) => SearchWidget()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -56,48 +53,6 @@ class InvenTreeDrawer extends StatelessWidget {
|
|||||||
scanQrCode(context);
|
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) => CompanyListWidget(L10().suppliers, {"is_supplier": "true"})));
|
|
||||||
}
|
|
||||||
|
|
||||||
void _showManufacturers() {
|
|
||||||
if (!InvenTreeAPI().checkConnection(context)) return;
|
|
||||||
_closeDrawer();
|
|
||||||
|
|
||||||
Navigator.push(context, MaterialPageRoute(builder: (context) => CompanyListWidget(L10().manufacturers, {"is_manufacturer": "true"})));
|
|
||||||
}
|
|
||||||
|
|
||||||
void _showCustomers() {
|
|
||||||
if (!InvenTreeAPI().checkConnection(context)) return;
|
|
||||||
_closeDrawer();
|
|
||||||
|
|
||||||
Navigator.push(context, MaterialPageRoute(builder: (context) => CompanyListWidget(L10().customers, {"is_customer": "true"})));
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Load settings widget
|
* Load settings widget
|
||||||
*/
|
*/
|
||||||
@ -114,11 +69,7 @@ class InvenTreeDrawer extends StatelessWidget {
|
|||||||
context: context,
|
context: context,
|
||||||
tiles: <Widget>[
|
tiles: <Widget>[
|
||||||
ListTile(
|
ListTile(
|
||||||
leading: Image.asset(
|
leading: FaIcon(FontAwesomeIcons.home),
|
||||||
"assets/image/icon.png",
|
|
||||||
fit: BoxFit.scaleDown,
|
|
||||||
width: 30,
|
|
||||||
),
|
|
||||||
title: Text(
|
title: Text(
|
||||||
L10().appTitle,
|
L10().appTitle,
|
||||||
style: TextStyle(fontWeight: FontWeight.bold),
|
style: TextStyle(fontWeight: FontWeight.bold),
|
||||||
@ -135,35 +86,6 @@ class InvenTreeDrawer extends StatelessWidget {
|
|||||||
leading: FaIcon(FontAwesomeIcons.search),
|
leading: FaIcon(FontAwesomeIcons.search),
|
||||||
onTap: _search,
|
onTap: _search,
|
||||||
),
|
),
|
||||||
ListTile(
|
|
||||||
title: Text(L10().parts),
|
|
||||||
leading: Icon(Icons.category),
|
|
||||||
onTap: _showParts,
|
|
||||||
),
|
|
||||||
ListTile(
|
|
||||||
title: Text(L10().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(
|
ListTile(
|
||||||
title: Text(L10().settings),
|
title: Text(L10().settings),
|
||||||
leading: Icon(Icons.settings),
|
leading: Icon(Icons.settings),
|
||||||
|
@ -62,15 +62,6 @@ abstract class RefreshableState<T extends StatefulWidget> extends State<T> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function to construct an appbar (override if needed)
|
|
||||||
AppBar getAppBar(BuildContext context) {
|
|
||||||
return AppBar(
|
|
||||||
title: Text(getAppBarTitle(context)),
|
|
||||||
actions: getAppBarActions(context),
|
|
||||||
leading: backButton(context),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Function to construct a drawer (override if needed)
|
// Function to construct a drawer (override if needed)
|
||||||
Widget getDrawer(BuildContext context) {
|
Widget getDrawer(BuildContext context) {
|
||||||
return InvenTreeDrawer(context);
|
return InvenTreeDrawer(context);
|
||||||
@ -99,8 +90,12 @@ abstract class RefreshableState<T extends StatefulWidget> extends State<T> {
|
|||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
key: refreshableKey,
|
key: refreshableKey,
|
||||||
appBar: getAppBar(context),
|
appBar: AppBar(
|
||||||
drawer: null,
|
title: Text(getAppBarTitle(context)),
|
||||||
|
actions: getAppBarActions(context),
|
||||||
|
leading: backButton(context, refreshableKey),
|
||||||
|
),
|
||||||
|
drawer: getDrawer(context),
|
||||||
floatingActionButton: getFab(context),
|
floatingActionButton: getFab(context),
|
||||||
body: Builder(
|
body: Builder(
|
||||||
builder: (BuildContext context) {
|
builder: (BuildContext context) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user