fix(translate): state management is passed when early return (#10022)

fix(translate): wrap file drop handling in async function to ensure setIsProcessing(false) is executed
This commit is contained in:
Phantom 2025-09-08 18:42:23 +08:00 committed by GitHub
parent e16db26d18
commit 2bae30bd11
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -568,34 +568,37 @@ const TranslatePage: FC = () => {
async (e: React.DragEvent<HTMLDivElement>) => {
setIsProcessing(true)
setIsDragging(false)
// const supportedFiles = await filterSupportedFiles(_files, extensions)
const data = await getTextFromDropEvent(e).catch((err) => {
logger.error('getTextFromDropEvent', err)
window.message.error({
key: 'file_error',
content: t('translate.files.error.unknown')
const process = async () => {
// const supportedFiles = await filterSupportedFiles(_files, extensions)
const data = await getTextFromDropEvent(e).catch((err) => {
logger.error('getTextFromDropEvent', err)
window.message.error({
key: 'file_error',
content: t('translate.files.error.unknown')
})
return null
})
return null
})
if (data === null) {
return
}
setText(text + data)
if (data === null) {
return
}
setText(text + data)
const droppedFiles = await getFilesFromDropEvent(e).catch((err) => {
logger.error('handleDrop:', err)
window.message.error({
key: 'file_error',
content: t('translate.files.error.unknown')
const droppedFiles = await getFilesFromDropEvent(e).catch((err) => {
logger.error('handleDrop:', err)
window.message.error({
key: 'file_error',
content: t('translate.files.error.unknown')
})
return null
})
return null
})
if (droppedFiles) {
const file = getSingleFile(droppedFiles) as FileMetadata
if (!file) return
processFile(file)
if (droppedFiles) {
const file = getSingleFile(droppedFiles) as FileMetadata
if (!file) return
processFile(file)
}
}
await process()
setIsProcessing(false)
},
[getSingleFile, processFile, setIsDragging, setText, t, text]