'use client'; import clsx from 'clsx'; import { useMemo, useState } from 'react'; import { TabList, TabPanel, Tabs } from 'react-tabs'; import BadgeHelp from '@/components/info/BadgeHelp'; import Modal from '@/components/ui/Modal'; import Overlay from '@/components/ui/Overlay'; import TabLabel from '@/components/ui/TabLabel'; import { ReferenceType } from '@/models/language'; import { HelpTopic } from '@/models/miscellaneous'; import { IRSForm } from '@/models/rsform'; import { PARAMETER } from '@/utils/constants'; import { labelReferenceType } from '@/utils/labels'; import TabEntityReference from './TabEntityReference'; import TabSyntacticReference from './TabSyntacticReference'; export interface IReferenceInputState { type: ReferenceType; refRaw?: string; text?: string; mainRefs: string[]; basePosition: number; } interface DlgEditReferenceProps { hideWindow: () => void; schema: IRSForm; initial: IReferenceInputState; onSave: (newRef: string) => void; } export enum TabID { ENTITY = 0, SYNTACTIC = 1 } function DlgEditReference({ hideWindow, schema, initial, onSave }: DlgEditReferenceProps) { const [activeTab, setActiveTab] = useState(initial.type === ReferenceType.ENTITY ? TabID.ENTITY : TabID.SYNTACTIC); const [reference, setReference] = useState(''); const [isValid, setIsValid] = useState(false); const handleSubmit = () => onSave(reference); const entityPanel = useMemo( () => ( ), [initial, schema] ); const syntacticPanel = useMemo( () => ( ), [initial] ); return ( {entityPanel} {syntacticPanel} ); } export default DlgEditReference;