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