'use client'; import { Controller, useFormContext, useWatch } from 'react-hook-form'; import { TextArea, TextInput } from '@/components/input'; import { type ICreateBlockDTO } from '../../backend/types'; import { SelectParent } from '../../components/select-parent'; import { type IOperationSchema, NodeType } from '../../models/oss'; import { constructNodeID } from '../../models/oss-api'; interface TabBlockCardProps { oss: IOperationSchema; } export function TabBlockCard({ oss }: TabBlockCardProps) { const { register, control, formState: { errors } } = useFormContext(); const children_blocks = useWatch({ control, name: 'children_blocks' }); const block_ids = children_blocks.map(id => constructNodeID(NodeType.BLOCK, id)); const all_children = [...block_ids, ...oss.hierarchy.expandAllOutputs(block_ids)]; return (
( !all_children.includes(block.nodeID))} value={field.value ? oss.blockByID.get(field.value) ?? null : null} placeholder='Родительский блок' onChange={value => field.onChange(value ? value.id : null)} /> )} />