Portal/rsconcept/frontend/src/dialogs/DlgInlineSynthesis/TabSubstitutions.tsx

36 lines
1.2 KiB
TypeScript
Raw Normal View History

2024-06-07 20:17:03 +03:00
'use client';
import { useRSFormSuspense } from '@/backend/rsform/useRSForm';
import PickSubstitutions from '@/components/select/PickSubstitutions';
import { LibraryItemID } from '@/models/library';
import { ICstSubstitute } from '@/models/oss';
import { ConstituentaID, IRSForm } from '@/models/rsform';
2024-06-07 20:17:03 +03:00
import { prefixes } from '@/utils/constants';
interface TabSubstitutionsProps {
receiver: IRSForm;
sourceID: LibraryItemID;
2024-06-07 20:17:03 +03:00
selected: ConstituentaID[];
substitutions: ICstSubstitute[];
setSubstitutions: React.Dispatch<React.SetStateAction<ICstSubstitute[]>>;
2024-06-07 20:17:03 +03:00
}
function TabSubstitutions({ sourceID, receiver, selected, substitutions, setSubstitutions }: TabSubstitutionsProps) {
const { schema: source } = useRSFormSuspense({ itemID: sourceID });
const schemas = [...(source ? [source] : []), ...(receiver ? [receiver] : [])];
2024-06-07 20:17:03 +03:00
return (
<PickSubstitutions
substitutions={substitutions}
setSubstitutions={setSubstitutions}
rows={10}
prefixID={prefixes.cst_inline_synth_substitutes}
schemas={schemas}
filter={cst => cst.id !== source?.id || selected.includes(cst.id)}
/>
2024-06-07 20:17:03 +03:00
);
}
export default TabSubstitutions;