'use client'; import { zodResolver } from '@hookform/resolvers/zod'; import clsx from 'clsx'; import { Controller, useForm } from 'react-hook-form'; import { MiniButton } from '@/components/Control'; import { IconReset } from '@/components/Icons'; import { Label } from '@/components/Input'; import { ModalForm } from '@/components/Modal'; import { ILibraryItem, LibraryItemType, PickSchema, useLibrary } from '@/features/library'; import { useDialogsStore } from '@/stores/dialogs'; import { IInputUpdateDTO, IOperationPosition, schemaInputUpdate } from '../backend/api'; import { useInputUpdate } from '../backend/useInputUpdate'; import { IOperation, IOperationSchema } from '../models/oss'; import { sortItemsForOSS } from '../models/ossAPI'; export interface DlgChangeInputSchemaProps { oss: IOperationSchema; target: IOperation; positions: IOperationPosition[]; } function DlgChangeInputSchema() { const { oss, target, positions } = useDialogsStore(state => state.props as DlgChangeInputSchemaProps); const { inputUpdate } = useInputUpdate(); const { setValue, handleSubmit, control } = useForm({ resolver: zodResolver(schemaInputUpdate), defaultValues: { target: target.id, positions: positions, input: target.result } }); const { items } = useLibrary(); const sortedItems = sortItemsForOSS(oss, items); function baseFilter(item: ILibraryItem) { return !oss.schemas.includes(item.id) || item.id === target.result; } function onSubmit(data: IInputUpdateDTO) { return inputUpdate({ itemID: oss.id, data: data }); } return ( void handleSubmit(onSubmit)(event)} className={clsx('w-[35rem]', 'pb-3 px-6 cc-column')} >
( )} />
); } export default DlgChangeInputSchema;