import clsx from 'clsx'; import { ItemProps } from '@@/form-components/InputList'; import { Select } from '@@/form-components/ReactSelect'; import { isErrorType } from '@@/form-components/formikUtils'; import { FormError } from '@@/form-components/FormError'; import { NodeLabels, Placement } from './types'; interface PlacementItemProps extends ItemProps { nodesLabels: NodeLabels; availableNodeLabels: NodeLabels; } export function PlacementItem({ onChange, item, error, index, nodesLabels, availableNodeLabels, }: PlacementItemProps) { const labelOptions = Object.keys(availableNodeLabels).map((label) => ({ label, value: label, })); const valueOptions = nodesLabels[item.label]?.map((value) => ({ label: value, value, })); const placementError = isErrorType(error) ? error : undefined; return (
option.value === item.value)} onChange={(valueOption) => onChange({ ...item, value: valueOption?.value || '' }) } size="sm" className={clsx({ striked: !!item.needsDeletion })} isDisabled={!!item.needsDeletion} data-cy={`k8sAppCreate-placementName_${index}`} /> {placementError?.value && ( {placementError.value} )}
); }