Fix linting

This commit is contained in:
yangdx
2025-03-28 16:49:35 +08:00
parent 35d4503677
commit adb4ca9294
3 changed files with 28 additions and 28 deletions

View File

@@ -559,7 +559,7 @@ def create_document_routes(
if file_path.exists(): if file_path.exists():
return InsertResponse( return InsertResponse(
status="duplicated", status="duplicated",
message=f"File '{file.filename}' already exists in the input directory." message=f"File '{file.filename}' already exists in the input directory.",
) )
with open(file_path, "wb") as buffer: with open(file_path, "wb") as buffer:

View File

@@ -30,18 +30,18 @@ export default function UploadDocumentsDialog() {
rejectedFiles.forEach(({ file, errors }) => { rejectedFiles.forEach(({ file, errors }) => {
// Get the first error message // Get the first error message
let errorMsg = errors[0]?.message || t('documentPanel.uploadDocuments.fileUploader.fileRejected', { name: file.name }) let errorMsg = errors[0]?.message || t('documentPanel.uploadDocuments.fileUploader.fileRejected', { name: file.name })
// Simplify error message for unsupported file types // Simplify error message for unsupported file types
if (errorMsg.includes('file-invalid-type')) { if (errorMsg.includes('file-invalid-type')) {
errorMsg = t('documentPanel.uploadDocuments.fileUploader.unsupportedType') errorMsg = t('documentPanel.uploadDocuments.fileUploader.unsupportedType')
} }
// Set progress to 100% to display error message // Set progress to 100% to display error message
setProgresses((pre) => ({ setProgresses((pre) => ({
...pre, ...pre,
[file.name]: 100 [file.name]: 100
})) }))
// Add error message to fileErrors // Add error message to fileErrors
setFileErrors(prev => ({ setFileErrors(prev => ({
...prev, ...prev,
@@ -55,7 +55,7 @@ export default function UploadDocumentsDialog() {
const handleDocumentsUpload = useCallback( const handleDocumentsUpload = useCallback(
async (filesToUpload: File[]) => { async (filesToUpload: File[]) => {
setIsUploading(true) setIsUploading(true)
// Only clear errors for files that are being uploaded, keep errors for rejected files // Only clear errors for files that are being uploaded, keep errors for rejected files
setFileErrors(prev => { setFileErrors(prev => {
const newErrors = { ...prev }; const newErrors = { ...prev };
@@ -64,14 +64,14 @@ export default function UploadDocumentsDialog() {
}); });
return newErrors; return newErrors;
}); });
// Show uploading toast // Show uploading toast
const toastId = toast.loading(t('documentPanel.uploadDocuments.batch.uploading')) const toastId = toast.loading(t('documentPanel.uploadDocuments.batch.uploading'))
try { try {
// Track errors locally to ensure we have the final state // Track errors locally to ensure we have the final state
const uploadErrors: Record<string, string> = {} const uploadErrors: Record<string, string> = {}
await Promise.all( await Promise.all(
filesToUpload.map(async (file) => { filesToUpload.map(async (file) => {
try { try {
@@ -80,7 +80,7 @@ export default function UploadDocumentsDialog() {
...pre, ...pre,
[file.name]: 0 [file.name]: 0
})) }))
const result = await uploadDocument(file, (percentCompleted: number) => { const result = await uploadDocument(file, (percentCompleted: number) => {
console.debug(t('documentPanel.uploadDocuments.single.uploading', { name: file.name, percent: percentCompleted })) console.debug(t('documentPanel.uploadDocuments.single.uploading', { name: file.name, percent: percentCompleted }))
setProgresses((pre) => ({ setProgresses((pre) => ({
@@ -104,10 +104,10 @@ export default function UploadDocumentsDialog() {
} }
} catch (err) { } catch (err) {
console.error(`Upload failed for ${file.name}:`, err) console.error(`Upload failed for ${file.name}:`, err)
// Handle HTTP errors, including 400 errors // Handle HTTP errors, including 400 errors
let errorMsg = errorMessage(err) let errorMsg = errorMessage(err)
// If it's an axios error with response data, try to extract more detailed error info // If it's an axios error with response data, try to extract more detailed error info
if (err && typeof err === 'object' && 'response' in err) { if (err && typeof err === 'object' && 'response' in err) {
const axiosError = err as { response?: { status: number, data?: { detail?: string } } } const axiosError = err as { response?: { status: number, data?: { detail?: string } } }
@@ -115,14 +115,14 @@ export default function UploadDocumentsDialog() {
// Extract specific error message from backend response // Extract specific error message from backend response
errorMsg = axiosError.response.data?.detail || errorMsg errorMsg = axiosError.response.data?.detail || errorMsg
} }
// Set progress to 100% to display error message // Set progress to 100% to display error message
setProgresses((pre) => ({ setProgresses((pre) => ({
...pre, ...pre,
[file.name]: 100 [file.name]: 100
})) }))
} }
// Record error message in both local tracking and state // Record error message in both local tracking and state
uploadErrors[file.name] = errorMsg uploadErrors[file.name] = errorMsg
setFileErrors(prev => ({ setFileErrors(prev => ({
@@ -132,10 +132,10 @@ export default function UploadDocumentsDialog() {
} }
}) })
) )
// Check if any files failed to upload using our local tracking // Check if any files failed to upload using our local tracking
const hasErrors = Object.keys(uploadErrors).length > 0 const hasErrors = Object.keys(uploadErrors).length > 0
// Update toast status // Update toast status
if (hasErrors) { if (hasErrors) {
toast.error(t('documentPanel.uploadDocuments.batch.error'), { id: toastId }) toast.error(t('documentPanel.uploadDocuments.batch.error'), { id: toastId })

View File

@@ -155,7 +155,7 @@ function FileUploader(props: FileUploaderProps) {
(acceptedFiles: File[], rejectedFiles: FileRejection[]) => { (acceptedFiles: File[], rejectedFiles: FileRejection[]) => {
// Calculate total file count including both accepted and rejected files // Calculate total file count including both accepted and rejected files
const totalFileCount = (files?.length ?? 0) + acceptedFiles.length + rejectedFiles.length const totalFileCount = (files?.length ?? 0) + acceptedFiles.length + rejectedFiles.length
// Check file count limits // Check file count limits
if (!multiple && maxFileCount === 1 && (acceptedFiles.length + rejectedFiles.length) > 1) { if (!multiple && maxFileCount === 1 && (acceptedFiles.length + rejectedFiles.length) > 1) {
toast.error(t('documentPanel.uploadDocuments.fileUploader.singleFileLimit')) toast.error(t('documentPanel.uploadDocuments.fileUploader.singleFileLimit'))
@@ -186,19 +186,19 @@ function FileUploader(props: FileUploaderProps) {
preview: URL.createObjectURL(file) preview: URL.createObjectURL(file)
}) })
) )
// Process rejected files for UI display // Process rejected files for UI display
const newRejectedFiles = rejectedFiles.map(({ file }) => const newRejectedFiles = rejectedFiles.map(({ file }) =>
Object.assign(file, { Object.assign(file, {
preview: URL.createObjectURL(file), preview: URL.createObjectURL(file),
rejected: true rejected: true
}) })
) )
// Combine all files for display // Combine all files for display
const allNewFiles = [...newAcceptedFiles, ...newRejectedFiles] const allNewFiles = [...newAcceptedFiles, ...newRejectedFiles]
const updatedFiles = files ? [...files, ...allNewFiles] : allNewFiles const updatedFiles = files ? [...files, ...allNewFiles] : allNewFiles
// Update the files state with all files // Update the files state with all files
setFiles(updatedFiles) setFiles(updatedFiles)
@@ -211,13 +211,13 @@ function FileUploader(props: FileUploaderProps) {
const isAccepted = Object.entries(accept || {}).some(([mimeType, extensions]) => { const isAccepted = Object.entries(accept || {}).some(([mimeType, extensions]) => {
return file.type === mimeType || extensions.includes(fileExt); return file.type === mimeType || extensions.includes(fileExt);
}); });
// Check file size // Check file size
const isSizeValid = file.size <= maxSize; const isSizeValid = file.size <= maxSize;
return isAccepted && isSizeValid; return isAccepted && isSizeValid;
}); });
if (validFiles.length > 0) { if (validFiles.length > 0) {
onUpload(validFiles); onUpload(validFiles);
} }
@@ -265,24 +265,24 @@ function FileUploader(props: FileUploaderProps) {
const isAccepted = Object.entries(accept || {}).some(([mimeType, extensions]) => { const isAccepted = Object.entries(accept || {}).some(([mimeType, extensions]) => {
return file.type === mimeType || extensions.includes(fileExt); return file.type === mimeType || extensions.includes(fileExt);
}); });
if (!isAccepted) { if (!isAccepted) {
return { return {
code: 'file-invalid-type', code: 'file-invalid-type',
message: t('documentPanel.uploadDocuments.fileUploader.unsupportedType') message: t('documentPanel.uploadDocuments.fileUploader.unsupportedType')
}; };
} }
// Check file size // Check file size
if (file.size > maxSize) { if (file.size > maxSize) {
return { return {
code: 'file-too-large', code: 'file-too-large',
message: t('documentPanel.uploadDocuments.fileUploader.fileTooLarge', { message: t('documentPanel.uploadDocuments.fileUploader.fileTooLarge', {
maxSize: formatBytes(maxSize) maxSize: formatBytes(maxSize)
}) })
}; };
} }
return null; return null;
}} }}
> >