'use client'; import { Controller, useForm, useWatch } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; import { HelpTopic } from '@/features/help'; import { Checkbox, TextInput } from '@/components/input'; import { ModalForm } from '@/components/modal'; import { useDialogsStore } from '@/stores/dialogs'; import { type IDeleteReferenceDTO, type IOssLayout, schemaDeleteReference } from '../backend/types'; import { useDeleteReference } from '../backend/use-delete-reference'; import { type IOperationReference, type IOperationSchema } from '../models/oss'; export interface DlgDeleteReferenceProps { oss: IOperationSchema; target: IOperationReference; layout: IOssLayout; beforeDelete?: () => void; } export function DlgDeleteReference() { const { oss, target, layout, beforeDelete } = useDialogsStore(state => state.props as DlgDeleteReferenceProps); const { deleteReference } = useDeleteReference(); const { handleSubmit, control } = useForm({ resolver: zodResolver(schemaDeleteReference), defaultValues: { target: target.id, layout: layout, keep_constituents: false, keep_connections: false } }); const keep_connections = useWatch({ control, name: 'keep_connections' }); function onSubmit(data: IDeleteReferenceDTO) { return deleteReference({ itemID: oss.id, data: data, beforeUpdate: beforeDelete }); } return ( void handleSubmit(onSubmit)(event)} className='w-140 pb-3 px-6 cc-column select-none' helpTopic={HelpTopic.CC_PROPAGATION} > ( )} /> ( )} /> ); }