/* Copyright (C) 2025 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import React from 'react'; import { Input, Typography, Button, Switch } from '@douyinfe/semi-ui'; import { IconFile } from '@douyinfe/semi-icons'; import { FileText, Plus, X, Image } from 'lucide-react'; import { useTranslation } from 'react-i18next'; const ImageUrlInput = ({ imageUrls, imageEnabled, onImageUrlsChange, onImageEnabledChange, disabled = false, }) => { const { t } = useTranslation(); const handleAddImageUrl = () => { const newUrls = [...imageUrls, '']; onImageUrlsChange(newUrls); }; const handleUpdateImageUrl = (index, value) => { const newUrls = [...imageUrls]; newUrls[index] = value; onImageUrlsChange(newUrls); }; const handleRemoveImageUrl = (index) => { const newUrls = imageUrls.filter((_, i) => i !== index); onImageUrlsChange(newUrls); }; return (
{t('图片地址')} {disabled && ( ({t('已在自定义模式中忽略')}) )}
{!imageEnabled ? ( {disabled ? t('图片功能在自定义请求体模式下不可用') : t('启用后可添加图片URL进行多模态对话')} ) : imageUrls.length === 0 ? ( {disabled ? t('图片功能在自定义请求体模式下不可用') : t('点击 + 按钮添加图片URL进行多模态对话')} ) : ( {t('已添加')} {imageUrls.length} {t('张图片')} {disabled ? ` (${t('自定义模式下不可用')})` : ''} )}
{imageUrls.map((url, index) => (
handleUpdateImageUrl(index, value)} className='!rounded-lg' size='small' prefix={} disabled={!imageEnabled || disabled} />
))}
); }; export default ImageUrlInput;