Merge pull request #507 from penpot/fixes/bugfixing

Bugfixing
This commit is contained in:
Andrey Antukh 2021-02-01 12:38:48 +01:00 committed by GitHub
commit 5ff11fdd0a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 42 additions and 5 deletions

View file

@ -280,11 +280,13 @@
.item-name { .item-name {
color: $color-gray-60; color: $color-gray-60;
font-size: $fs14; font-size: $fs14;
margin-right: calc(4.5rem + 1rem);
} }
.item-contents { .item-contents {
color: $color-gray-40; color: $color-gray-40;
font-size: $fs12; font-size: $fs12;
margin-right: calc(4.5rem + 1rem);
} }
.item-button { .item-button {

View file

@ -213,6 +213,20 @@
overflow: hidden; overflow: hidden;
.link { .link {
&:before {
content: '';
position: absolute;
width: 50%;
background: linear-gradient(45deg, transparent, #ffffff);
height: 100%;
top: 0;
left: 0;
pointer-events: none;
margin-left: 50%;
}
overflow: hidden;
white-space: nowrap;
position: relative;
color: $color-gray-50; color: $color-gray-50;
line-height: 1.5; line-height: 1.5;
user-select: all; user-select: all;

View file

@ -131,6 +131,7 @@
(let [page-id (:current-page-id state) (let [page-id (:current-page-id state)
objects (dwc/lookup-page-objects state page-id) objects (dwc/lookup-page-objects state page-id)
selected (get-in state [:workspace-local :selected]) selected (get-in state [:workspace-local :selected])
selected (cp/clean-loops objects selected)
shapes (shapes-for-grouping objects selected)] shapes (shapes-for-grouping objects selected)]
(when-not (empty? shapes) (when-not (empty? shapes)
(let [;; If the selected shape is a group, we can use it. If not, (let [;; If the selected shape is a group, we can use it. If not,

View file

@ -19,6 +19,7 @@
[app.common.geom.align :as gal] [app.common.geom.align :as gal]
[app.common.geom.point :as gpt] [app.common.geom.point :as gpt]
[app.common.geom.matrix :as gmt] [app.common.geom.matrix :as gmt]
[app.util.timers :as ts]
[app.main.ui.shapes.filters :as filters] [app.main.ui.shapes.filters :as filters]
[app.main.ui.shapes.frame :as frame] [app.main.ui.shapes.frame :as frame]
[app.main.ui.shapes.circle :as circle] [app.main.ui.shapes.circle :as circle]
@ -185,7 +186,8 @@
[:& wrapper {:shape frame :view-box vbox}]])) [:& wrapper {:shape frame :view-box vbox}]]))
(mf/defc component-svg (mf/defc component-svg
{::mf/wrap [mf/memo]} {::mf/wrap [mf/memo
#(mf/deferred % ts/idle-then-raf)]}
[{:keys [objects group zoom] :or {zoom 1} :as props}] [{:keys [objects group zoom] :or {zoom 1} :as props}]
(let [modifier (-> (gpt/point (:x group) (:y group)) (let [modifier (-> (gpt/point (:x group) (:y group))
(gpt/negate) (gpt/negate)

View file

@ -13,7 +13,8 @@
[goog.object :as gobj] [goog.object :as gobj]
[app.main.ui.components.dropdown :refer [dropdown']] [app.main.ui.components.dropdown :refer [dropdown']]
[app.common.uuid :as uuid] [app.common.uuid :as uuid]
[app.util.data :refer [classnames]])) [app.util.data :refer [classnames]]
[app.util.dom :as dom]))
(mf/defc context-menu (mf/defc context-menu
{::mf/wrap-props false} {::mf/wrap-props false}
@ -27,14 +28,31 @@
is-selectable (gobj/get props "selectable") is-selectable (gobj/get props "selectable")
selected (gobj/get props "selected") selected (gobj/get props "selected")
top (gobj/get props "top") top (gobj/get props "top")
left (gobj/get props "left")] left (gobj/get props "left")
offset (mf/use-state 0)
check-menu-offscreen
(mf/use-callback
(mf/deps top @offset)
(fn [node]
(when node
(let [{node-height :height} (dom/get-bounding-rect node)
{window-height :height} (dom/get-window-size)
target-offset (if (> (+ top node-height) window-height)
(- node-height)
0)]
(if (not= target-offset @offset)
(reset! offset target-offset))))))]
(when open? (when open?
[:> dropdown' props [:> dropdown' props
[:div.context-menu {:class (classnames :is-open open? [:div.context-menu {:class (classnames :is-open open?
:is-selectable is-selectable) :is-selectable is-selectable)
:style {:top top :style {:top (+ top @offset)
:left left}} :left left}}
[:ul.context-menu-items [:ul.context-menu-items {:ref check-menu-offscreen}
(for [[action-name action-handler] options] (for [[action-name action-handler] options]
[:li.context-menu-item {:class (classnames :is-selected (and selected (= action-name selected))) [:li.context-menu-item {:class (classnames :is-selected (and selected (= action-name selected)))
:key action-name} :key action-name}