UI: Add group verification for Dimensions inconsistencies and persist to DB

This commit is contained in:
Christian Vidal Wolf
2026-04-11 11:48:56 +02:00
parent 0e797e06bb
commit 7ecd1c45d0
3 changed files with 36 additions and 4 deletions
+24 -1
View File
@@ -101,13 +101,15 @@ export function DimensionsView({ data, headers, onEdit, onSaveRow, onCaptureStat
const parts = key.split('x').map(Number);
const volume = parts[0] * parts[1] * parts[2];
const isVerified = rows.some(({ row }) => row[COLUMNS.VERIFIED_DIMS] === true);
result.push({
key,
innerDims: key,
rows,
volume,
isInconsistent: !outerMatch || !unitsMatch || !moqMatch,
isInconsistent: (!outerMatch || !unitsMatch || !moqMatch) && !isVerified,
discrepancies: {
outer: !outerMatch,
units: !unitsMatch,
@@ -221,6 +223,16 @@ export function DimensionsView({ data, headers, onEdit, onSaveRow, onCaptureStat
setPendingAction({ group, sourceRow, fieldType: 'all' });
};
const handleVerifyGroup = (e: React.MouseEvent, group: DimensionGroup) => {
e.stopPropagation();
group.rows.forEach(({ row, index }) => {
const newRow = [...row];
newRow[COLUMNS.VERIFIED_DIMS] = true;
onSaveRow(index, newRow);
});
onCaptureState(`Verified dimensions for ${group.rows.length} products`);
};
const executeNearDupSync = async () => {
if (!pendingNearDupSync) return;
const { clusterKey, targetGroupKey, selectedIndices } = pendingNearDupSync;
@@ -584,6 +596,17 @@ export function DimensionsView({ data, headers, onEdit, onSaveRow, onCaptureStat
)}
</div>
{group.isInconsistent && (
<button
onClick={(e) => handleVerifyGroup(e, group)}
className="px-2 py-1 bg-emerald-600/10 hover:bg-emerald-600 hover:text-white text-emerald-500 rounded border border-emerald-600/30 text-[10px] font-bold transition-colors flex items-center gap-1"
title="Mark as correct to hide from inconsistent list"
>
<CheckCircle2 className="w-3 h-3" />
Mark Correct
</button>
)}
{group.isInconsistent && !expandedGroups.has(group.key) && (
<div className="text-[10px] font-bold text-blue-400 bg-blue-400/5 px-2 py-1 rounded border border-blue-400/20">
OPEN TO SYNC FIELDS