* 🐛 Fix having multiple dropdown menus opened on dashboard page
* ♻️ Refactor dropdown-menu
Make it follow new standards and make it external api more usable,
not depending on manually provided list of ids.
This also implements the autoclosing of "other" active/open
dropdown-menu (or other similar components).
* 📎 Add PR feedback changes
* 🐛 Fix incorrect event handling on project-menu
* 🐛 Fix unexpected exception
---------
Co-authored-by: Andrey Antukh <niwi@niwi.nz>
* 🐛 Fix several race conditions on workspace and dashboard code
It also fixes a corner case that happens when penpot workspace
is loaded in a background tab on firefox.
* 🐛 Add missing team-id prop to several file returning endpoints
* 💄 Change call convention for dashboard grid component
* 🎉 Add helper component for easy portal to document
* 🐛 Fix context menu event handling issues
With this commit, the behavior of context menu and scroll is changed
to: close menu on scroll instead of disabling all pointer events while
menu is open. The previous behavior causes a second event of context
menu open a native browser context menu instead of penpot menu.
Don't wait team to be present for open the menu,
because with slow connection speed it can cause
unexpected ux glitche showing menu when the component
inner request is resoved
Mainly leave shadow-cljs for build cljs stuff and use esbuild
for bundle all js dependencies, completly avoiding all possible
incompatibility issues between js libraries and google closure
compiler.
Relevant changes:
- replace user-viewer? with can-edit removing many double
negations on the code
- always use team permissions making the permissions access uniform
around all the code
- expose team permissions to ui tree through ctx/team-permissions
context
Caused by an unsolved corner case of the interaction of code-move
between modules and types defined with reify. Mainly moves some
definition of protocol to one module and the definition of the type
to other, and as the definition of the type is conditional to the
function execution, the whole build fails to initialize because the
second protocol extension implementation can't find the type initialized
on application startup.
If you select N files (using shift key), then delete them and continuing
pressing the shift select an other file and proceed to delete it an
exception is raised. This is happens because the previous selection is
not cleared. This commit fixes that.