Facebook Pixel

Undo Redo

React.js
medium
25 mins

Build a simple text editor with Undo and Redo functionality that allows users to navigate through their text editing history.

Every change in the textarea should be saved as a history step, and users should be able to undo or redo changes.

Things to do

  • Create a textarea where the user can type.
  • Maintain a history array to store all versions of the text.
  • Keep track of the current position in history
  • On each change:
    • Remove any "future" states if the user typed after undoing.
    • Add the new text to the history.
  • A Undo button: Goes one step backward in history.
  • A Redo button: Goes one step forward in history.
  • Disable buttons when they cannot be used:
    • Disable Undo when at the first step in history.
    • Disable Redo when at the latest step in history.

Example

history = ["", "h", "he", "hel", "hell", "hello"] currentStep = 5

Actions

  • If Click Undo - "hell"(currentStep = 4)
  • If Click Undo again - "hel"(currentStep = 3)
  • if Click Redo - "hell(currentStep = 4)

Testing Instructions

Please use the following data-testid attributes in your React component:

  • textarea → for the textarea input
  • undo-button → for the Undo button
  • redo-button → for the Redo button

Reference UI

undoRedo

Preview what you need to build

Companies:

google
amazon
twitter

Solve Similar questions 🔥

Please Login.
Please Login.
Please Login.