From 6b8dfaa78254fce6ff1858f0c27dff4b42505857 Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Fri, 3 Nov 2023 11:06:19 +0000 Subject: [PATCH] Use `newPathname` when restoring a renamed file from history (#15534) GitOrigin-RevId: b8f6b7d6174f814db696002891addb961e76ac9c --- .../context/hooks/use-restore-deleted-file.ts | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/services/web/frontend/js/features/history/context/hooks/use-restore-deleted-file.ts b/services/web/frontend/js/features/history/context/hooks/use-restore-deleted-file.ts index 72aba4f174..c9b07d9d73 100644 --- a/services/web/frontend/js/features/history/context/hooks/use-restore-deleted-file.ts +++ b/services/web/frontend/js/features/history/context/hooks/use-restore-deleted-file.ts @@ -71,26 +71,33 @@ export function useRestoreDeletedFile() { const restoreDeletedFile = useCallback( (selection: HistoryContextValue['selection']) => { - const { selectedFile } = selection + const { selectedFile, files } = selection if ( selectedFile && selectedFile.pathname && isFileRemoved(selectedFile) ) { - sendMB('history-v2-restore-deleted') + const file = files.find(file => file.pathname === selectedFile.pathname) + if (file && isFileRemoved(file)) { + sendMB('history-v2-restore-deleted') - setState('restoring') - restoreFile(projectId, selectedFile).then( - (data: RestoreFileResponse) => { - setRestoredFileMetadata(data) - setState('waitingForFileTree') - }, - error => { - setState('error') - handleError(error) - } - ) + setState('restoring') + + restoreFile(projectId, { + ...selectedFile, + pathname: file.newPathname ?? file.pathname, + }).then( + (data: RestoreFileResponse) => { + setRestoredFileMetadata(data) + setState('waitingForFileTree') + }, + error => { + setState('error') + handleError(error) + } + ) + } } }, [handleError, projectId]