'use client'; import { useCallback, useEffect, useMemo } from 'react'; import { IconReset } from '@/components/Icons'; import PickSchema from '@/components/select/PickSchema'; import Checkbox from '@/components/ui/Checkbox'; import Label from '@/components/ui/Label'; import MiniButton from '@/components/ui/MiniButton'; import TextArea from '@/components/ui/TextArea'; import TextInput from '@/components/ui/TextInput'; import AnimateFade from '@/components/wrap/AnimateFade'; import { useLibrary } from '@/context/LibraryContext'; import { ILibraryItem, LibraryItemID, LibraryItemType } from '@/models/library'; import { IOperationSchema } from '@/models/oss'; import { sortItemsForOSS } from '@/models/ossAPI'; interface TabInputOperationProps { oss: IOperationSchema; alias: string; setAlias: React.Dispatch>; title: string; setTitle: React.Dispatch>; comment: string; setComment: React.Dispatch>; attachedID: LibraryItemID | undefined; setAttachedID: React.Dispatch>; createSchema: boolean; setCreateSchema: React.Dispatch>; } function TabInputOperation({ oss, alias, setAlias, title, setTitle, comment, setComment, attachedID, setAttachedID, createSchema, setCreateSchema }: TabInputOperationProps) { const baseFilter = useCallback((item: ILibraryItem) => !oss.schemas.includes(item.id), [oss]); const library = useLibrary(); const sortedItems = useMemo(() => sortItemsForOSS(oss, library.items), [oss, library.items]); useEffect(() => { if (createSchema) { setAttachedID(undefined); } }, [createSchema, setAttachedID]); return ( setTitle(event.target.value)} disabled={attachedID !== undefined} />
setAlias(event.target.value)} disabled={attachedID !== undefined} />