import { isValidElement, useContext } from "react"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faCheck } from "@fortawesome/pro-duotone-svg-icons"; import type { ListBoxItemProps as AriaListBoxItemProps } from "react-aria-components"; import { ListBoxItem as AriaListBoxItem, Text as AriaText } from "react-aria-components"; import { Avatar } from "@/components/base/avatar/avatar"; import { cx } from "@/utils/cx"; import { isReactComponent } from "@/utils/is-react-component"; import type { SelectItemType } from "./select"; import { SelectContext } from "./select"; const sizes = { sm: "p-2 pr-2.5", md: "p-2.5 pl-2", }; interface SelectItemProps extends Omit, "id">, SelectItemType {} export const SelectItem = ({ label, id, value, avatarUrl, supportingText, isDisabled, icon: Icon, className, children, ...props }: SelectItemProps) => { const { size } = useContext(SelectContext); const labelOrChildren = label || (typeof children === "string" ? children : ""); const textValue = supportingText ? labelOrChildren + " " + supportingText : labelOrChildren; return ( cx("w-full px-1.5 py-px outline-hidden", typeof className === "function" ? className(state) : className)} > {(state) => (
{avatarUrl ? (
)}
); };