import { Button, Modal, ModalBody, ModalContent, ModalHeader, useDisclosure, Badge, Checkbox, Input, } from '@nextui-org/react'; import { useMemo, useState } from 'react'; import { useExperimentResult } from '../../../features/experiment'; import { useSelectNode } from '../../../features/experiment/hooks'; import { GraphNode } from '@bob-the-algorithm/core'; const FindNodeView = () => { const data = useExperimentResult(); const { isOpen, onOpen, onOpenChange } = useDisclosure(); const [completed, setCompleted] = useState(true); const [text, setText] = useState(''); const selectNode = useSelectNode(); const nodes = useMemo(() => { if (!data) { return []; } let result = [...data.nodes]; if (completed) { result = result.filter((node) => node.completed); } if (text) { result = result.filter((node) => node.id === text); } return result.sort((a, b) => b.score - a.score).slice(0, 10); }, [data, completed, text]); const getColor = (node: GraphNode) => { if (node.completed) { return 'success'; } if (node.deadEnd) { return 'danger'; } return 'primary'; }; return ( <> Find node {(close) => ( <> Nodes Completed {nodes.map((node) => ( { selectNode(node); close(); }} key={node.id} > {node.id} ))} > )} > ); }; export { FindNodeView };