import { Badge, Button, ButtonGroup, HStack, IconButton, Link, Menu, MenuButton, MenuItem, MenuList, Stack, Text, } from '@chakra-ui/react'; import { __ } from '@wordpress/i18n'; import React from 'react'; import { BiDotsVerticalRounded } from 'react-icons/bi'; import { Link as RouterLink } from 'react-router-dom'; import { Td, Tr } from 'react-super-responsive-table'; import { Trash } from '../../../../assets/js/back-end/constants/images'; import h5pRoutes from '../../constants/routes'; import { H5PQuizAttempt } from '../../types/h5pQuizAttempt'; interface Props { data: H5PQuizAttempt; onDeletePress: (id: number) => void; } const H5PQuizAttemptList: React.FC = ({ data, onDeletePress }) => { const isFinished = 'finished' === data.status; const detailUrl = h5pRoutes.h5pQuizAttempt.view.replace( ':attemptId', data.id.toString(), ); const studentLabel = ( <> #{data.id}{' '} {data.user ? `${data.user.first_name} ${data.user.last_name}`.trim() || data.user.display_name : `User #${data.id}`} ); return ( {isFinished ? ( {studentLabel} ) : ( {studentLabel} )} {data.user && ( {data.user.display_name} ({data.user.email}) )} {data.quiz?.name ?? `Quiz #${data.id}`} {data.course && ( {__('Course:', 'learning-management-system')} {data.course.name} )} {__('Attempt #:', 'learning-management-system')}{' '} {data.attempt_number} {__('Score:', 'learning-management-system')}{' '} {data.max_score > 0 ? `${data.score} / ${data.max_score}` : __('Unscored', 'learning-management-system')} {!isFinished ? ( {__('In Progress', 'learning-management-system')} ) : ( {data.passed === 'yes' ? __('Pass', 'learning-management-system') : __('Fail', 'learning-management-system')} {data.max_score > 0 && ( {data.percentage}% )} )} {isFinished && ( )} } variant="outline" rounded="sm" fontSize="large" size="xs" /> onDeletePress(data.id)} icon={} _hover={{ color: 'red.500' }} > {__('Delete', 'learning-management-system')} ); }; export default H5PQuizAttemptList;