import React from 'react'; import { Avatar } from '@mui/material'; import Close16 from '@lunit/design-system-icons/Close16'; import { StyledOutlinedChip, StyledContainedChipBase, StyledContainedChipEnable, StyledContainedChipDeletable, } from './Chip.styled'; import type { OutlinedChipProps, ReadOnlyContainedChipProps, EnableContainedChipProps, DeletableContainedChipProps, ChipProps, ChipType, ChipThumbnail, } from './Chip.types'; const OutlinedChip = (props: OutlinedChipProps) => { const { color = 'primary', ...restProps } = props; return ; }; /** * Conditional styling for contained chip */ const getAvatar = (thumbnail: ChipThumbnail | undefined) => { if (!thumbnail || typeof thumbnail !== 'string') return; if (thumbnail.length === 0) return ; return {thumbnail.slice(0, 1).toLocaleUpperCase()}; }; const getIcon = (thumbnail: ChipThumbnail | undefined) => { if (thumbnail && typeof thumbnail !== 'string') return thumbnail; return undefined; }; const getLabelMargin = (thumbnail: ChipThumbnail | undefined, deletable?: boolean) => { return { marginLeft: thumbnail ? '0px' : '8px', marginRight: deletable ? '0px' : '8px', }; }; const ReadOnlyContainedChip = (props: ReadOnlyContainedChipProps) => { // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars const { color = 'primary', thumbnail, sx, variant, ...restProps } = props; return ( ); }; const EnableContainedChip = (props: EnableContainedChipProps) => { // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars const { color = 'primary', thumbnail, onClick, variant, ...restProps } = props; return ( ); }; const DeleteIconWithHoverLayer = ({ onClick }: { onClick: () => void }) => { return ( <> ); }; const DeletableContainedChip = (props: DeletableContainedChipProps) => { // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars const { color = 'primary', thumbnail, onDelete, sx, variant, ...restProps } = props; return ( } avatar={getAvatar(thumbnail)} icon={getIcon(thumbnail)} sx={{ '& .MuiChip-label': { ...getLabelMargin(thumbnail, Boolean(onDelete)), }, ...sx, }} /> ); }; const Chip: ChipType = (props: ChipProps) => { const { kind, variant, onDelete, onClick, ...restProps } = props; const isOutlined = kind === 'outlined' || variant === 'outlined'; if (isOutlined) return ; if (onClick) return ; if (onDelete) return ; return ; }; export default Chip;