mirror of
https://github.com/inventree/inventree-app.git
synced 2025-04-28 05:26:47 +00:00
Refactor loading overlay
This commit is contained in:
parent
d5a9f4310e
commit
e44d1ea5b4
@ -977,7 +977,7 @@ Future<void> launchApiForm(
|
|||||||
IconData icon = TablerIcons.device_floppy
|
IconData icon = TablerIcons.device_floppy
|
||||||
}) async {
|
}) async {
|
||||||
|
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
|
|
||||||
// List of fields defined by the server
|
// List of fields defined by the server
|
||||||
Map<String, dynamic> serverFields = {};
|
Map<String, dynamic> serverFields = {};
|
||||||
@ -1229,7 +1229,7 @@ class _APIFormWidgetState extends State<APIFormWidget> {
|
|||||||
|
|
||||||
if (widget.method == "POST") {
|
if (widget.method == "POST") {
|
||||||
|
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
final response = await InvenTreeAPI().post(
|
final response = await InvenTreeAPI().post(
|
||||||
widget.url,
|
widget.url,
|
||||||
body: data,
|
body: data,
|
||||||
@ -1240,7 +1240,7 @@ class _APIFormWidgetState extends State<APIFormWidget> {
|
|||||||
return response;
|
return response;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
final response = await InvenTreeAPI().patch(
|
final response = await InvenTreeAPI().patch(
|
||||||
widget.url,
|
widget.url,
|
||||||
body: data,
|
body: data,
|
||||||
|
@ -65,7 +65,7 @@ class InvenTreeBarcodeControllerState extends State<InvenTreeBarcodeController>
|
|||||||
context = OneContext.hasContext ? OneContext().context : null;
|
context = OneContext.hasContext ? OneContext().context : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
await pauseScan();
|
await pauseScan();
|
||||||
|
|
||||||
await widget.handler.processBarcode(data);
|
await widget.handler.processBarcode(data);
|
||||||
|
@ -3,6 +3,7 @@ import "package:inventree/helpers.dart";
|
|||||||
import "package:inventree/inventree/company.dart";
|
import "package:inventree/inventree/company.dart";
|
||||||
import "package:inventree/inventree/model.dart";
|
import "package:inventree/inventree/model.dart";
|
||||||
import "package:inventree/inventree/orders.dart";
|
import "package:inventree/inventree/orders.dart";
|
||||||
|
import "package:inventree/widget/progress.dart";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -121,7 +122,9 @@ class InvenTreePurchaseOrder extends InvenTreeOrder {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showLoadingOverlay();
|
||||||
await api.post("${url}issue/", expectedStatusCode: 201);
|
await api.post("${url}issue/", expectedStatusCode: 201);
|
||||||
|
hideLoadingOverlay();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Mark this order as "cancelled"
|
/// Mark this order as "cancelled"
|
||||||
@ -130,7 +133,9 @@ class InvenTreePurchaseOrder extends InvenTreeOrder {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showLoadingOverlay();
|
||||||
await api.post("${url}cancel/", expectedStatusCode: 201);
|
await api.post("${url}cancel/", expectedStatusCode: 201);
|
||||||
|
hideLoadingOverlay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ import "package:inventree/inventree/model.dart";
|
|||||||
import "package:inventree/inventree/orders.dart";
|
import "package:inventree/inventree/orders.dart";
|
||||||
|
|
||||||
import "package:inventree/api.dart";
|
import "package:inventree/api.dart";
|
||||||
|
import "package:inventree/widget/progress.dart";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -76,7 +77,9 @@ class InvenTreeSalesOrder extends InvenTreeOrder {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showLoadingOverlay();
|
||||||
await api.post("${url}issue/", expectedStatusCode: 201);
|
await api.post("${url}issue/", expectedStatusCode: 201);
|
||||||
|
hideLoadingOverlay();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Mark this order as "cancelled"
|
/// Mark this order as "cancelled"
|
||||||
@ -85,7 +88,9 @@ class InvenTreeSalesOrder extends InvenTreeOrder {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showLoadingOverlay();
|
||||||
await api.post("${url}cancel/", expectedStatusCode: 201);
|
await api.post("${url}cancel/", expectedStatusCode: 201);
|
||||||
|
hideLoadingOverlay();
|
||||||
}
|
}
|
||||||
|
|
||||||
int get customerId => getInt("customer");
|
int get customerId => getInt("customer");
|
||||||
|
@ -98,7 +98,7 @@ Future<void> selectAndPrintLabel(
|
|||||||
|
|
||||||
if (labelId != -1 && pluginKey != null) {
|
if (labelId != -1 && pluginKey != null) {
|
||||||
|
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
|
|
||||||
if (InvenTreeAPI().supportsModernLabelPrinting) {
|
if (InvenTreeAPI().supportsModernLabelPrinting) {
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ class _InvenTreeAppSettingsState extends State<InvenTreeAppSettingsWidget> {
|
|||||||
|
|
||||||
Future <void> loadSettings(BuildContext context) async {
|
Future <void> loadSettings(BuildContext context) async {
|
||||||
|
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
|
|
||||||
barcodeSounds = await InvenTreeSettingsManager().getValue(INV_SOUNDS_BARCODE, true) as bool;
|
barcodeSounds = await InvenTreeSettingsManager().getValue(INV_SOUNDS_BARCODE, true) as bool;
|
||||||
serverSounds = await InvenTreeSettingsManager().getValue(INV_SOUNDS_SERVER, true) as bool;
|
serverSounds = await InvenTreeSettingsManager().getValue(INV_SOUNDS_SERVER, true) as bool;
|
||||||
|
@ -50,7 +50,7 @@ class _InvenTreeLoginState extends State<InvenTreeLoginWidget> {
|
|||||||
currentFocus.unfocus();
|
currentFocus.unfocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
|
|
||||||
// Attempt login
|
// Attempt login
|
||||||
final response = await InvenTreeAPI().fetchToken(widget.profile, username, password);
|
final response = await InvenTreeAPI().fetchToken(widget.profile, username, password);
|
||||||
|
@ -79,7 +79,7 @@ class _AttachmentWidgetState extends RefreshableState<AttachmentWidget> {
|
|||||||
|
|
||||||
if (file == null) return;
|
if (file == null) return;
|
||||||
|
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
|
|
||||||
final bool result = await widget.attachmentClass.uploadAttachment(
|
final bool result = await widget.attachmentClass.uploadAttachment(
|
||||||
file,
|
file,
|
||||||
@ -178,7 +178,7 @@ class _AttachmentWidgetState extends RefreshableState<AttachmentWidget> {
|
|||||||
subtitle: Text(attachment.comment),
|
subtitle: Text(attachment.comment),
|
||||||
leading: Icon(attachment.icon, color: COLOR_ACTION),
|
leading: Icon(attachment.icon, color: COLOR_ACTION),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
await attachment.downloadAttachment();
|
await attachment.downloadAttachment();
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
},
|
},
|
||||||
|
@ -119,7 +119,7 @@ class _SupplierPartDisplayState extends RefreshableState<SupplierPartDetailWidge
|
|||||||
leading: Icon(TablerIcons.box, color: COLOR_ACTION),
|
leading: Icon(TablerIcons.box, color: COLOR_ACTION),
|
||||||
trailing: InvenTreeAPI().getThumbnail(widget.supplierPart.partImage),
|
trailing: InvenTreeAPI().getThumbnail(widget.supplierPart.partImage),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
final part = await InvenTreePart().get(widget.supplierPart.partId);
|
final part = await InvenTreePart().get(widget.supplierPart.partId);
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
|
|
||||||
@ -162,7 +162,7 @@ class _SupplierPartDisplayState extends RefreshableState<SupplierPartDetailWidge
|
|||||||
leading: Icon(TablerIcons.building, color: COLOR_ACTION),
|
leading: Icon(TablerIcons.building, color: COLOR_ACTION),
|
||||||
trailing: InvenTreeAPI().getThumbnail(widget.supplierPart.supplierImage),
|
trailing: InvenTreeAPI().getThumbnail(widget.supplierPart.supplierImage),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
var supplier = await InvenTreeCompany().get(widget.supplierPart.supplierId);
|
var supplier = await InvenTreeCompany().get(widget.supplierPart.supplierId);
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
|
|
||||||
@ -193,7 +193,7 @@ class _SupplierPartDisplayState extends RefreshableState<SupplierPartDetailWidge
|
|||||||
leading: Icon(TablerIcons.building_factory_2, color: COLOR_ACTION),
|
leading: Icon(TablerIcons.building_factory_2, color: COLOR_ACTION),
|
||||||
trailing: InvenTreeAPI().getThumbnail(widget.supplierPart.manufacturerImage),
|
trailing: InvenTreeAPI().getThumbnail(widget.supplierPart.manufacturerImage),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
var supplier = await InvenTreeCompany().get(widget.supplierPart.manufacturerId);
|
var supplier = await InvenTreeCompany().get(widget.supplierPart.manufacturerId);
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
|
|
||||||
|
@ -175,7 +175,7 @@ class _POLineDetailWidgetState extends RefreshableState<POLineDetailWidget> {
|
|||||||
fields["location"]?["value"] = destination;
|
fields["location"]?["value"] = destination;
|
||||||
}
|
}
|
||||||
|
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
var order = await InvenTreePurchaseOrder().get(widget.item.orderId);
|
var order = await InvenTreePurchaseOrder().get(widget.item.orderId);
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
|
|
||||||
@ -210,7 +210,7 @@ class _POLineDetailWidgetState extends RefreshableState<POLineDetailWidget> {
|
|||||||
leading: Icon(TablerIcons.box, color: COLOR_ACTION),
|
leading: Icon(TablerIcons.box, color: COLOR_ACTION),
|
||||||
trailing: api.getThumbnail(widget.item.partImage),
|
trailing: api.getThumbnail(widget.item.partImage),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
var part = await InvenTreePart().get(widget.item.partId);
|
var part = await InvenTreePart().get(widget.item.partId);
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
|
|
||||||
@ -228,7 +228,7 @@ class _POLineDetailWidgetState extends RefreshableState<POLineDetailWidget> {
|
|||||||
subtitle: Text(widget.item.SKU),
|
subtitle: Text(widget.item.SKU),
|
||||||
leading: Icon(TablerIcons.building, color: COLOR_ACTION),
|
leading: Icon(TablerIcons.building, color: COLOR_ACTION),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
var part = await InvenTreeSupplierPart().get(widget.item.supplierPartId);
|
var part = await InvenTreeSupplierPart().get(widget.item.supplierPartId);
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ class _PaginatedPOLineListState extends PaginatedSearchState<PaginatedPOLineList
|
|||||||
trailing: Text(item.progressString, style: TextStyle(color: item.isComplete ? COLOR_SUCCESS : COLOR_WARNING)),
|
trailing: Text(item.progressString, style: TextStyle(color: item.isComplete ? COLOR_SUCCESS : COLOR_WARNING)),
|
||||||
leading: InvenTreeAPI().getThumbnail(supplierPart.partImage),
|
leading: InvenTreeAPI().getThumbnail(supplierPart.partImage),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
await item.reload();
|
await item.reload();
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
Navigator.push(context, MaterialPageRoute(builder: (context) => POLineDetailWidget(item)));
|
Navigator.push(context, MaterialPageRoute(builder: (context) => POLineDetailWidget(item)));
|
||||||
|
@ -185,7 +185,7 @@ class _PurchaseOrderDetailState extends RefreshableState<PurchaseOrderDetailWidg
|
|||||||
color: Colors.blue,
|
color: Colors.blue,
|
||||||
acceptText: L10().issue,
|
acceptText: L10().issue,
|
||||||
onAccept: () async {
|
onAccept: () async {
|
||||||
await widget.order.issueOrder().then((dynamic) {
|
widget.order.issueOrder().then((dynamic) {
|
||||||
refresh(context);
|
refresh(context);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -201,7 +201,7 @@ class _PurchaseOrderDetailState extends RefreshableState<PurchaseOrderDetailWidg
|
|||||||
color: Colors.red,
|
color: Colors.red,
|
||||||
acceptText: L10().cancel,
|
acceptText: L10().cancel,
|
||||||
onAccept: () async {
|
onAccept: () async {
|
||||||
await widget.order.cancelOrder().then((dynamic) {
|
widget.order.cancelOrder().then((dynamic) {
|
||||||
refresh(context);
|
refresh(context);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -127,7 +127,7 @@ class _SalesOrderDetailState extends RefreshableState<SalesOrderDetailWidget> {
|
|||||||
color: Colors.blue,
|
color: Colors.blue,
|
||||||
acceptText: L10().issue,
|
acceptText: L10().issue,
|
||||||
onAccept: () async {
|
onAccept: () async {
|
||||||
await widget.order.issueOrder().then((dynamic) {
|
widget.order.issueOrder().then((dynamic) {
|
||||||
refresh(context);
|
refresh(context);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -187,7 +187,7 @@ class _SOLineDetailWidgetState extends RefreshableState<SoLineDetailWidget> {
|
|||||||
leading: Icon(TablerIcons.box, color: COLOR_ACTION),
|
leading: Icon(TablerIcons.box, color: COLOR_ACTION),
|
||||||
trailing: api.getThumbnail(widget.item.partImage),
|
trailing: api.getThumbnail(widget.item.partImage),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
var part = await InvenTreePart().get(widget.item.partId);
|
var part = await InvenTreePart().get(widget.item.partId);
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ class _PaginatedSOLineListState extends PaginatedSearchState<PaginatedSOLineList
|
|||||||
leading: InvenTreeAPI().getThumbnail(part.thumbnail),
|
leading: InvenTreeAPI().getThumbnail(part.thumbnail),
|
||||||
trailing: Text(item.progressString, style: TextStyle(color: item.isComplete ? COLOR_SUCCESS : COLOR_WARNING)),
|
trailing: Text(item.progressString, style: TextStyle(color: item.isComplete ? COLOR_SUCCESS : COLOR_WARNING)),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
await item.reload();
|
await item.reload();
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
|
@ -154,7 +154,7 @@ class _PaginatedBomListState extends PaginatedSearchState<PaginatedBomList> {
|
|||||||
leading: InvenTreeAPI().getThumbnail(subPart?.thumbnail ?? ""),
|
leading: InvenTreeAPI().getThumbnail(subPart?.thumbnail ?? ""),
|
||||||
onTap: subPart == null ? null : () async {
|
onTap: subPart == null ? null : () async {
|
||||||
|
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
var part = await InvenTreePart().get(subPart.pk);
|
var part = await InvenTreePart().get(subPart.pk);
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
|
|
||||||
|
@ -159,7 +159,7 @@ class _CategoryDisplayState extends RefreshableState<CategoryDisplayWidget> {
|
|||||||
Navigator.push(context, MaterialPageRoute(builder: (context) => CategoryDisplayWidget(null)));
|
Navigator.push(context, MaterialPageRoute(builder: (context) => CategoryDisplayWidget(null)));
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
var cat = await InvenTreePartCategory().get(parentId);
|
var cat = await InvenTreePartCategory().get(parentId);
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
|
|
||||||
|
@ -366,7 +366,7 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
|||||||
onTap: () async {
|
onTap: () async {
|
||||||
if (part.categoryId > 0) {
|
if (part.categoryId > 0) {
|
||||||
|
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
var cat = await InvenTreePartCategory().get(part.categoryId);
|
var cat = await InvenTreePartCategory().get(part.categoryId);
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
|
|
||||||
@ -646,7 +646,7 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
|||||||
|
|
||||||
if (part.isTrackable) {
|
if (part.isTrackable) {
|
||||||
// read the next available serial number
|
// read the next available serial number
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
var response = await api.get("/api/part/${part.pk}/serial-numbers/", expectedStatusCode: null);
|
var response = await api.get("/api/part/${part.pk}/serial-numbers/", expectedStatusCode: null);
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ class _PaginatedParameterState extends PaginatedSearchState<PaginatedParameterLi
|
|||||||
value: parameter.as_bool,
|
value: parameter.as_bool,
|
||||||
onChanged: (bool value) {
|
onChanged: (bool value) {
|
||||||
if (parameter.canEdit) {
|
if (parameter.canEdit) {
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
parameter.update(
|
parameter.update(
|
||||||
values: {
|
values: {
|
||||||
"data": value.toString()
|
"data": value.toString()
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
import "package:flutter/material.dart";
|
import "package:flutter/material.dart";
|
||||||
import "package:flutter_overlay_loader/flutter_overlay_loader.dart";
|
import "package:flutter_overlay_loader/flutter_overlay_loader.dart";
|
||||||
import "package:inventree/app_colors.dart";
|
import "package:inventree/app_colors.dart";
|
||||||
|
import "package:one_context/one_context.dart";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -42,7 +43,9 @@ Widget progressIndicator() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void showLoadingOverlay(BuildContext? context) {
|
void showLoadingOverlay() {
|
||||||
|
|
||||||
|
BuildContext? context = OneContext().context;
|
||||||
|
|
||||||
if (context == null) {
|
if (context == null) {
|
||||||
return;
|
return;
|
||||||
|
@ -362,7 +362,7 @@ class _LocationDisplayState extends RefreshableState<LocationDisplayWidget> {
|
|||||||
Navigator.push(context, MaterialPageRoute(
|
Navigator.push(context, MaterialPageRoute(
|
||||||
builder: (context) => LocationDisplayWidget(null)));
|
builder: (context) => LocationDisplayWidget(null)));
|
||||||
} else {
|
} else {
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
var loc = await InvenTreeStockLocation().get(parentId);
|
var loc = await InvenTreeStockLocation().get(parentId);
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
|
|
||||||
|
@ -523,7 +523,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
|
|||||||
onTap: () async {
|
onTap: () async {
|
||||||
if (widget.item.partId > 0) {
|
if (widget.item.partId > 0) {
|
||||||
|
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
var part = await InvenTreePart().get(widget.item.partId);
|
var part = await InvenTreePart().get(widget.item.partId);
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
|
|
||||||
@ -566,7 +566,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
|
|||||||
onTap: () async {
|
onTap: () async {
|
||||||
if (widget.item.locationId > 0) {
|
if (widget.item.locationId > 0) {
|
||||||
|
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
var loc = await InvenTreeStockLocation().get(widget.item.locationId);
|
var loc = await InvenTreeStockLocation().get(widget.item.locationId);
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
|
|
||||||
@ -651,7 +651,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
|
|||||||
leading: Icon(TablerIcons.building, color: COLOR_ACTION),
|
leading: Icon(TablerIcons.building, color: COLOR_ACTION),
|
||||||
trailing: InvenTreeAPI().getThumbnail(widget.item.supplierImage, hideIfNull: true),
|
trailing: InvenTreeAPI().getThumbnail(widget.item.supplierImage, hideIfNull: true),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
showLoadingOverlay(context);
|
showLoadingOverlay();
|
||||||
var sp = await InvenTreeSupplierPart().get(
|
var sp = await InvenTreeSupplierPart().get(
|
||||||
widget.item.supplierPartId);
|
widget.item.supplierPartId);
|
||||||
hideLoadingOverlay();
|
hideLoadingOverlay();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user