'use client'; import clsx from 'clsx'; import { useMemo, useState } from 'react'; import Modal, { ModalProps } from '@/components/ui/Modal'; import TextArea from '@/components/ui/TextArea'; import TextInput from '@/components/ui/TextInput'; import { IVersionData, IVersionInfo } from '@/models/library'; import { nextVersion } from '@/models/libraryAPI'; interface DlgCreateVersionProps extends Pick { versions: IVersionInfo[]; onCreate: (data: IVersionData) => void; } function DlgCreateVersion({ hideWindow, versions, onCreate }: DlgCreateVersionProps) { const [version, setVersion] = useState(versions.length > 0 ? nextVersion(versions[0].version) : '1.0.0'); const [description, setDescription] = useState(''); const canSubmit = useMemo(() => { return !versions.find(ver => ver.version === version); }, [versions, version]); function handleSubmit() { const data: IVersionData = { version: version, description: description }; onCreate(data); } return ( setVersion(event.target.value)} />