Commit Graph

268 Commits

Author SHA1 Message Date
Lipis 3901ad7dbe Adjust context menu and use open colors (#553)
* Adjust context menu and use open colors

* word wrap

* revert colors & padding

Co-authored-by: David Luzar <luzar.david@gmail.com>
2020-01-26 11:19:21 +01:00
Guillermo Peralta Scura e4ff408f23 Accessible modals (#560)
Improve the accessibility of our modals (the color picker and the export dialog)

Implement a focus trap so that tapping through the controls inside them don't escape to outer elements, it also allows to close the modals with the "Escape" key.
2020-01-25 19:37:58 -03:00
Christopher Chedeau ba13f88924 Do not trigger modal actions when not visible (#562)
Right now we're running useEffect block which runs getExportCanvasPreview on every state update, even if the modal is not visible (eg: when moving the mouse around!). This puts the modal code in its own component so that it doesn't trigger useEffect when not visible.

The code isn't very elegant as we're forwarding all the props, there's likely a better way to handle it (if anyone is interested, PR would be appreciated), but at least now it no longer double renders the scene.

Fixes #559
2020-01-25 14:11:26 -08:00
Christopher Chedeau c697938350 Do not store cursor position in state (#557)
* Do not store cursor position in state

Storing it in state causes a full re-render. The only time we use the cursor position is for pasting. This halves the number of renders on drag.

* remove passive change
2020-01-25 11:38:08 -08:00
Christopher Chedeau 5b19aeafe9 Make color selection accessible (#556)
By changing from a `<div>` to a `<button>`, it's now possible to use the space key in order to select it
2020-01-25 10:11:57 -08:00
lissitz 1bae203a78 changing new shape property sets it as default (#520)
* changing new shape property sets it as default

* set correct opacity while editing new test

Co-authored-by: Christopher Chedeau <vjeuxx@gmail.com>
2020-01-25 09:58:57 -08:00
Guillermo Peralta Scura 69061e20ac Some a11y fixes (#534)
* Rename ToolIcon to ToolButton

It makes more semantic sense

* Label and keyboard shortcuts announcement

* Refactor common props for ToolButton

* Better doc outline and form controls

* Adjust color picker

* Styling fixes

Co-authored-by: Christopher Chedeau <vjeuxx@gmail.com>
2020-01-25 09:52:03 -08:00
Marco Kaul 5fd6c4d853 Add german translation (#550)
* Add german translation

* Add german language option

* Fix missing german translation

* Alphabetical order for languages

* Sort

Co-authored-by: Lipis <lipiridis@gmail.com>
2020-01-25 09:47:02 -08:00
Loris 413c387c7c Add onCancel callback to textWysiwyg for cleanup (#555) 2020-01-25 09:45:23 -08:00
Lipis 829e827dcf Scroll content to the center when loading from backend or file (#554)
* Scroll content to the center when loading from backend

* spread

* Load from file

* Return type
2020-01-25 17:41:23 +01:00
Bakhtiiar Muzakparov 689c94151d fix: typos (#540) 2020-01-24 21:02:55 +01:00
David Luzar afb1d6725f Normalize dimensions (#527)
* normalize dimensions of non-linear elements

* fix element type check regression
2020-01-24 20:45:52 +01:00
Jilles Soeters d65e90209c Allow multiline text (#535)
* Allow multiline text

* Figure out offset correctly

* Run prettier
2020-01-24 20:35:51 +02:00
Faustino Kialungila 54f9c296b5 Enhance language selection (#538)
* Enhance language selection

* remove top/left margin to limit unusable canvas area

Co-authored-by: David Luzar <luzar.david@gmail.com>
2020-01-24 19:10:44 +01:00
Lipis ee68af0fd3 Set Trailing Cmma to (#525) 2020-01-24 12:04:54 +02:00
Faustino Kialungila 25202aec11 Adding Portuguese Translation (#528)
* Add Portuguese Translation

Adding PT translations

* Update src/i18n.ts

Co-Authored-By: Lipis <lipiridis@gmail.com>

Co-authored-by: Lipis <lipiridis@gmail.com>
2020-01-23 19:40:07 +01:00
Thibaut SABOT 990e064c13 Add french translation (#522)
* Add french translation

* improve fill translation

* forget accent on select translation
2020-01-23 19:00:30 +01:00
Thibaut SABOT e8c909e35c Don't use translated value for shortcut (#526) 2020-01-23 18:28:05 +02:00
Thomas Steiner d24b9c4d78 Update to browser-nativefs v0.1.0 (#523) 2020-01-23 18:15:44 +02:00
Günay Mert Karadoğan 926b4f24e6 Draw horizontal/vertical lines/arrows when shift pressed (#430)
* Draw horizontal/vertical lines/arrows when shift pressed

* Refactor resizing with delta

* Resize arrows/lines perfectly when shift pressed
2020-01-23 10:21:04 +01:00
Enzo Ferey dfb7c2b744 Add app state to history (#309)
* Add app state to history.

* Pick missing state keys.

* Fix bug.

* Remove force update.
2020-01-22 21:32:43 +01:00
lissitz 3f1075cbcd fix: slider value resets to the default value when opacity is 0 (#516) 2020-01-22 20:51:56 +01:00
Lipis 48024c9116 Remove selected object when storing to backend (#506) 2020-01-22 18:27:44 +02:00
Fernando Alava Zambrano a436e70764 Internationalization followup (#500)
* add translations in data.ts

* add language list
add spanish version

* fixes pr review

* add more translations

* remove unused label

Co-authored-by: David Luzar <luzar.david@gmail.com>
2020-01-22 16:25:04 +02:00
Timur Khazamov 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
David Luzar 4942a452e0 Lint tweaks (#502)
* lint json files & add lint ignore list

* lint against plain console logs

* Update .lintstagedrc.js

Co-Authored-By: Lipis <lipiridis@gmail.com>

* format .tsconfig

* don't lint against console.info

* change log to console.info

Co-authored-by: Lipis <lipiridis@gmail.com>
2020-01-22 15:13:00 +01:00
Bakhtiiar Muzakparov bef279417e fix: cursor on keyboard tool toggle (#482)
* update events for GH actions to include PRs

* fix: cursor on keyboard tool toggle

* fix: change cursor type to constant

* fix: swap condition

Co-authored-by: David Luzar <luzar.david@gmail.com>
2020-01-22 14:36:08 +01:00
Thomas Steiner d1fb824369 Move file system operations to separate module (#510) 2020-01-22 13:55:13 +01:00
lissitz dc0a4f4cb8 fix: Preview image is being stretched when the proportions are w… (#503)
Fixes #490. Preserves the ratio of the preview image when width / height reaches max-width/max-height
2020-01-22 12:09:49 +02:00
Dvir Azulay a856ce06e9 Allow dragging transparent elements when selected (#508)
* Allow dragging transparent elements when selected

Addresses #339

* Update package.json
2020-01-21 21:10:49 -08:00
Lipis d30498a289 Pointer for Tool icons (#501) 2020-01-21 22:07:09 +01:00
lissitz 3de48d2893 fix: Transparent backgrounds result in bleed (#499) 2020-01-21 09:07:08 -08:00
Max Stoiber e657372ae4 Fix typo in "Opacity" (#489) 2020-01-21 18:39:39 +02:00
David Luzar 20cf1078fc add top error boundary & reset localStorage on error (#493)
* add top error boundary & reset localStorage on error

* add issue tracker details and link

* add pointer cursor to buttons

* Update src/bug-issue-template.js

Co-Authored-By: Lipis <lipiridis@gmail.com>

* Update src/styles.scss

Co-Authored-By: Lipis <lipiridis@gmail.com>

* Update src/bug-issue-template.js

Co-Authored-By: Lipis <lipiridis@gmail.com>

* use open-color colors

* use Cascadia font

Co-authored-by: Lipis <lipiridis@gmail.com>
2020-01-21 15:50:25 +01:00
Jilles Soeters a72a143c84 Introduce Shapelock (#480)
* Introduce shape lock

* Format code with prettier

* Do not reset elementLocked on selection change

* Don't set isSelected to true if element is locked

* Don't reset the cursor

* Move reset cursor call to better spot

* Run prettier + lint
2020-01-20 15:52:19 -08:00
David Luzar 2340dddaad Sync panel props to editing element (#470)
* ensure panel props are sync to editing elem

* ensure we don't create empty-text elements (fixes #468)

* remove dead code

Co-authored-by: Christopher Chedeau <vjeuxx@gmail.com>
2020-01-20 15:16:22 -08:00
Fernando Alava Zambrano ff7a340d2f Internationalization support (#477)
* add i18next lib
add some translations

* add translations

* fix font-family

* fix pin versions
2020-01-20 15:14:10 -08:00
Guillermo Peralta Scura 1a03a29025 Use relative CSS units (#484) 2020-01-20 14:59:00 -08:00
Panayiotis Lipiridis 183a62627c id 2020-01-20 21:38:51 +02:00
Panayiotis Lipiridis 703d1e42e3 id instead of json 2020-01-20 21:30:07 +02:00
Lipis a210f442f4 Store background color in backend (#475)
* Store background color in backend

* Background
2020-01-20 19:47:27 +01:00
Lipis 4487e9af8a Switch hashes to smaller IDs for the backend (#474)
* Update backend

* log
2020-01-20 20:11:03 +02:00
David Luzar d44c4ca2d8 flush autosave on unload (#473) 2020-01-20 09:37:42 -08:00
wei 37e082fcdc feat: Add Cascadia font (#465)
* adding cascadia font

* adding font file
2020-01-20 07:12:12 -08:00
Brady Madden 6ad596e9f1 Share excalidrawings as links! (#356)
* shareable links

* fix

* review comments

* json-excaliber (#464)

* draw

* Boom

* backend

* Remove local

Co-authored-by: Lipis <lipiridis@gmail.com>
2020-01-19 21:56:19 -08:00
Lipis 13e14b4d64 Change the font family names (#462) 2020-01-19 15:49:10 -08:00
David Luzar 0097652b79 disallow shape selection during creation (#449) 2020-01-20 01:27:00 +02:00
Faustino Kialungila 61be0f7b61 Render text actions panel on double click (#450)
* Render text actions panel on double click

* cleanup wysiwyg on click

* use `state.editingElement` instead of global to determine whether t ext panel is shown

* clarify comment

Co-authored-by: David Luzar <luzar.david@gmail.com>
2020-01-19 23:32:24 +01:00
Guillermo Peralta Scura 3715da9966 Remove not needed nesting for resize (#460) 2020-01-19 18:43:51 -03:00
Guillermo Peralta Scura 7ae52f1164 Add ColorInput component (#455)
* Add ColorInput component

* Use valid color on input blur

* Darken input text and add labels
2020-01-19 18:27:36 -03:00