import React, { Component } from 'react' import { courtesyS } from '../util' import { TableTuples, DetectionList, Keyframe } from '.' export default class Classifier extends Component { render() { const { tag, sha256, verified, keyframes = {}, labels, summary, aspectRatio = 1.777, showAll, } = this.props let totalDetections = 0 const keys = Object .keys(keyframes) .map(s => parseInt(s, 10)) const validKeyframes = keys .sort((a, b) => a - b) .map(frame => { const detections = keyframes[frame] if (detections.length || showAll) { totalDetections += detections.length return { frame, detections } } return null }) .filter(f => !!f) const detectionLookup = validKeyframes .reduce((a, b) => { b.detections.reduce((aa, { idx }) => { if (!(idx in aa)) aa[idx] = [labels[idx], 0] aa[idx][1] += 1 return aa }, a) return a }, {}) const detectionCounts = Object.keys(detectionLookup) .map(idx => detectionLookup[idx]) .sort((a, b) => b[1] - a[1]) if (summary) { return (

{tag}{' Detections'}

) } return (

{tag}

Detections

Frames

{validKeyframes.map(({ frame, detections }) => ( ))}
) } }