mirror of
https://github.com/penpot/penpot.git
synced 2025-03-14 08:41:48 -05:00
✨ Changes after review
This commit is contained in:
parent
e737ec0311
commit
d6fc98c70b
7 changed files with 87 additions and 69 deletions
|
@ -32,7 +32,8 @@
|
||||||
[app.main.ui.settings.delete-account]
|
[app.main.ui.settings.delete-account]
|
||||||
[app.main.ui.settings.change-email]
|
[app.main.ui.settings.change-email]
|
||||||
[app.main.ui.confirm]
|
[app.main.ui.confirm]
|
||||||
[app.main.ui.workspace.colorpicker]))
|
[app.main.ui.workspace.colorpicker]
|
||||||
|
[app.main.ui.workspace.libraries]))
|
||||||
|
|
||||||
(declare reinit)
|
(declare reinit)
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,8 @@
|
||||||
[app.util.time :as dt]
|
[app.util.time :as dt]
|
||||||
[app.common.uuid :as uuid]
|
[app.common.uuid :as uuid]
|
||||||
[app.main.data.workspace.common :as dwc]
|
[app.main.data.workspace.common :as dwc]
|
||||||
[app.main.data.workspace.texts :as dwt]))
|
[app.main.data.workspace.texts :as dwt]
|
||||||
|
[app.main.data.modal :as md]))
|
||||||
|
|
||||||
(declare create-color-result)
|
(declare create-color-result)
|
||||||
|
|
||||||
|
@ -201,15 +202,14 @@
|
||||||
(st/emit!
|
(st/emit!
|
||||||
(if shift?
|
(if shift?
|
||||||
(change-stroke-selected color)
|
(change-stroke-selected color)
|
||||||
(change-fill-selected color)
|
(change-fill-selected color))
|
||||||
)
|
(md/hide-modal)))]
|
||||||
(fn [state] (update state :workspace-local dissoc :modal))))]
|
|
||||||
(ptk/reify ::start-picker
|
(ptk/reify ::start-picker
|
||||||
ptk/UpdateEvent
|
ptk/UpdateEvent
|
||||||
(update [_ state]
|
(update [_ state]
|
||||||
(-> state
|
(-> state
|
||||||
(assoc-in [:workspace-local :picking-color?] true)
|
(assoc-in [:workspace-local :picking-color?] true)
|
||||||
(assoc-in [:workspace-local :modal] {:id (random-uuid)
|
(assoc ::md/modal {:id (random-uuid)
|
||||||
:type :colorpicker
|
:type :colorpicker
|
||||||
:props {:on-change handle-change-color}
|
:props {:on-change handle-change-color}
|
||||||
:allow-click-outside true}))))))
|
:allow-click-outside true}))))))
|
||||||
|
|
37
frontend/src/app/main/data/modal.cljs
Normal file
37
frontend/src/app/main/data/modal.cljs
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
;; This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
;; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
;;
|
||||||
|
;; This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||||
|
;; defined by the Mozilla Public License, v. 2.0.
|
||||||
|
;;
|
||||||
|
;; Copyright (c) 2020 UXBOX Labs SL
|
||||||
|
|
||||||
|
(ns app.main.data.modal
|
||||||
|
(:require
|
||||||
|
[potok.core :as ptk]))
|
||||||
|
|
||||||
|
(defn show-modal [id type props]
|
||||||
|
(ptk/reify ::show-modal
|
||||||
|
ptk/UpdateEvent
|
||||||
|
(update [_ state]
|
||||||
|
(-> state
|
||||||
|
(assoc ::modal {:id id
|
||||||
|
:type type
|
||||||
|
:props props
|
||||||
|
:allow-click-outside false})))))
|
||||||
|
|
||||||
|
(defn hide-modal []
|
||||||
|
(ptk/reify ::hide-modal
|
||||||
|
ptk/UpdateEvent
|
||||||
|
(update [_ state]
|
||||||
|
(-> state
|
||||||
|
(dissoc ::modal)))))
|
||||||
|
|
||||||
|
(defn update-modal [options]
|
||||||
|
(ptk/reify ::update-modal
|
||||||
|
ptk/UpdateEvent
|
||||||
|
(update [_ state]
|
||||||
|
(-> state
|
||||||
|
(update ::modal merge options)))))
|
||||||
|
|
|
@ -80,18 +80,6 @@
|
||||||
(def current-hover
|
(def current-hover
|
||||||
(l/derived :hover workspace-local))
|
(l/derived :hover workspace-local))
|
||||||
|
|
||||||
(def picking-color?
|
|
||||||
(l/derived :picking-color? workspace-local))
|
|
||||||
|
|
||||||
(def picked-color
|
|
||||||
(l/derived :picked-color workspace-local))
|
|
||||||
|
|
||||||
(def picked-color-select
|
|
||||||
(l/derived :picked-color-select workspace-local))
|
|
||||||
|
|
||||||
(def picked-shift?
|
|
||||||
(l/derived :picked-shift? workspace-local))
|
|
||||||
|
|
||||||
(def workspace-layout
|
(def workspace-layout
|
||||||
(l/derived :workspace-layout st/state))
|
(l/derived :workspace-layout st/state))
|
||||||
|
|
||||||
|
|
|
@ -16,49 +16,26 @@
|
||||||
[app.main.ui.keyboard :as k]
|
[app.main.ui.keyboard :as k]
|
||||||
[app.util.dom :as dom]
|
[app.util.dom :as dom]
|
||||||
[app.main.refs :as refs]
|
[app.main.refs :as refs]
|
||||||
[potok.core :as ptk])
|
[potok.core :as ptk]
|
||||||
|
[app.main.data.modal :as mdm])
|
||||||
(:import goog.events.EventType))
|
(:import goog.events.EventType))
|
||||||
|
|
||||||
(defonce components (atom {}))
|
(defonce components (atom {}))
|
||||||
|
|
||||||
(defn show-modal [id type props]
|
|
||||||
(ptk/reify ::show-modal
|
|
||||||
ptk/UpdateEvent
|
|
||||||
(update [_ state]
|
|
||||||
(-> state
|
|
||||||
(assoc-in [:workspace-local :modal] {:id id
|
|
||||||
:type type
|
|
||||||
:props props
|
|
||||||
:allow-click-outside false})))))
|
|
||||||
|
|
||||||
(defn hide-modal []
|
|
||||||
(ptk/reify ::hide-modal
|
|
||||||
ptk/UpdateEvent
|
|
||||||
(update [_ state]
|
|
||||||
(-> state
|
|
||||||
(update :workspace-local dissoc :modal)))))
|
|
||||||
|
|
||||||
(defn update-modal [options]
|
|
||||||
(ptk/reify ::hide-modal
|
|
||||||
ptk/UpdateEvent
|
|
||||||
(update [_ state]
|
|
||||||
(-> state
|
|
||||||
(update-in [:workspace-local :modal] merge options)))))
|
|
||||||
|
|
||||||
(defn show!
|
(defn show!
|
||||||
([type props]
|
([type props]
|
||||||
(let [id (random-uuid)]
|
(let [id (random-uuid)]
|
||||||
(st/emit! (show-modal id type props)))))
|
(st/emit! (mdm/show-modal id type props)))))
|
||||||
|
|
||||||
(defn allow-click-outside! []
|
(defn allow-click-outside! []
|
||||||
(st/emit! (update-modal {:allow-click-outside true})))
|
(st/emit! (mdm/update-modal {:allow-click-outside true})))
|
||||||
|
|
||||||
(defn disallow-click-outside! []
|
(defn disallow-click-outside! []
|
||||||
(st/emit! (update-modal {:allow-click-outside false})))
|
(st/emit! (mdm/update-modal {:allow-click-outside false})))
|
||||||
|
|
||||||
(defn hide!
|
(defn hide!
|
||||||
[]
|
[]
|
||||||
(st/emit! (hide-modal)))
|
(st/emit! (mdm/hide-modal)))
|
||||||
|
|
||||||
(defn- on-esc-clicked
|
(defn- on-esc-clicked
|
||||||
[event]
|
[event]
|
||||||
|
@ -117,10 +94,11 @@
|
||||||
|
|
||||||
|
|
||||||
(def modal-ref
|
(def modal-ref
|
||||||
(l/derived :modal refs/workspace-local))
|
(l/derived ::mdm/modal st/state))
|
||||||
|
|
||||||
(mf/defc modal
|
(mf/defc modal
|
||||||
[]
|
[]
|
||||||
(let [modal (mf/deref modal-ref)]
|
(let [modal (mf/deref modal-ref)]
|
||||||
|
(println "modal" modal)
|
||||||
(when modal [:& modal-wrapper {:data modal
|
(when modal [:& modal-wrapper {:data modal
|
||||||
:key (:id modal)}])))
|
:key (:id modal)}])))
|
||||||
|
|
|
@ -114,18 +114,18 @@
|
||||||
(defn- render-text-node
|
(defn- render-text-node
|
||||||
([node] (render-text-node 0 node))
|
([node] (render-text-node 0 node))
|
||||||
([index {:keys [type text children] :as node}]
|
([index {:keys [type text children] :as node}]
|
||||||
(mf/html
|
(let [embed-resources? (mf/use-ctx muc/embed-ctx)
|
||||||
(let [embed-resources? (mf/use-ctx muc/embed-ctx)
|
embeded-fonts (mf/use-state nil)]
|
||||||
embeded-fonts (mf/use-state nil)]
|
(mf/use-effect
|
||||||
(mf/use-effect
|
(mf/deps node)
|
||||||
(mf/deps node)
|
(fn []
|
||||||
(fn []
|
(when (and embed-resources? (= type "root"))
|
||||||
(when (and embed-resources? (= type "root"))
|
(let [font-to-embed (get-all-fonts node)
|
||||||
(let [font-to-embed (get-all-fonts node)
|
embeded (map embed-font font-to-embed)]
|
||||||
embeded (map embed-font font-to-embed)]
|
(-> (p/all embeded)
|
||||||
(-> (p/all embeded)
|
(p/then (fn [result] (reset! embeded-fonts (str/join "\n" result)))))))))
|
||||||
(p/then (fn [result] (reset! embeded-fonts (str/join "\n" result)))))))))
|
|
||||||
|
|
||||||
|
(mf/html
|
||||||
(if (string? text)
|
(if (string? text)
|
||||||
(let [style (generate-text-styles (clj->js node))]
|
(let [style (generate-text-styles (clj->js node))]
|
||||||
[:span {:style style :key index} text])
|
[:span {:style style :key index} text])
|
||||||
|
@ -138,10 +138,9 @@
|
||||||
{:key index
|
{:key index
|
||||||
:style style
|
:style style
|
||||||
:xmlns "http://www.w3.org/1999/xhtml"}
|
:xmlns "http://www.w3.org/1999/xhtml"}
|
||||||
[:*
|
(when (not (nil? @embeded-fonts))
|
||||||
(when (not (nil? @embeded-fonts))
|
|
||||||
[:style @embeded-fonts])
|
[:style @embeded-fonts])
|
||||||
children]])
|
children])
|
||||||
|
|
||||||
"paragraph-set"
|
"paragraph-set"
|
||||||
(let [style #js {:display "inline-block"
|
(let [style #js {:display "inline-block"
|
||||||
|
|
|
@ -24,6 +24,21 @@
|
||||||
[app.main.refs :as refs]
|
[app.main.refs :as refs]
|
||||||
[app.util.i18n :as i18n :refer [t]]))
|
[app.util.i18n :as i18n :refer [t]]))
|
||||||
|
|
||||||
|
;; --- Refs
|
||||||
|
|
||||||
|
(def picking-color?
|
||||||
|
(l/derived :picking-color? refs/workspace-local))
|
||||||
|
|
||||||
|
(def picked-color
|
||||||
|
(l/derived :picked-color refs/workspace-local))
|
||||||
|
|
||||||
|
(def picked-color-select
|
||||||
|
(l/derived :picked-color-select refs/workspace-local))
|
||||||
|
|
||||||
|
(def picked-shift?
|
||||||
|
(l/derived :picked-shift? refs/workspace-local))
|
||||||
|
|
||||||
|
|
||||||
;; --- Color Picker Modal
|
;; --- Color Picker Modal
|
||||||
|
|
||||||
(mf/defc value-selector [{:keys [hue saturation value on-change]}]
|
(mf/defc value-selector [{:keys [hue saturation value on-change]}]
|
||||||
|
@ -102,10 +117,10 @@
|
||||||
shared-libs (mf/deref refs/workspace-libraries)
|
shared-libs (mf/deref refs/workspace-libraries)
|
||||||
recent-colors (mf/deref refs/workspace-recent-colors)
|
recent-colors (mf/deref refs/workspace-recent-colors)
|
||||||
|
|
||||||
picking-color? (mf/deref refs/picking-color?)
|
picking-color? (mf/deref picking-color?)
|
||||||
picked-color (mf/deref refs/picked-color)
|
picked-color (mf/deref picked-color)
|
||||||
picked-color-select (mf/deref refs/picked-color-select)
|
picked-color-select (mf/deref picked-color-select)
|
||||||
picked-shift? (mf/deref refs/picked-shift?)
|
picked-shift? (mf/deref picked-shift?)
|
||||||
|
|
||||||
locale (mf/deref i18n/locale)
|
locale (mf/deref i18n/locale)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue