refactor(web): migrate remaining toast usage (#34433)

This commit is contained in:
yyh
2026-04-02 12:16:50 +08:00
committed by GitHub
parent 2d29345f26
commit f9d9ad7a38
273 changed files with 3491 additions and 6996 deletions

View File

@@ -17,7 +17,7 @@ import {
MAX_FILE_UPLOAD_LIMIT,
VIDEO_SIZE_LIMIT,
} from '@/app/components/base/file-uploader/constants'
import { useToastContext } from '@/app/components/base/toast/context'
import { toast } from '@/app/components/base/ui/toast'
import { SupportUploadFileTypes } from '@/app/components/workflow/types'
import { useParams } from '@/next/navigation'
import { uploadRemoteFileInfo } from '@/service/common'
@@ -49,7 +49,6 @@ export const useFileSizeLimit = (fileUploadConfig?: FileUploadConfigResponse) =>
export const useFile = (fileConfig: FileUpload, noNeedToCheckEnable = true) => {
const { t } = useTranslation()
const { notify } = useToastContext()
const fileStore = useFileStore()
const params = useParams()
const { imgSizeLimit, docSizeLimit, audioSizeLimit, videoSizeLimit } = useFileSizeLimit(fileConfig.fileUploadConfig)
@@ -58,14 +57,11 @@ export const useFile = (fileConfig: FileUpload, noNeedToCheckEnable = true) => {
switch (fileType) {
case SupportUploadFileTypes.image: {
if (fileSize > imgSizeLimit) {
notify({
type: 'error',
message: t('fileUploader.uploadFromComputerLimit', {
ns: 'common',
type: SupportUploadFileTypes.image,
size: formatFileSize(imgSizeLimit),
}),
})
toast.error(t('fileUploader.uploadFromComputerLimit', {
ns: 'common',
type: SupportUploadFileTypes.image,
size: formatFileSize(imgSizeLimit),
}))
return false
}
return true
@@ -73,42 +69,33 @@ export const useFile = (fileConfig: FileUpload, noNeedToCheckEnable = true) => {
case SupportUploadFileTypes.custom:
case SupportUploadFileTypes.document: {
if (fileSize > docSizeLimit) {
notify({
type: 'error',
message: t('fileUploader.uploadFromComputerLimit', {
ns: 'common',
type: SupportUploadFileTypes.document,
size: formatFileSize(docSizeLimit),
}),
})
toast.error(t('fileUploader.uploadFromComputerLimit', {
ns: 'common',
type: SupportUploadFileTypes.document,
size: formatFileSize(docSizeLimit),
}))
return false
}
return true
}
case SupportUploadFileTypes.audio: {
if (fileSize > audioSizeLimit) {
notify({
type: 'error',
message: t('fileUploader.uploadFromComputerLimit', {
ns: 'common',
type: SupportUploadFileTypes.audio,
size: formatFileSize(audioSizeLimit),
}),
})
toast.error(t('fileUploader.uploadFromComputerLimit', {
ns: 'common',
type: SupportUploadFileTypes.audio,
size: formatFileSize(audioSizeLimit),
}))
return false
}
return true
}
case SupportUploadFileTypes.video: {
if (fileSize > videoSizeLimit) {
notify({
type: 'error',
message: t('fileUploader.uploadFromComputerLimit', {
ns: 'common',
type: SupportUploadFileTypes.video,
size: formatFileSize(videoSizeLimit),
}),
})
toast.error(t('fileUploader.uploadFromComputerLimit', {
ns: 'common',
type: SupportUploadFileTypes.video,
size: formatFileSize(videoSizeLimit),
}))
return false
}
return true
@@ -117,7 +104,7 @@ export const useFile = (fileConfig: FileUpload, noNeedToCheckEnable = true) => {
return true
}
}
}, [audioSizeLimit, docSizeLimit, imgSizeLimit, notify, t, videoSizeLimit])
}, [audioSizeLimit, docSizeLimit, imgSizeLimit, t, videoSizeLimit])
const handleAddFile = useCallback((newFile: FileEntity) => {
const {
@@ -179,12 +166,12 @@ export const useFile = (fileConfig: FileUpload, noNeedToCheckEnable = true) => {
},
onErrorCallback: (error?: any) => {
const errorMessage = getFileUploadErrorMessage(error, t('fileUploader.uploadFromComputerUploadError', { ns: 'common' }), t)
notify({ type: 'error', message: errorMessage })
toast.error(errorMessage)
handleUpdateFile({ ...uploadingFile, progress: -1 })
},
}, !!params.token)
}
}, [fileStore, notify, t, handleUpdateFile, params])
}, [fileStore, t, handleUpdateFile, params])
const startProgressTimer = useCallback((fileId: string) => {
const timer = setInterval(() => {
@@ -225,7 +212,7 @@ export const useFile = (fileConfig: FileUpload, noNeedToCheckEnable = true) => {
url: res.url,
}
if (!isAllowedFileExtension(res.name, res.mime_type, fileConfig.allowed_file_types || [], fileConfig.allowed_file_extensions || [])) {
notify({ type: 'error', message: `${t('fileUploader.fileExtensionNotSupport', { ns: 'common' })} ${newFile.type}` })
toast.error(`${t('fileUploader.fileExtensionNotSupport', { ns: 'common' })} ${newFile.type}`)
handleRemoveFile(uploadingFile.id)
}
if (!checkSizeLimit(newFile.supportFileType, newFile.size))
@@ -233,10 +220,10 @@ export const useFile = (fileConfig: FileUpload, noNeedToCheckEnable = true) => {
else
handleUpdateFile(newFile)
}).catch(() => {
notify({ type: 'error', message: t('fileUploader.pasteFileLinkInvalid', { ns: 'common' }) })
toast.error(t('fileUploader.pasteFileLinkInvalid', { ns: 'common' }))
handleRemoveFile(uploadingFile.id)
})
}, [checkSizeLimit, handleAddFile, handleUpdateFile, notify, t, handleRemoveFile, fileConfig?.allowed_file_types, fileConfig.allowed_file_extensions, startProgressTimer, params.token])
}, [checkSizeLimit, handleAddFile, handleUpdateFile, t, handleRemoveFile, fileConfig?.allowed_file_types, fileConfig.allowed_file_extensions, startProgressTimer, params.token])
const handleLoadFileFromLinkSuccess = useCallback(noop, [])
@@ -252,11 +239,11 @@ export const useFile = (fileConfig: FileUpload, noNeedToCheckEnable = true) => {
const handleLocalFileUpload = useCallback((file: File) => {
// Check file upload enabled
if (!noNeedToCheckEnable && !fileConfig.enabled) {
notify({ type: 'error', message: t('fileUploader.uploadDisabled', { ns: 'common' }) })
toast.error(t('fileUploader.uploadDisabled', { ns: 'common' }))
return
}
if (!isAllowedFileExtension(file.name, file.type, fileConfig.allowed_file_types || [], fileConfig.allowed_file_extensions || [])) {
notify({ type: 'error', message: `${t('fileUploader.fileExtensionNotSupport', { ns: 'common' })} ${file.type}` })
toast.error(`${t('fileUploader.fileExtensionNotSupport', { ns: 'common' })} ${file.type}`)
return
}
const allowedFileTypes = fileConfig.allowed_file_types
@@ -292,7 +279,7 @@ export const useFile = (fileConfig: FileUpload, noNeedToCheckEnable = true) => {
},
onErrorCallback: (error?: any) => {
const errorMessage = getFileUploadErrorMessage(error, t('fileUploader.uploadFromComputerUploadError', { ns: 'common' }), t as any)
notify({ type: 'error', message: errorMessage })
toast.error(errorMessage)
handleUpdateFile({ ...uploadingFile, progress: -1 })
},
}, !!params.token)
@@ -302,12 +289,12 @@ export const useFile = (fileConfig: FileUpload, noNeedToCheckEnable = true) => {
reader.addEventListener(
'error',
() => {
notify({ type: 'error', message: t('fileUploader.uploadFromComputerReadError', { ns: 'common' }) })
toast.error(t('fileUploader.uploadFromComputerReadError', { ns: 'common' }))
},
false,
)
reader.readAsDataURL(file)
}, [noNeedToCheckEnable, checkSizeLimit, notify, t, handleAddFile, handleUpdateFile, params.token, fileConfig?.allowed_file_types, fileConfig?.allowed_file_extensions, fileConfig?.enabled])
}, [noNeedToCheckEnable, checkSizeLimit, t, handleAddFile, handleUpdateFile, params.token, fileConfig?.allowed_file_types, fileConfig?.allowed_file_extensions, fileConfig?.enabled])
const handleClipboardPasteFile = useCallback((e: ClipboardEvent<HTMLTextAreaElement>) => {
const file = e.clipboardData?.files[0]