🐛 Fix color picker for texts in root frame

This commit is contained in:
alonso.torres 2021-07-07 12:45:33 +02:00
parent 16fcc60a59
commit 26e9f652b6
3 changed files with 29 additions and 13 deletions

View file

@ -25,6 +25,7 @@
- Fix workspace header presence styles and invalid link [Taiga #1813](https://tree.taiga.io/project/penpot/issue/1813). - Fix workspace header presence styles and invalid link [Taiga #1813](https://tree.taiga.io/project/penpot/issue/1813).
- Fix color-input wrong behavior (on workspace page color) [Taiga #1795](https://tree.taiga.io/project/penpot/issue/1795). - Fix color-input wrong behavior (on workspace page color) [Taiga #1795](https://tree.taiga.io/project/penpot/issue/1795).
- Fix file contextual menu in shared libraries at dashboard [Taiga #1865](https://tree.taiga.io/project/penpot/issue/1865). - Fix file contextual menu in shared libraries at dashboard [Taiga #1865](https://tree.taiga.io/project/penpot/issue/1865).
- Fix problem with color picker and fonts [#1049](https://github.com/penpot/penpot/issues/1049)
### :arrow_up: Deps updates ### :arrow_up: Deps updates
### :boom: Breaking changes ### :boom: Breaking changes

View file

@ -25,6 +25,7 @@
[app.main.ui.shapes.shape :refer [shape-container]] [app.main.ui.shapes.shape :refer [shape-container]]
[app.main.ui.shapes.svg-raw :as svg-raw] [app.main.ui.shapes.svg-raw :as svg-raw]
[app.main.ui.shapes.text :as text] [app.main.ui.shapes.text :as text]
[app.main.ui.shapes.text.fontfaces :as ff]
[app.util.object :as obj] [app.util.object :as obj]
[app.util.timers :as ts] [app.util.timers :as ts]
[cuerdas.core :as str] [cuerdas.core :as str]
@ -133,9 +134,15 @@
[{:keys [data width height thumbnails? embed?] :as props}] [{:keys [data width height thumbnails? embed?] :as props}]
(let [objects (:objects data) (let [objects (:objects data)
root (get objects uuid/zero) root (get objects uuid/zero)
shapes (->> (:shapes root) shapes
(->> (:shapes root)
(map #(get objects %))) (map #(get objects %)))
root-children
(->> shapes
(filter #(not= :frame (:type %)))
(mapcat #(cp/get-object-with-children (:id %) objects)))
vport (when (and (some? width) (some? height)) vport (when (and (some? width) (some? height))
{:width width :height height}) {:width width :height height})
dim (calculate-dimensions data vport) dim (calculate-dimensions data vport)
@ -161,7 +168,7 @@
:background background-color}} :background background-color}}
[:& use/export-page {:options (:options data)}] [:& use/export-page {:options (:options data)}]
[:& ff/fontfaces-style {:shapes root-children}]
(for [item shapes] (for [item shapes]
(let [frame? (= (:type item) :frame)] (let [frame? (= (:type item) :frame)]
(cond (cond

View file

@ -13,11 +13,13 @@
common." common."
(:require (:require
[app.common.geom.shapes :as geom] [app.common.geom.shapes :as geom]
[app.common.pages :as cp]
[app.common.uuid :as uuid] [app.common.uuid :as uuid]
[app.main.refs :as refs] [app.main.refs :as refs]
[app.main.ui.shapes.circle :as circle] [app.main.ui.shapes.circle :as circle]
[app.main.ui.shapes.image :as image] [app.main.ui.shapes.image :as image]
[app.main.ui.shapes.rect :as rect] [app.main.ui.shapes.rect :as rect]
[app.main.ui.shapes.text.fontfaces :as ff]
[app.main.ui.workspace.shapes.bounding-box :refer [bounding-box]] [app.main.ui.workspace.shapes.bounding-box :refer [bounding-box]]
[app.main.ui.workspace.shapes.common :as common] [app.main.ui.workspace.shapes.common :as common]
[app.main.ui.workspace.shapes.frame :as frame] [app.main.ui.workspace.shapes.frame :as frame]
@ -54,8 +56,14 @@
(let [objects (obj/get props "objects") (let [objects (obj/get props "objects")
active-frames (obj/get props "active-frames") active-frames (obj/get props "active-frames")
root-shapes (get-in objects [uuid/zero :shapes]) root-shapes (get-in objects [uuid/zero :shapes])
shapes (->> root-shapes (mapv #(get objects %)))] shapes (->> root-shapes (mapv #(get objects %)))
root-children (->> shapes
(filter #(not= :frame (:type %)))
(mapcat #(cp/get-object-with-children (:id %) objects)))]
[:*
[:& ff/fontfaces-style {:shapes root-children}]
(for [item shapes] (for [item shapes]
(if (= (:type item) :frame) (if (= (:type item) :frame)
[:& frame-wrapper {:shape item [:& frame-wrapper {:shape item
@ -64,7 +72,7 @@
:thumbnail? (not (get active-frames (:id item) false))}] :thumbnail? (not (get active-frames (:id item) false))}]
[:& shape-wrapper {:shape item [:& shape-wrapper {:shape item
:key (:id item)}])))) :key (:id item)}]))]))
(mf/defc shape-wrapper (mf/defc shape-wrapper
{::mf/wrap [#(mf/memo' % (mf/check-props ["shape" "frame"]))] {::mf/wrap [#(mf/memo' % (mf/check-props ["shape" "frame"]))]