2024-06-07 20:17:03 +03:00
|
|
|
'use client';
|
|
|
|
|
2025-01-29 16:17:50 +03:00
|
|
|
import { useRSFormSuspense } from '@/backend/rsform/useRSForm';
|
2024-07-30 15:59:37 +03:00
|
|
|
import PickSubstitutions from '@/components/select/PickSubstitutions';
|
2025-01-29 16:17:50 +03:00
|
|
|
import { LibraryItemID } from '@/models/library';
|
2024-07-30 15:59:37 +03:00
|
|
|
import { ICstSubstitute } from '@/models/oss';
|
2024-12-13 21:30:49 +03:00
|
|
|
import { ConstituentaID, IRSForm } from '@/models/rsform';
|
2024-06-07 20:17:03 +03:00
|
|
|
import { prefixes } from '@/utils/constants';
|
|
|
|
|
2024-06-26 19:47:05 +03:00
|
|
|
interface TabSubstitutionsProps {
|
2025-01-29 16:17:50 +03:00
|
|
|
receiver: IRSForm;
|
|
|
|
sourceID: LibraryItemID;
|
2024-06-07 20:17:03 +03:00
|
|
|
selected: ConstituentaID[];
|
|
|
|
|
2024-07-30 15:59:37 +03:00
|
|
|
substitutions: ICstSubstitute[];
|
|
|
|
setSubstitutions: React.Dispatch<React.SetStateAction<ICstSubstitute[]>>;
|
2024-06-07 20:17:03 +03:00
|
|
|
}
|
|
|
|
|
2025-01-29 16:17:50 +03:00
|
|
|
function TabSubstitutions({ sourceID, receiver, selected, substitutions, setSubstitutions }: TabSubstitutionsProps) {
|
|
|
|
const { schema: source } = useRSFormSuspense({ itemID: sourceID });
|
2024-12-13 21:30:49 +03:00
|
|
|
const schemas = [...(source ? [source] : []), ...(receiver ? [receiver] : [])];
|
2024-07-30 15:59:37 +03:00
|
|
|
|
2024-06-07 20:17:03 +03:00
|
|
|
return (
|
2025-01-29 16:17:50 +03:00
|
|
|
<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
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2024-06-26 19:47:05 +03:00
|
|
|
export default TabSubstitutions;
|