'use client'; import { zodResolver } from '@hookform/resolvers/zod'; import clsx from 'clsx'; import { Controller, useForm, useWatch } from 'react-hook-form'; import { CreateVersionSchema, IVersionCreateDTO } from '@/backend/library/api'; import { useVersionCreate } from '@/backend/library/useVersionCreate'; import Checkbox from '@/components/ui/Checkbox'; import Modal from '@/components/ui/Modal'; import TextArea from '@/components/ui/TextArea'; import TextInput from '@/components/ui/TextInput'; import { IVersionInfo, LibraryItemID, VersionID } from '@/models/library'; import { nextVersion } from '@/models/libraryAPI'; import { ConstituentaID } from '@/models/rsform'; import { useDialogsStore } from '@/stores/dialogs'; import { globals } from '@/utils/constants'; export interface DlgCreateVersionProps { itemID: LibraryItemID; versions: IVersionInfo[]; onCreate: (newVersion: VersionID) => void; selected: ConstituentaID[]; totalCount: number; } function DlgCreateVersion() { const { itemID, // versions, selected, totalCount, onCreate } = useDialogsStore(state => state.props as DlgCreateVersionProps); const { versionCreate } = useVersionCreate(); const { register, handleSubmit, control } = useForm({ resolver: zodResolver(CreateVersionSchema), defaultValues: { version: versions.length > 0 ? nextVersion(versions[0].version) : '1.0.0', description: '', items: undefined } }); const version = useWatch({ control, name: 'version' }); const canSubmit = !versions.find(ver => ver.version === version); function onSubmit(data: IVersionCreateDTO) { versionCreate({ itemID, data }, onCreate); } return (
void handleSubmit(onSubmit)(event)} >