'use client'; import clsx from 'clsx'; import { useMemo, useState } from 'react'; import { TabList, TabPanel, Tabs } from 'react-tabs'; import Modal, { ModalProps } from '@/components/ui/Modal'; import TabLabel from '@/components/ui/TabLabel'; import useRSFormDetails from '@/hooks/useRSFormDetails'; import { LibraryItemID } from '@/models/library'; import { ICstSubstituteData, IRSForm, IRSFormInlineData } from '@/models/rsform'; import ConstituentsTab from './ConstituentsTab'; import SchemaTab from './SchemaTab'; import SubstitutionsTab from './SubstitutionsTab'; interface DlgInlineSynthesisProps extends Pick { receiver: IRSForm; onInlineSynthesis: (data: IRSFormInlineData) => void; } export enum TabID { SCHEMA = 0, SELECTIONS = 1, SUBSTITUTIONS = 2 } function DlgInlineSynthesis({ hideWindow, receiver, onInlineSynthesis }: DlgInlineSynthesisProps) { const [activeTab, setActiveTab] = useState(TabID.SCHEMA); const [donorID, setDonorID] = useState(undefined); const [selected, setSelected] = useState([]); const [substitutions, setSubstitutions] = useState([]); const source = useRSFormDetails({ target: donorID ? String(donorID) : undefined }); const validated = useMemo(() => false, []); function handleSubmit() { if (!source.schema) { return; } const data: IRSFormInlineData = { source: source.schema?.id, receiver: receiver.id, items: selected, substitutions: substitutions }; onInlineSynthesis(data); } return ( ); } export default DlgInlineSynthesis;