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