setRemediationModalItem(null)}
+ onNoteAdded={() => {
+ if (onQueueRefresh) onQueueRefresh();
+ }}
+ />
+ )}
+
{/* Create Jira Ticket modal */}
{createJiraOpen && (
@@ -3236,8 +3299,11 @@ function AttachmentSourcePicker({ files, onFilesChange, libraryDocs, onLibraryDo
const debounceRef = useRef(null);
// Format file size helper
- const formatSize = (bytes) => {
- const n = Number(bytes);
+ const formatSize = (val) => {
+ if (!val && val !== 0) return '0 B';
+ // If already a formatted string (e.g. "12.34 KB"), return as-is
+ if (typeof val === 'string' && /[A-Za-z]/.test(val)) return val;
+ const n = Number(val);
if (isNaN(n) || n < 0) return '0 B';
if (n < 1024) return n + ' B';
if (n < 1024 * 1024) return (n / 1024).toFixed(1) + ' KB';
@@ -5009,6 +5075,7 @@ function SelectionToolbar({ count, workflowType, vendor, submitting, error, onWo
{ type: 'CARD', color: '#10B981', rgb: '16,185,129' },
{ type: 'GRANITE', color: '#A1887F', rgb: '161,136,127' },
{ type: 'DECOM', color: '#EF4444', rgb: '239,68,68' },
+ { type: 'Remediate', color: '#A855F7', rgb: '168,85,247' },
].map(({ type, color, rgb }) => {
const active = workflowType === type;
return (