(props)
| 506 | } |
| 507 | |
| 508 | function EvaluationRunRow(props) { |
| 509 | const enqueueSnackbar = (...args) => dispatch(enqueueSnackbarAction(...args)) |
| 510 | const closeSnackbar = (...args) => dispatch(closeSnackbarAction(...args)) |
| 511 | |
| 512 | const [open, setOpen] = useState(false) |
| 513 | const [childSelected, setChildSelected] = useState([]) |
| 514 | |
| 515 | const theme = useTheme() |
| 516 | const navigate = useNavigate() |
| 517 | const { confirm } = useConfirm() |
| 518 | const dispatch = useDispatch() |
| 519 | |
| 520 | const showResults = (item) => { |
| 521 | navigate(`/evaluation_results/${item.id}`) |
| 522 | } |
| 523 | |
| 524 | const goToDataset = (id) => { |
| 525 | window.open(`/dataset_rows/${id}`, '_blank') |
| 526 | } |
| 527 | |
| 528 | const onSelectAllChildClick = (event) => { |
| 529 | if (event.target.checked) { |
| 530 | const newSelected = (props?.rows || []).map((n) => n.id) |
| 531 | setChildSelected(newSelected) |
| 532 | return |
| 533 | } |
| 534 | setChildSelected([]) |
| 535 | } |
| 536 | |
| 537 | const handleSelectChild = (event, id) => { |
| 538 | const selectedIndex = childSelected.indexOf(id) |
| 539 | let newSelected = [] |
| 540 | |
| 541 | if (selectedIndex === -1) { |
| 542 | newSelected = newSelected.concat(childSelected, id) |
| 543 | } else if (selectedIndex === 0) { |
| 544 | newSelected = newSelected.concat(childSelected.slice(1)) |
| 545 | } else if (selectedIndex === childSelected.length - 1) { |
| 546 | newSelected = newSelected.concat(childSelected.slice(0, -1)) |
| 547 | } else if (selectedIndex > 0) { |
| 548 | newSelected = newSelected.concat(childSelected.slice(0, selectedIndex), childSelected.slice(selectedIndex + 1)) |
| 549 | } |
| 550 | setChildSelected(newSelected) |
| 551 | } |
| 552 | |
| 553 | const deleteChildEvaluations = async () => { |
| 554 | const confirmPayload = { |
| 555 | title: `Delete`, |
| 556 | description: `Delete ${childSelected.length} ${childSelected.length > 1 ? 'evaluations' : 'evaluation'}?`, |
| 557 | confirmButtonName: 'Delete', |
| 558 | cancelButtonName: 'Cancel' |
| 559 | } |
| 560 | const isConfirmed = await confirm(confirmPayload) |
| 561 | |
| 562 | if (isConfirmed) { |
| 563 | try { |
| 564 | const deleteResp = await evaluationApi.deleteEvaluations(childSelected) |
| 565 | if (deleteResp.data) { |
nothing calls this directly
no test coverage detected