'use client'; import { Controller, useFormContext, useWatch } from 'react-hook-form'; import { useRSForms } from '@/features/rsform/backend/use-rsforms'; import { PickSubstitutions } from '@/features/rsform/components/pick-substitutions'; import { TextArea } from '@/components/input'; import { type IUpdateOperationDTO } from '../../backend/types'; import { type IOperationSchema } from '../../models/oss'; import { SubstitutionValidator } from '../../models/oss-api'; interface TabSubstitutionsProps { oss: IOperationSchema; } export function TabSubstitutions({ oss }: TabSubstitutionsProps) { const { control } = useFormContext(); const inputs = useWatch({ control, name: 'arguments' }); const substitutions = useWatch({ control, name: 'substitutions' }); const schemasIDs = inputs .map(id => oss.operationByID.get(id)!) .map(operation => operation.result) .filter(id => id !== null); const schemas = useRSForms(schemasIDs); const validator = new SubstitutionValidator(schemas, substitutions); const isCorrect = validator.validate(); return (
( )} />