Commit Graph

115 Commits

Author SHA1 Message Date
d65e90209c Allow multiline text (#535)
* Allow multiline text

* Figure out offset correctly

* Run prettier
2020-01-24 20:35:51 +02:00
ee68af0fd3 Set Trailing Cmma to (#525) 2020-01-24 12:04:54 +02:00
362cd74a9b Render only visible elements (#415)
* Render only visible elements

* Fixed exporting as PNG

* Moved isVisibleElement to module scope

* rerun-ci

Co-authored-by: David Luzar <luzar.david@gmail.com>
2020-01-22 15:14:19 +01:00
3de48d2893 fix: Transparent backgrounds result in bleed (#499) 2020-01-21 09:07:08 -08:00
8db8827c6f feat: add line shape (#371)
* feat: add line shape

* fix: align line tool

* fix: hitbox bug sw to ne

* fix: add stroke width n sloppiness  for line

* fix: center line inside a panel box

* fix: use color as a unique key
2020-01-16 00:07:19 +05:00
42968ef44d enable curveFitting & bump roughjs (#373) 2020-01-15 20:01:50 +01:00
8dbd1b80df Update to rough.js 4.0.1 (#363)
* upgrade to latest rough.js

* remove random.ts because roughjs now supports seeding.
2020-01-13 11:04:28 -08:00
8785bef523 Support transparent background + inline picker (#325)
Unfortunately, react-color has a bug where transparent color doesn't trigger onChange. I've been annoyed by the huge dependency anyway so decided to take the generated html (which is awesome) and reimplement a specific component for it.

I also made sure that we don't actually render anything when the background is transparent on rough (I looked at the generated path and made sure it didn't have the commands for the background)
2020-01-11 19:10:41 -08:00
74764b06eb Regenerate roughjs shape only when the item is updated (#316)
* Regenerate roughjs shape only when the item is updated

* Remove shape object during export and history undo/redo

* Remove shape element during copying

* Fix shape generation during creation
2020-01-11 16:00:00 -08:00
8f28c59deb Removed SceneState from renderElement (#301) 2020-01-11 14:38:41 -08:00
862231da4f Make all operations on elements array immutable (#283)
* Make scene functions return array instead of mutate array

- Not all functions were changes; so the given argument was a new array to some

* Make data restoration functions immutable

- Make mutations in App component

* Make history actions immutable

* Fix an issue in change property that was causing elements to be removed

* mark elements params as readonly & remove unnecessary copying

* Make `clearSelection` return a new array

* Perform Id comparisons instead of reference comparisons in onDoubleClick

* Allow deselecting items with SHIFT key

- Refactor hit detection code

* Fix a bug in element selection and revert drag functionality

Co-authored-by: David Luzar <luzar.david@gmail.com>
2020-01-09 16:22:04 +01:00
1739540f00 Creating a text near the center of a shape should put it in the center (#270)
* Snap to element center

* Fixed typo

* Added comment

* Reduced threshold to 30

* Skip snapping if alt key is pressed

* Fixed creating text with shape tool
2020-01-09 01:09:09 +05:00
37934c0f8b Fixes text jumping on creation (#266)
* Fixes text jumping on creation

* Do not remove node on ESC

* Fixed typo
2020-01-09 00:06:25 +05:00
4b7eb2f04a Add IDs to elements (#236)
* Add IDs to elements

- Move round rect function within the renderer

* Generate IDs using nanoid

* If element ID does not exist, add the ID during restoration
2020-01-07 23:49:39 +04:00
829a65b8cb Refactor Element Functions (#233)
* Remove `generatedraw` from element object

- Create a function that renders a single element
- Refactor rendering selected elements

* Replace getElementAbsoluteXY with getElementAbsoluteCoords
2020-01-07 19:04:52 +04:00