import { Button, ButtonProps, chakra, FormControl, FormHelperText, FormLabel, HStack, Menu, MenuButton, MenuItem, MenuList, Portal, Stack, } from '@chakra-ui/react' import { ChevronLeftIcon } from '@/components/icons' import React, { ReactNode } from 'react' import { MoreInfoTooltip } from './MoreInfoTooltip' // eslint-disable-next-line @typescript-eslint/no-explicit-any type Props = { currentItem: T[number] | undefined onItemSelect: (item: T[number]) => void items: T placeholder?: string label?: string isRequired?: boolean direction?: 'row' | 'column' helperText?: ReactNode moreInfoTooltip?: string } // eslint-disable-next-line @typescript-eslint/no-explicit-any export const DropdownList = ({ currentItem, onItemSelect, items, placeholder, label, isRequired, direction = 'column', helperText, moreInfoTooltip, ...props }: Props & ButtonProps) => { const handleMenuItemClick = (operator: T[number]) => () => { onItemSelect(operator) } return ( {label && ( {label}{' '} {moreInfoTooltip && ( {moreInfoTooltip} )} )} } colorScheme="gray" justifyContent="space-between" textAlign="left" w="full" {...props} > {currentItem ?? placeholder ?? 'Select an item'} {items.map((item) => ( {item} ))} {helperText && {helperText}} ) }