2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-07-07 06:10:47 +00:00

Link icons (#677)

* Add LinkIcon component

* Visual UI updates

- Refactor some components
- Clearer text display
- Add obvious chevron icon when a "tile" will take the user somewhere else

* dart format

* Adjust release notes

* Add visual separator

* Cleanup unused imports
This commit is contained in:
Oliver
2025-07-04 21:16:04 +10:00
committed by GitHub
parent c30f1a19d1
commit 2adf8e3430
28 changed files with 261 additions and 195 deletions

View File

@ -11,11 +11,11 @@ import "package:inventree/inventree/company.dart";
import "package:inventree/inventree/part.dart";
import "package:inventree/inventree/purchase_order.dart";
import "package:inventree/inventree/stock.dart";
import "package:inventree/widget/link_icon.dart";
import "package:inventree/widget/progress.dart";
import "package:inventree/widget/refreshable_state.dart";
import "package:inventree/widget/snacks.dart";
import "package:inventree/widget/company/supplier_part_detail.dart";
/*
* Widget for displaying detail view of a single PurchaseOrderLineItem
@ -145,7 +145,7 @@ class _POLineDetailWidgetState extends RefreshableState<POLineDetailWidget> {
title: Text(L10().internalPart),
subtitle: Text(widget.item.partName),
leading: Icon(TablerIcons.box, color: COLOR_ACTION),
trailing: api.getThumbnail(widget.item.partImage),
trailing: LinkIcon(image: api.getThumbnail(widget.item.partImage)),
onTap: () async {
showLoadingOverlay();
var part = await InvenTreePart().get(widget.item.partId);
@ -164,6 +164,7 @@ class _POLineDetailWidgetState extends RefreshableState<POLineDetailWidget> {
title: Text(L10().supplierPart),
subtitle: Text(widget.item.SKU),
leading: Icon(TablerIcons.building, color: COLOR_ACTION),
trailing: LinkIcon(),
onTap: () async {
showLoadingOverlay();
var part = await InvenTreeSupplierPart().get(
@ -172,12 +173,7 @@ class _POLineDetailWidgetState extends RefreshableState<POLineDetailWidget> {
hideLoadingOverlay();
if (part is InvenTreeSupplierPart) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SupplierPartDetailWidget(part),
),
);
part.goToDetailPage(context);
}
},
),
@ -200,11 +196,9 @@ class _POLineDetailWidgetState extends RefreshableState<POLineDetailWidget> {
ListTile(
title: Text(L10().received),
subtitle: ProgressBar(widget.item.progressRatio),
trailing: Text(
trailing: LargeText(
widget.item.progressString,
style: TextStyle(
color: widget.item.isComplete ? COLOR_SUCCESS : COLOR_WARNING,
),
color: widget.item.isComplete ? COLOR_SUCCESS : COLOR_WARNING,
),
leading: Icon(TablerIcons.progress),
),
@ -226,7 +220,7 @@ class _POLineDetailWidgetState extends RefreshableState<POLineDetailWidget> {
ListTile(
title: Text(L10().unitPrice),
leading: Icon(TablerIcons.currency_dollar),
trailing: Text(
trailing: LargeText(
renderCurrency(
widget.item.purchasePrice,
widget.item.purchasePriceCurrency,