Untitled
unknown
javascript
5 months ago
1.6 kB
5
Indexable
const mergedDataReportResponse = useMemo( () => reportResponseTime.reduce( (accumulator: IReport[], currentData: IReport) => { const existingEntry = accumulator.find( (entry) => entry.username === currentData.username ); if (existingEntry) { if (currentData.avg_seconds > existingEntry.oldest_agent_inbox) { existingEntry.oldest_agent_inbox = currentData.avg_seconds; } if (existingEntry.oldest_agent_inbox === currentData.avg_seconds) { existingEntry.oldest_inbox_id = Math.max(currentData.inbox_id); } existingEntry.avg_seconds += currentData.avg_seconds; existingEntry.inbox_reassign_sequence += currentData.inbox_reassign_sequence; existingEntry.inbox_reopen_sequence += currentData.inbox_reopen_sequence; if (Array.isArray(existingEntry.inbox_id)) { existingEntry.inbox_count += 1; existingEntry.inbox_id.push(currentData.inbox_id); } } else { accumulator.push({ ...currentData, inbox_count: 1, oldest_agent_inbox: currentData.avg_seconds || 0, oldest_inbox_id: currentData.inbox_id || 0, inbox_id: [currentData.inbox_id] as any, total_average: Math.abs(currentData.avg_seconds) / currentData.inbox_count, }); } return accumulator; }, [] ), [reportResponseTime] );
Editor is loading...
Leave a Comment