| | |
| | | import type { AppIconType, ImageFile } from '@/types/app' |
| | | import cn from '@/utils/classnames' |
| | | import { DISABLE_UPLOAD_IMAGE_AS_ICON } from '@/config' |
| | | import { noop } from 'lodash-es' |
| | | |
| | | export type AppIconEmojiSelection = { |
| | | type: 'emoji' |
| | |
| | | } |
| | | |
| | | return <Modal |
| | | onClose={noop} |
| | | onClose={() => { }} |
| | | isShow |
| | | closable={false} |
| | | wrapperClassName={className} |
| | | className={cn(s.container, '!w-[362px] !p-0')} |
| | | > |
| | | {!DISABLE_UPLOAD_IMAGE_AS_ICON && <div className="w-full p-2 pb-0"> |
| | | <div className='flex items-center justify-center gap-2 rounded-xl bg-background-body p-1'> |
| | | {!DISABLE_UPLOAD_IMAGE_AS_ICON && <div className="p-2 pb-0 w-full"> |
| | | <div className='p-1 flex items-center justify-center gap-2 bg-background-body rounded-xl'> |
| | | {tabs.map(tab => ( |
| | | <button |
| | | key={tab.key} |
| | | className={` |
| | | flex h-8 flex-1 shrink-0 items-center justify-center rounded-xl p-2 text-sm font-medium |
| | | p-2 flex-1 flex justify-center items-center h-8 rounded-xl text-sm shrink-0 font-medium |
| | | ${activeTab === tab.key && 'bg-components-main-nav-nav-button-bg-active shadow-md'} |
| | | `} |
| | | onClick={() => setActiveTab(tab.key as AppIconType)} |
| | |
| | | <ImageInput className={activeTab === 'image' ? 'block' : 'hidden'} onImageInput={handleImageInput} /> |
| | | |
| | | <Divider className='m-0' /> |
| | | <div className='flex w-full items-center justify-center gap-2 p-3'> |
| | | <div className='w-full flex items-center justify-center p-3 gap-2'> |
| | | <Button className='w-full' onClick={() => onClose?.()}> |
| | | {t('app.iconPicker.cancel')} |
| | | </Button> |