import { ListBoxItem } from 'react-aria-components'
import { Typography } from '../Typography'
import styles from './select.module.css'
import { MaterialIcon } from '../Icons/MaterialIcon'
import { SelectItemProps } from './types'

export function SelectItem({
  children,
  icon,
  isDisabled,
  ...props
}: SelectItemProps) {
  const iconColor = isDisabled ? 'Icon/Interactive/Disabled' : 'Icon/Default'

  return (
    <ListBoxItem
      className={styles.listBoxItem}
      textValue={children}
      isDisabled={isDisabled}
      {...props}
    >
      {({ isSelected }) => (
        <>
          {icon ? (
            <MaterialIcon
              icon={icon}
              size={24}
              color={iconColor}
              aria-hidden="true"
            />
          ) : null}
          <Typography
            variant={
              isSelected ? 'Body/Paragraph/mdBold' : 'Body/Paragraph/mdRegular'
            }
          >
            <span>{children}</span>
          </Typography>
        </>
      )}
    </ListBoxItem>
  )
}
