'use client'; import clsx from 'clsx'; import { useState } from 'react'; import { IVersionCreateDTO } from '@/backend/library/api'; 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 } from '@/models/library'; import { nextVersion } from '@/models/libraryAPI'; import { ConstituentaID } from '@/models/rsform'; import { useDialogsStore } from '@/stores/dialogs'; export interface DlgCreateVersionProps { versions: IVersionInfo[]; onCreate: (data: IVersionCreateDTO) => void; selected: ConstituentaID[]; totalCount: number; } function DlgCreateVersion() { const { versions, selected, totalCount, onCreate } = useDialogsStore(state => state.props as DlgCreateVersionProps); const [version, setVersion] = useState(versions.length > 0 ? nextVersion(versions[0].version) : '1.0.0'); const [description, setDescription] = useState(''); const [onlySelected, setOnlySelected] = useState(false); const canSubmit = !versions.find(ver => ver.version === version); function handleSubmit() { onCreate({ version: version, description: description, items: onlySelected ? selected : undefined }); } return ( setVersion(event.target.value)} />