diff --git a/src/renderer/src/hooks/useInPlaceEdit.ts b/src/renderer/src/hooks/useInPlaceEdit.ts index ab614f9528..b1cf51e50d 100644 --- a/src/renderer/src/hooks/useInPlaceEdit.ts +++ b/src/renderer/src/hooks/useInPlaceEdit.ts @@ -109,13 +109,12 @@ export function useInPlaceEdit(options: UseInPlaceEditOptions): UseInPlaceEditRe }, []) const handleBlur = useCallback(() => { - // 这里的逻辑需要注意: - // 如果点击了“取消”按钮,可能会先触发 Blur 保存。 - // 通常 InPlaceEdit 的逻辑是 Blur 即 Save。 - // 如果不想 Blur 保存,可以去掉这一行,或者判断 relatedTarget。 - if (!isSaving) { - saveEdit() - } + // Note: The logic here requires attention: + // If the "Cancel" button is clicked, a blur event may trigger a save first. + // Typically, InPlaceEdit saves on blur. + // If you do not want to save on blur, you can remove this line or check relatedTarget. + if (isSaving) return + saveEdit() }, [saveEdit, isSaving]) return { @@ -130,7 +129,7 @@ export function useInPlaceEdit(options: UseInPlaceEditOptions): UseInPlaceEditRe onChange: handleInputChange, onKeyDown: handleKeyDown, onBlur: handleBlur, - disabled: isSaving // 保存时禁用输入 + disabled: isSaving // Disable input while saving } } } diff --git a/src/renderer/src/services/NotesService.ts b/src/renderer/src/services/NotesService.ts index 3a34d46723..44ce5be633 100644 --- a/src/renderer/src/services/NotesService.ts +++ b/src/renderer/src/services/NotesService.ts @@ -127,6 +127,10 @@ export async function uploadNotes( } if (filePaths.length === 0) { + // If all files failed to get system paths, show an error toast + if (totalFiles > 0) { + window.toast.error('Failed to access any of the selected files. Please try selecting the files again.') + } return { uploadedNodes: [], totalFiles, @@ -136,7 +140,7 @@ export async function uploadNotes( } } - // Pause file watcher to prevent N refresh events + // Pause file watcher to prevent multiple refresh events await window.api.file.pauseFileWatcher() // Use simplified batchUpload for File objects @@ -174,7 +178,7 @@ async function uploadNotesRecursive( const basePath = normalizePath(targetPath) try { - // Pause file watcher to prevent N refresh events + // Pause file watcher to prevent multiple refresh events await window.api.file.pauseFileWatcher() try {