diff --git a/client/src/pages/TaskDetail.tsx b/client/src/pages/TaskDetail.tsx index a6e2783..641af5b 100644 --- a/client/src/pages/TaskDetail.tsx +++ b/client/src/pages/TaskDetail.tsx @@ -542,23 +542,23 @@ function FileFieldRow({ Загрузка... ) : files.length > 0 ? ( <> -
+
{files.map((fileInfo, idx) => { const vType = detectViewerType(fileInfo.url, fileInfo.name); const canPreview = vType === 'pdf' || vType === 'word' || vType === 'excel' || vType === 'powerpoint' || vType === 'video' || vType === 'audio' || vType === 'image'; return ( - + {canPreview ? ( ) : ( @@ -567,15 +567,15 @@ function FileFieldRow({ onClick={(e) => { e.preventDefault(); openFilePresigned(fileInfo.url); }} target="_blank" rel="noopener noreferrer" - className="inline-flex items-center gap-1 text-sm text-primary hover:underline" + className="inline-flex items-center gap-1 text-sm text-primary hover:underline min-w-0" data-testid={`file-link-${field.code}-${idx}`} > - - {fileInfo.name} + + {fileInfo.name} {fileInfo.size !== undefined && ( - ({formatFileSize(fileInfo.size)}) + ({formatFileSize(fileInfo.size)}) )} - + )} - )} ) : ( Нет файла @@ -1301,7 +1291,7 @@ function FieldValueRow({ onEnterEdit={handleEnterEdit} fitOverlay={field.type !== 'textarea' && field.type !== 'rich-text'} overlayClassName={field.type === 'textarea' || field.type === 'rich-text' ? 'flex flex-col overflow-hidden' : ''} - overlayMaxHeight={field.type === 'textarea' || field.type === 'rich-text' ? 'min(70vh, 500px)' : undefined} + overlayMaxHeight={field.type === 'textarea' || field.type === 'rich-text' ? 'min(85vh, 700px)' : undefined} overlayMinWidth={field.type === 'textarea' || field.type === 'rich-text' ? '100%' : 180} overlayWidth={field.type === 'textarea' || field.type === 'rich-text' ? '100%' : undefined} className={field.type === 'textarea' || field.type === 'rich-text' ? 'items-start min-h-[24px] w-full' : 'items-center min-h-[28px]'}