feat: Implement caching for selectable products and enhance product filtering in admin panels
Test Suite / test (24.15.0) (push) Has been cancelled
Test Suite / test (24.15.0) (push) Has been cancelled
This commit is contained in:
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
import '../../../core/api/api_error_mapper.dart';
|
||||
import 'admin_form_shared.dart';
|
||||
import '../data/admin_repository.dart';
|
||||
import '../domain/admin_product.dart';
|
||||
import '../domain/receipt_alias.dart';
|
||||
@@ -162,11 +163,23 @@ class _AdminAliasesPanelState extends ConsumerState<AdminAliasesPanel> {
|
||||
alias.displayProductName.toLowerCase().contains(query);
|
||||
}).toList();
|
||||
|
||||
final productById = <int, AdminProduct>{
|
||||
for (final product in _products) product.id: product,
|
||||
};
|
||||
|
||||
Widget buildAliasCard(ReceiptAlias alias) {
|
||||
final product = productById[alias.productId];
|
||||
final categoryPath = product?.categoryPath ?? 'okänd';
|
||||
|
||||
return Card(
|
||||
child: ListTile(
|
||||
leading: const Icon(Icons.link_outlined),
|
||||
title: Text(alias.receiptName, style: const TextStyle(fontWeight: FontWeight.w500)),
|
||||
title: Row(
|
||||
children: [
|
||||
Expanded(child: Text(alias.receiptName, style: const TextStyle(fontWeight: FontWeight.w500))),
|
||||
buildCategoryPathChip(categoryPath),
|
||||
],
|
||||
),
|
||||
subtitle: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
|
||||
Reference in New Issue
Block a user