| | |
| | | import TagInput from '@/app/components/base/tag-input' |
| | | import Checkbox from '@/app/components/base/checkbox' |
| | | import { FileTypeIcon } from '@/app/components/base/file-uploader' |
| | | import { noop } from 'lodash-es' |
| | | |
| | | type Props = { |
| | | type: SupportUploadFileTypes.image | SupportUploadFileTypes.document | SupportUploadFileTypes.audio | SupportUploadFileTypes.video | SupportUploadFileTypes.custom |
| | |
| | | selected, |
| | | onToggle, |
| | | customFileTypes = [], |
| | | onCustomFileTypesChange = noop, |
| | | onCustomFileTypesChange = () => { }, |
| | | }) => { |
| | | const { t } = useTranslation() |
| | | |
| | |
| | | return ( |
| | | <div |
| | | className={cn( |
| | | 'cursor-pointer select-none rounded-lg border border-components-option-card-option-border bg-components-option-card-option-bg', |
| | | !isCustomSelected && 'px-3 py-2', |
| | | selected && 'border-[1.5px] border-components-option-card-option-selected-border bg-components-option-card-option-selected-bg', |
| | | !selected && 'hover:border-components-option-card-option-border-hover hover:bg-components-option-card-option-bg-hover', |
| | | 'rounded-lg bg-components-option-card-option-bg border border-components-option-card-option-border cursor-pointer select-none', |
| | | !isCustomSelected && 'py-2 px-3', |
| | | selected && 'border-[1.5px] bg-components-option-card-option-selected-bg border-components-option-card-option-selected-border', |
| | | !selected && 'hover:bg-components-option-card-option-bg-hover hover:border-components-option-card-option-border-hover', |
| | | )} |
| | | onClick={handleOnSelect} |
| | | > |
| | | {isCustomSelected |
| | | ? ( |
| | | <div> |
| | | <div className='flex items-center border-b border-divider-subtle p-3 pb-2'> |
| | | <div className='flex items-center p-3 pb-2 border-b border-divider-subtle'> |
| | | <FileTypeIcon className='shrink-0' type={type} size='md' /> |
| | | <div className='system-sm-medium mx-2 grow text-text-primary'>{t(`appDebug.variableConfig.file.${type}.name`)}</div> |
| | | <div className='mx-2 grow text-text-primary system-sm-medium'>{t(`appDebug.variableConfig.file.${type}.name`)}</div> |
| | | <Checkbox className='shrink-0' checked={selected} /> |
| | | </div> |
| | | <div className='p-3' onClick={e => e.stopPropagation()}> |
| | |
| | | <div className='flex items-center'> |
| | | <FileTypeIcon className='shrink-0' type={type} size='md' /> |
| | | <div className='mx-2 grow'> |
| | | <div className='system-sm-medium text-text-primary'>{t(`appDebug.variableConfig.file.${type}.name`)}</div> |
| | | <div className='system-2xs-regular-uppercase mt-1 text-text-tertiary'>{type !== SupportUploadFileTypes.custom ? FILE_EXTS[type].join(', ') : t('appDebug.variableConfig.file.custom.description')}</div> |
| | | <div className='text-text-primary system-sm-medium'>{t(`appDebug.variableConfig.file.${type}.name`)}</div> |
| | | <div className='mt-1 text-text-tertiary system-2xs-regular-uppercase'>{type !== SupportUploadFileTypes.custom ? FILE_EXTS[type].join(', ') : t('appDebug.variableConfig.file.custom.description')}</div> |
| | | </div> |
| | | <Checkbox className='shrink-0' checked={selected} /> |
| | | </div> |