import { TestCaseConfig } from 'hydrooj'; import { Text } from '@mantine/core'; import { omit } from 'lodash'; import { useContextMenu } from 'mantine-contextmenu'; import React from 'react'; import { useDrag } from 'react-dnd'; import { useDispatch } from 'react-redux'; import { i18n } from 'vj/utils'; interface TestcaseNodeProps { c: TestCaseConfig; index: number; time?: string; memory?: string; onClick?: () => void; selected: boolean; subtaskId: number; subtaskIds: number[]; } export function TestcaseNode(props: TestcaseNodeProps) { const { c, selected, onClick, subtaskId, } = props; let display = `${c.input} / ${c.output}`; const minlength = Math.min(c.input.length, c.output.length); for (let i = minlength; i >= 0; i--) { const prefix = c.input.slice(0, i); if (c.input.startsWith(prefix) && c.output.startsWith(prefix)) { display = `${prefix}(${c.input.substring(i)}/${c.output.substring(i)})`; break; } } return (