diff --git a/src/app/utils.js b/src/app/utils.js index fb11e873..9ca58144 100644 --- a/src/app/utils.js +++ b/src/app/utils.js @@ -135,7 +135,10 @@ export const getRandomColor = () => { const green = Math.floor(Math.random() * (255 - 0) + 0); const blue = Math.floor(Math.random() * (255 - 0) + 0); - const integer = ((Math.round(red) & 0xff) << 16) + ((Math.round(green) & 0xff) << 8) + (Math.round(blue) & 0xff); + const integer = + ((Math.round(red) & 0xff) << 16) + + ((Math.round(green) & 0xff) << 8) + + (Math.round(blue) & 0xff); const string = integer.toString(16).toUpperCase(); return '000000'.substring(string.length) + string; @@ -156,10 +159,14 @@ export const normalizeErrors = (error, code) => { }; export const isImageReviewed = (image) => { + // images are considered reviewed if they: + // have objects, + // all objects are locked, + // AND not all labels of all objects have been invalidated const hasObjs = image.objects.length > 0; const hasUnlockedObjs = image.objects.some((obj) => obj.locked === false); const hasAllInvalidatedLabels = !image.objects.some((obj) => obj.labels.some((lbl) => !lbl.validation || lbl.validation.validated), ); return hasObjs && !hasUnlockedObjs && !hasAllInvalidatedLabels; -}; \ No newline at end of file +}; diff --git a/src/features/review/reviewSlice.js b/src/features/review/reviewSlice.js index 11eac6cc..af57d69c 100644 --- a/src/features/review/reviewSlice.js +++ b/src/features/review/reviewSlice.js @@ -91,8 +91,9 @@ export const reviewSlice = createSlice({ if (!object.labels.length) { const objectIndex = image.objects.findIndex((obj) => obj._id === objId); image.objects.splice(objectIndex, 1); - image.reviewed = isImageReviewed(image); } + + image.reviewed = isImageReviewed(image); } }, @@ -102,7 +103,6 @@ export const reviewSlice = createSlice({ label.validation = { validated, userId }; const image = findImage(state.workingImages, imgId); image.reviewed = isImageReviewed(image); - console.log(image); }); state.lastAction = payload.labels[0].validated ? 'labels-validated' : 'labels-invalidated'; @@ -115,6 +115,7 @@ export const reviewSlice = createSlice({ object.locked = oldLocked; const label = findLabel(state.workingImages, imgId, objId, lblId); label.validation = oldValidation; + const image = findImage(state.workingImages, imgId); image.reviewed = isImageReviewed(image); }); },