Files
web/packages/design-system/lib/components/Select/SelectItem.tsx
Christian Andolf 2b6fe17c32 fix(SW-1509): add support for default selected key
fixed padding per list item
2025-04-10 13:30:49 +02:00

44 lines
1.0 KiB
TypeScript

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>
)
}