Merge branch 'main' into develop

This commit is contained in:
Andrey Antukh 2021-04-14 13:52:09 +02:00
commit eff333cbaf
5 changed files with 51 additions and 30 deletions

View file

@ -27,6 +27,18 @@
- zzkt [#814](https://github.com/penpot/penpot/pull/814) - zzkt [#814](https://github.com/penpot/penpot/pull/814)
## 1.4.1-alpha
### :bug: Bugs fixed
- Fix typography unlinking.
- Fix incorrect measures on shapes outside artboard.
- Fix issues on svg parsing related to numbers with exponents.
- Fix some race conditions on removing shape from workspace.
- Fix incorrect state management of user lang selection.
- Fix email validation usability issue on team invitation lightbox.
## 1.4.0-alpha ## 1.4.0-alpha
### :sparkles: New features ### :sparkles: New features

View file

@ -173,22 +173,21 @@
(defn update-text-attrs (defn update-text-attrs
[{:keys [id attrs]}] [{:keys [id attrs]}]
(let [attrs (d/without-nils attrs)] (ptk/reify ::update-text-attrs
(ptk/reify ::update-text-attrs ptk/UpdateEvent
ptk/UpdateEvent (update [_ state]
(update [_ state] (d/update-in-when state [:workspace-editor-state id] ted/update-editor-current-inline-styles attrs))
(d/update-in-when state [:workspace-editor-state id] ted/update-editor-current-inline-styles attrs))
ptk/WatchEvent ptk/WatchEvent
(watch [_ state stream] (watch [_ state stream]
(when-not (some? (get-in state [:workspace-editor-state id])) (when-not (some? (get-in state [:workspace-editor-state id]))
(let [objects (dwc/lookup-page-objects state) (let [objects (dwc/lookup-page-objects state)
shape (get objects id) shape (get objects id)
update-fn #(update-shape % txt/is-text-node? attrs/merge attrs) update-fn #(update-shape % txt/is-text-node? attrs/merge attrs)
shape-ids (cond (= (:type shape) :text) [id] shape-ids (cond (= (:type shape) :text) [id]
(= (:type shape) :group) (cp/get-children id objects))] (= (:type shape) :group) (cp/get-children id objects))]
(rx/of (dwc/update-shapes shape-ids update-fn)))))))) (rx/of (dwc/update-shapes shape-ids update-fn)))))))
;; --- RESIZE UTILS ;; --- RESIZE UTILS

View file

@ -237,18 +237,19 @@
(when-not (empty? attrs) (when-not (empty? attrs)
(st/emit! (dwt/update-text-attrs {:id id :attrs attrs}))))) (st/emit! (dwt/update-text-attrs {:id id :attrs attrs})))))
typography (cond typography
(and (:typography-ref-id values) (cond
(not= (:typography-ref-id values) :multiple) (and (:typography-ref-id values)
(not= (:typography-ref-file values) file-id)) (not= (:typography-ref-id values) :multiple)
(-> shared-libs (not= (:typography-ref-file values) file-id))
(get-in [(:typography-ref-file values) :data :typographies (:typography-ref-id values)]) (-> shared-libs
(assoc :file-id (:typography-ref-file values))) (get-in [(:typography-ref-file values) :data :typographies (:typography-ref-id values)])
(assoc :file-id (:typography-ref-file values)))
(and (:typography-ref-id values) (and (:typography-ref-id values)
(not= (:typography-ref-id values) :multiple) (not= (:typography-ref-id values) :multiple)
(= (:typography-ref-file values) file-id)) (= (:typography-ref-file values) file-id))
(get typographies (:typography-ref-id values))) (get typographies (:typography-ref-id values)))
on-convert-to-typography on-convert-to-typography
(mf/use-callback (mf/use-callback

View file

@ -7,14 +7,15 @@
(ns app.util.text-editor (ns app.util.text-editor
"Draft related abstraction functions." "Draft related abstraction functions."
(:require (:require
["draft-js" :as draft]
["./text_editor_impl.js" :as impl] ["./text_editor_impl.js" :as impl]
["draft-js" :as draft]
[app.common.attrs :as attrs] [app.common.attrs :as attrs]
[app.common.text :as txt]
[app.common.data :as d] [app.common.data :as d]
[app.util.transit :as t] [app.common.text :as txt]
[app.common.uuid :as uuid]
[app.util.array :as arr] [app.util.array :as arr]
[app.util.object :as obj] [app.util.object :as obj]
[app.util.transit :as t]
[clojure.walk :as walk] [clojure.walk :as walk]
[cuerdas.core :as str])) [cuerdas.core :as str]))
@ -23,6 +24,7 @@
(defn encode-style-value (defn encode-style-value
[v] [v]
(cond (cond
(uuid? v) (str "u:" v)
(string? v) (str "s:" v) (string? v) (str "s:" v)
(number? v) (str "n:" v) (number? v) (str "n:" v)
(keyword? v) (str "k:" (name v)) (keyword? v) (str "k:" (name v))
@ -38,6 +40,7 @@
"n:" (js/Number (subs v 2)) "n:" (js/Number (subs v 2))
"k:" (keyword (subs v 2)) "k:" (keyword (subs v 2))
"m:" (t/decode (subs v 2)) "m:" (t/decode (subs v 2))
"u:" (uuid/uuid (subs v 2))
"z:" nil "z:" nil
"o:" (subs v 2) "o:" (subs v 2)
v))) v)))

View file

@ -106,12 +106,18 @@ export function applyInlineStyle(state, styles) {
let content = null; let content = null;
for (let style of styles) { for (let style of styles) {
const [p, k, _] = style.split("$$$"); console.log("applyInlineStyle", style);
const [p, k, v] = style.split("$$$");
const prefix = [p, k, ""].join("$$$"); const prefix = [p, k, ""].join("$$$");
content = state.getCurrentContent(); content = state.getCurrentContent();
content = removeInlineStylePrefix(content, selection, prefix); content = removeInlineStylePrefix(content, selection, prefix);
content = Modifier.applyInlineStyle(content, selection, style);
if (v !== "z:null") {
content = Modifier.applyInlineStyle(content, selection, style);
}
state = EditorState.push(state, content, "change-inline-style"); state = EditorState.push(state, content, "change-inline-style");
} }