import { useMemo } from 'react'; import ConceptTooltip from '../../../components/Common/ConceptTooltip'; import Dropdown from '../../../components/Common/Dropdown'; import DropdownButton from '../../../components/Common/DropdownButton'; import MiniButton from '../../../components/Common/MiniButton'; import HelpRSFormItems from '../../../components/Help/HelpRSFormItems'; import { ArrowDownIcon, ArrowDropdownIcon, ArrowUpIcon, CloneIcon, DiamondIcon, DumpBinIcon, HelpIcon, SmallPlusIcon,UpdateIcon } from '../../../components/Icons'; import { useRSForm } from '../../../context/RSFormContext'; import useDropdown from '../../../hooks/useDropdown'; import { CstType } from '../../../models/rsform'; import { labelCstType } from '../../../utils/labels'; import { getCstTypePrefix, getCstTypeShortcut } from '../../../utils/misc'; interface RSItemsMenuProps { selected: number[] onMoveUp: () => void onMoveDown: () => void onDelete: () => void onClone: () => void onCreate: (type?: CstType) => void onTemplates: () => void onReindex: () => void } function RSItemsMenu({ selected, onMoveUp, onMoveDown, onDelete, onClone, onCreate, onTemplates, onReindex }: RSItemsMenuProps) { const { isEditable } = useRSForm(); const insertMenu = useDropdown(); const nothingSelected = useMemo(() => selected.length === 0, [selected]); return (
} disabled={!isEditable || nothingSelected} onClick={onMoveUp} /> } disabled={!isEditable || nothingSelected} onClick={onMoveDown} /> } disabled={!isEditable || nothingSelected} onClick={onDelete} /> } disabled={!isEditable || selected.length !== 1} onClick={onClone} /> } disabled={!isEditable} onClick={() => onCreate()} />
} disabled={!isEditable} onClick={insertMenu.toggle} /> { insertMenu.isActive && {(Object.values(CstType)).map( (typeStr) => { const type = typeStr as CstType; return ( onCreate(type)} tooltip={getCstTypeShortcut(type)} > {`${getCstTypePrefix(type)}1 — ${labelCstType(type)}`} ); })} }
} disabled={!isEditable} onClick={onTemplates} /> } disabled={!isEditable} onClick={onReindex} />
); } export default RSItemsMenu;