| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | '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
 |