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