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

49 lines
1.2 KiB
TypeScript
Raw Normal View History

2024-06-07 20:17:03 +03:00
'use client';
import { ErrorData } from '@/components/info/InfoError';
import DataLoader from '@/components/wrap/DataLoader';
2024-07-29 16:55:48 +03:00
import { ConstituentaID, IBinarySubstitution, IRSForm } from '@/models/rsform';
2024-06-07 20:17:03 +03:00
import { prefixes } from '@/utils/constants';
2024-07-29 16:55:48 +03:00
import PickInlineSubstitutions from '../../components/select/PickInlineSubstitutions';
2024-06-07 20:17:03 +03:00
interface TabSubstitutionsProps {
2024-06-07 20:17:03 +03:00
receiver?: IRSForm;
source?: IRSForm;
selected: ConstituentaID[];
loading?: boolean;
error?: ErrorData;
2024-07-29 16:55:48 +03:00
substitutions: IBinarySubstitution[];
setSubstitutions: React.Dispatch<React.SetStateAction<IBinarySubstitution[]>>;
2024-06-07 20:17:03 +03:00
}
function TabSubstitutions({
2024-06-07 20:17:03 +03:00
source,
receiver,
selected,
error,
loading,
substitutions,
setSubstitutions
}: TabSubstitutionsProps) {
2024-06-07 20:17:03 +03:00
return (
<DataLoader id='dlg-substitutions-tab' className='cc-column' isLoading={loading} error={error} hasNoData={!source}>
2024-07-29 16:55:48 +03:00
<PickInlineSubstitutions
2024-06-07 20:17:03 +03:00
items={substitutions}
setItems={setSubstitutions}
rows={10}
prefixID={prefixes.cst_inline_synth_substitutes}
schema1={receiver}
schema2={source}
filter2={cst => selected.includes(cst.id)}
/>
</DataLoader>
);
}
export default TabSubstitutions;