Gasim Gasimzada 33016bf6bf
Fix issues related to history (#701)
* Separate UI from Canvas

* Explicitly define history recording

* ActionManager: Set syncActionState during construction instead of in every call

* Add commit to history flag to necessary actions

* Disable undoing during multiElement

* Write custom equality function for UI component to render it only when specific props and elements change

* Remove stale comments about history skipping

* Stop undo/redoing when in resizing element mode

* wip

* correctly reset resizingElement & add undo check

* Separate selection element from the rest of the array and stop redrawing the UI when dragging the selection

* Remove selectionElement from local storage

* Remove unnecessary readonly type casting in actionFinalize

* Fix undo / redo for multi points

* Fix an issue that did not update history when elements were locked

* Disable committing to history for noops

- deleteSelected without deleting anything
- Basic selection

* Use generateEntry only inside history and pass elements and appstate to history

* Update component after every history resume

* Remove last item from the history only if in multi mode

* Resume recording when element type is not selection

* ensure we prevent hotkeys only on writable elements

* Remove selection clearing from history

* Remove one point arrows as they are invisibly small

* Remove shape of elements from local storage

* Fix removing invisible element from the array

* add missing history resuming cases & simplify slice

* fix lint

* don't regenerate elements if no elements deselected

* regenerate elements array on selection

* reset state.selectionElement unconditionally

* Use getter instead of passing appState and scene data through functions to actions

* fix import

Co-authored-by: David Luzar <luzar.david@gmail.com>
2020-02-05 19:47:10 +01:00
2020-01-24 12:04:54 +02:00
2020-02-05 19:47:10 +01:00
2020-01-22 15:13:00 +01:00
2020-01-31 13:55:53 +01:00
2020-02-05 17:41:14 +01:00
2020-01-24 12:04:54 +02:00
2020-01-05 13:09:29 -08:00
2020-02-05 17:41:14 +01:00
2020-01-25 15:30:01 +01:00
2020-01-02 11:03:48 -08:00

Excalidraw logo: Sketch handrawn like diagrams.

Excalidraw is a whiteboard tool that lets you easily sketch diagrams that have a hand-drawn feel to them.

Follow Excalidraw on Twitter

Try it now

Netlify Status

Go to https://excalidraw.com to start sketching

Testimonials

Run the code

Code Sandbox

  • Go to https://codesandbox.io/s/github/excalidraw/excalidraw
  • You can start coding instantly, and even send PRs from there!

Local Installation

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Clone the repo

git clone https://github.com/excalidraw/excalidraw.git

Commands

Command Description
npm install Install the dependencies
npm run start Run the project
npm run fix Reformat all files with Prettier
npm run test:code Test for formatting with Prettier
npm run test:app Test the app
npm run test Run all tests

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

You can also discuss the app on our Gitter channel.

Excalidraw is built using these awesome tools

And the main source of inspiration for starting the project is the awesome Zwibbler app.

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

Description
No description provided
Readme 44 MiB
Languages
TypeScript 89.6%
SCSS 4.2%
MDX 3.5%
JavaScript 2.4%
HTML 0.2%