Spaces:
Build error
Build error
'use client' | |
import type { FC } from 'react' | |
import { init } from 'emoji-mart' | |
import data from '@emoji-mart/data' | |
import style from './style.module.css' | |
import classNames from '@/utils/classnames' | |
import type { AppIconType } from '@/types/app' | |
init({ data }) | |
export type AppIconProps = { | |
size?: 'xs' | 'tiny' | 'small' | 'medium' | 'large' | |
rounded?: boolean | |
iconType?: AppIconType | null | |
icon?: string | |
background?: string | null | |
imageUrl?: string | null | |
className?: string | |
innerIcon?: React.ReactNode | |
onClick?: () => void | |
} | |
const AppIcon: FC<AppIconProps> = ({ | |
size = 'medium', | |
rounded = false, | |
iconType, | |
icon, | |
background, | |
imageUrl, | |
className, | |
innerIcon, | |
onClick, | |
}) => { | |
const wrapperClassName = classNames( | |
style.appIcon, | |
size !== 'medium' && style[size], | |
rounded && style.rounded, | |
className ?? '', | |
'overflow-hidden', | |
) | |
const isValidImageIcon = iconType === 'image' && imageUrl | |
return <span | |
className={wrapperClassName} | |
style={{ background: isValidImageIcon ? undefined : (background || '#FFEAD5') }} | |
onClick={onClick} | |
> | |
{isValidImageIcon | |
? <img src={imageUrl} className="w-full h-full" alt="app icon" /> | |
: (innerIcon || ((icon && icon !== '') ? <em-emoji id={icon} /> : <em-emoji id='🤖' />)) | |
} | |
</span> | |
} | |
export default AppIcon | |