Commit Graph

485 Commits

Author SHA1 Message Date
Kent Beck dc618ab122 Encapsulate SceneHistory. A little. (#1016) 2020-03-20 18:45:30 +01:00
Lipis 46e619d800 New Crowdin translations (#1020) 2020-03-20 18:32:46 +02:00
David Luzar edd54d93b3 revert #1017 (#1025)
This reverts commit 1546c00c0c.
2020-03-20 16:46:06 +01:00
Faustino Kialungila 0ad6f4ec6b Remove deleted elements from svg export (#1021)
* Remove deleted elements from svg export

* skip deleted elements

* remove old comment

Co-authored-by: dwelle <luzar.david@gmail.com>
2020-03-20 15:19:20 +01:00
Chang Yan 1546c00c0c Fix adding incorrect dragging element when handleCanvasPointerD… (#1017) 2020-03-20 11:00:50 +01:00
Lipis 6b3dee6777 New Crowdin translations (#1011) 2020-03-19 22:12:47 +02:00
David Luzar fda06e4fc3 Fix history - the 2nd installment (#1014)
* don't regenerate versionNonce on pushEntry

* fix history handling around multi-point arrows

* remove filtering from getElementMap helper
2020-03-19 11:41:32 -07:00
Faustino Kialungila f14aaccc38 Fix SpaceBar pan (#1013) 2020-03-19 08:59:20 -07:00
David Luzar 82ce068972 fix history (#1009)
* fix history

* tweak withBatchedUpdates typing
2020-03-19 14:51:05 +01:00
Lipis 59fa371367 New translations en.json (Chinese Simplified) (#1006) 2020-03-19 07:56:57 +01:00
David Luzar ff033640e4 expose a few state props for debugging (#1008)
* expose a few state props for debugging

* rename h.appState & add h.setState

* support setting elements
2020-03-18 20:44:05 +01:00
Sanghyeon Lee cb66adc716 Add a Shortcut for Toggling Shape Lock (#1005)
* Update shortcuts.md for Lock

* Add 'Q' as a shortcut for toggling shape lock

* Add shortcut to LockIcon title

* use event.key instead

Co-authored-by: Faustino Kialungila <Faustino.kialungila@gmail.com>
2020-03-18 19:29:59 +01:00
Lipis cb68153a81 New Crowdin translations (#998) 2020-03-18 19:59:48 +02:00
David Luzar b7da524538 confirm arrow on doubleclick (#949)
* confirm arrow on double click

* change hint

* fix cursor not updating on click
2020-03-18 16:43:06 +01:00
David Luzar 254a0753ff fix negative resize for non-multipoint elements (#1000) 2020-03-18 08:34:04 -07:00
Jed Fox d8bbe536a7 Restyle the mobile UI a bit (#1002)
* Restyle the bottom bar on mobile as an Island

* Shorter label for collaboration button, truncate too-long button labels

* Refactor safe area things to global vars

* Fix scroll bar positioning, don’t block scrollbars with menu island

* Update text
2020-03-18 11:31:40 -04:00
Lipis 793e0e4aa0 Remove redundant text (#918) 2020-03-18 13:27:10 +01:00
David Luzar 23b785de68 Trim trailing newlines (#999)
* trim newlines for text elements

* fix comment
2020-03-18 13:01:33 +01:00
Chang Yan 6fe40516bf deselect all elements when inserting text with double click (#996) 2020-03-17 23:11:27 -07:00
Pete Hunt 7d57d124bd Fix alt drag (#995) 2020-03-17 15:21:35 -07:00
David Luzar 373d16abe6 improve & granularize ExcalidrawElement types (#991)
* improve & granularize ExcalidrawElement types

* fix incorrectly passing type

* fix tests

* fix more tests

* fix unnecessary spreads & refactor

* add comments
2020-03-17 20:55:40 +01:00
Lipis 1c545c1d47 New Crowdin translations (#990) 2020-03-17 21:46:35 +02:00
Pete Hunt b603337c3f Fix multielements (#987) 2020-03-17 11:01:11 -07:00
Christopher Chedeau 0dc07135b7 Fix three rendering when loading (#986)
The problem is that syncActionResult wasn't using batching.
2020-03-16 19:21:01 -07:00
Pete Hunt e9f5175f51 Fix performance bug (#984) 2020-03-16 19:07:47 -07:00
Lipis a985d1b9b8 New Crowdin translations (#983)
* New translations en.json (Chinese Simplified)

* New translations en.json (French)

* New translations en.json (German)

* New translations en.json (Indonesian)

* New translations en.json (Norwegian)

* New translations en.json (Polish)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Spanish)

* New translations en.json (Turkish)

* New translations en.json (Korean)

* New translations en.json (French)

* New translations en.json (Portuguese)
2020-03-16 23:23:38 +01:00
Faustino Kialungila ae9b64a623 CMD + D to Duplicate Selection (#982)
* cmd+d to duplicate selection

* use duplicateElement instead

* use duplicateElement instead

* Update actionDuplicateSelection.ts

* select the new duplicated element

* add locale

* use event.key instead of event.code

Co-authored-by: David Luzar <luzar.david@gmail.com>
2020-03-16 22:53:02 +01:00
Lipis 83e49232ee New Crowdin translations (#978)
* New translations en.json (Korean)

* New translations en.json (Korean)

* New translations en.json (Korean)

* New translations en.json (Korean)

* New translations en.json (Korean)

* New translations en.json (Portuguese)

* New translations en.json (Portuguese)
2020-03-16 19:23:56 +01:00
Christopher Chedeau db1f97f59e Revert "[RFC] Randomized names next to mouse pointers. (#971)" (#972)
This reverts commit dcb93f75e6.
2020-03-16 00:38:37 -07:00
Pete Hunt dcb93f75e6 [RFC] Randomized names next to mouse pointers. (#971)
* [WIP] Add names next to pointers

This implements the rendering and messaging across. Still need to do the UI to set the name.

Also, not really sure what's the best place to send the name and store it.

* Add randomized names

Co-authored-by: Christopher Chedeau <vjeux@fb.com>
2020-03-15 18:56:38 -07:00
Keyan Zhang d58216f5ec [RFC] show confirmation dialog before the user closes the page (#957) 2020-03-15 14:00:33 -07:00
Christopher Chedeau fed7054114 Fix hit testing threshold (#969)
* Fix hit testing threshold

- The bounding box was not correctly extended to take into account the threshold. It was only for y axis but not x.
- The bezier threshold was using 20 instead of 10 and not taking into account zoom level.

Both those issues are fixed and now the behavior looks good on all the shapes I can test.

* fix_tests
2020-03-15 13:42:18 -07:00
Christopher Chedeau 2937efacde Remove last get/setTransform (#964)
My original hack to put the scale when we create the canvas element doesn't make much sense. It should be done when we are rendering the scene. I moved it there in this PR.

The rest was all about forwarding the scale to where it's needed.
2020-03-15 12:25:18 -07:00
Lipis 79ea76b48b Different color for the stroke of the collaborator's arrow (#963)
* Different color for the stroke of the arrow

* Sort
2020-03-15 11:05:12 -07:00
Jed Fox e44801123a Restyle the color picker a touch (#920) 2020-03-15 19:26:52 +02:00
Lipis d834ff4d89 New Crowdin translations (#912) 2020-03-15 19:12:35 +02:00
Pete Hunt 35ce1729cc remove most setState({}) (#959) 2020-03-15 10:06:41 -07:00
Pete Hunt e1e2249f57 Abstract away or eliminate most of the mutation of the Elements array (#955) 2020-03-14 21:48:51 -07:00
Keyan Zhang 05af9f04ed [easy] run typechecking on CI (#954) 2020-03-14 21:12:39 -07:00
Pete Hunt 3f8144ef85 Fix many syncing issues (#952) 2020-03-14 20:46:57 -07:00
Christopher Chedeau b20d4539c0 Stop using getTransform (#950)
* Stop using getTransform

Fixes #861

The original motivation behind this is to make it work with Firefox. But it also helped make the code more intentional.

Test Plan:
- Create one square, select it, zoom in repeatedly, make sure that it zooms centered in the screen and everything looks good
- Scroll at various zoom levels, things look good
- Export a small scene at 1x and 3x, make sure the background is properly set and look good

* fix selection element
2020-03-14 17:24:28 -07:00
Christian Alfoni dbfc8bee57 Add copy to PNG option on context menu (#941)
* Add copy to PNG option on context menu

* lint & refactor & fixes

* add keybinding

* swap keybinding

* fix docs

Co-authored-by: dwelle <luzar.david@gmail.com>
2020-03-14 22:53:18 +01:00
Christopher Chedeau e19088f214 Make selection handle resolution independent (#948)
They shouldn't really change when zooming in or out.
2020-03-14 22:29:48 +01:00
Christopher Chedeau 809d7ba9f5 Remove text trim (#947)
This was added when we were computing the width without adding "pre" behavior. Now it is no longer an issue
2020-03-14 14:00:20 -07:00
Christopher Chedeau b49f9b29e5 Render pointers out of screen (#945)
I opted to use transparency to indicate that the pointer is out of screen. It seems to be working relatively well.

Fixes #935
2020-03-14 13:52:42 -07:00
David Luzar b9c75b5bc4 use deletedIds map to sync deletions (#936)
* use deletedIds map for sync deletions

* refactor how we create data for syncing

* fix comments

* streamline broadcast API

* split broadcast methods
2020-03-14 21:25:07 +01:00
Christopher Chedeau ead6a083d4 Assign a colors to each pointers (#944)
I'm using the client id as a random number to index on the color array. So far it's been working better than using a sequential increment as the colors in the array are sorted by proximity. Also, it has the advantage that everyone in the room will see the same color for the same person.
2020-03-14 12:18:57 -07:00
Christopher Chedeau a6244e7602 Better looking pointer (#943)
Instead of a crude circle, this makes it look more like a pointer. I manually tweaked the numbers until it looked like a pointer :)
2020-03-14 12:08:45 -07:00
Jed Fox 668f8ec4a6 Make dialogs look better on mobile (#908)
* Standardize mobile media query

* Refactor & add mobile support to dialogs

* back & close icons
2020-03-13 20:32:47 +01:00
David Luzar c85315650f fix calculating text width for indented text (#930) 2020-03-13 15:10:44 +01:00