From 86c931e365b5af14b27d1571003579bd92cd3565 Mon Sep 17 00:00:00 2001 From: rahulramesha <71900764+rahulramesha@users.noreply.github.com> Date: Fri, 8 Oct 2021 12:01:43 +0530 Subject: [PATCH] chore: add ctrl y for windows users to redo (#7856) * Scaffolding for undo-redo * undo redo working Poc commit * memory performance improvements by diffing * dont run update on undo/redo" * merging widget postion update and canvas bottom row update into one dsl update. * fix tabs widget * Visible updates per undo redo action (#6838) Co-authored-by: Rahul R * resize atomic operation * fix switch control state issue * disallow undo/redo for snipping and comment mode * disallow undo/redo for snipping and comment mode * fix color picker issue in undo/redo * add test for replayDSL * option control fix, adding logs * minor position change undo redo updates * add test cases for replayHelpers * property Upade visual change * remove unused code * global hot key jest test for undo redo * Fixing batch updates on property change.. * add tests for toggle control in property pane * unwanted utils. * add tests for text control * add tests for deletion * add tests for dropping a new widget * adding jest test for replayUtils * add move widget tests * add tests for color picker control * add analytics for undo/redo * add analytics for undo/redo * tab addition atomic * cypress tests for propertyPane, toasts and radiowidget optionControl * replayDSL end of redo stack fix * property update changes * menu option control debounce input * color picker empty undo fix * fix cypress tests * widget add/remove atomic * revert alternative approach to handle atomic operations * update replayDSL test * add some comments * addressing review comments * flash color for property pane controls * Fixing adding of tabs widget as well. * code review comments. * merging widget postion update and canvas bottom row update into one dsl update. * fix ordering of tabs property control * meta property update canvas min height. * fixing failed specs. * Fixing entity explorer update on deleting tab from entity explorer. * address review comments and minor property update changes * fixing failing tests * merge conflicts * changes to cater widget api. * fix suggested widget table issue * draggable list for undo redo * fix widget name focus * excluding canvas updates. * fixing codeEditor update on propertySection collapse * fixed failing test case * ctrl y to redo for windows users Co-authored-by: Abhinav Jha Co-authored-by: Rahul R Co-authored-by: root Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com> Co-authored-by: Pawan Kumar --- .../src/pages/Editor/GlobalHotKeys.test.tsx | 26 +++++++++++++++++++ app/client/src/pages/Editor/GlobalHotKeys.tsx | 8 ++++++ app/client/src/utils/replayHelpers.tsx | 6 +++-- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/app/client/src/pages/Editor/GlobalHotKeys.test.tsx b/app/client/src/pages/Editor/GlobalHotKeys.test.tsx index 395ced42a6..4c317f5e10 100644 --- a/app/client/src/pages/Editor/GlobalHotKeys.test.tsx +++ b/app/client/src/pages/Editor/GlobalHotKeys.test.tsx @@ -575,6 +575,32 @@ describe("Undo/Redo hotkey", () => { ); }); + expect(dispatchSpy).toBeCalledTimes(1); + expect(dispatchSpy).toBeCalledWith(redoAction()); + }); + it("should dispatch redo Action on ctrl + y", () => { + const dispatchSpy = jest.spyOn(store, "dispatch"); + const component = render( + + + + + , + ); + + dispatchSpy.mockClear(); + + act(() => { + dispatchTestKeyboardEventWithCode( + component.container, + "keydown", + "Y", + 89, + false, + true, + ); + }); + expect(dispatchSpy).toBeCalledTimes(1); expect(dispatchSpy).toBeCalledWith(redoAction()); }); diff --git a/app/client/src/pages/Editor/GlobalHotKeys.tsx b/app/client/src/pages/Editor/GlobalHotKeys.tsx index f3dc3445f7..eb7cb9e075 100644 --- a/app/client/src/pages/Editor/GlobalHotKeys.tsx +++ b/app/client/src/pages/Editor/GlobalHotKeys.tsx @@ -306,6 +306,14 @@ class GlobalHotKeys extends React.Component { preventDefault stopPropagation /> + { case "undo": return <>UNDO ({modText()}+Z) ; case "redo": - return ( + return isMac() ? ( <> REDO ({modText()}++Z){" "} + ) : ( + <>REDO ({modText()}+Y) ); } };