mirror of
https://github.com/penpot/penpot.git
synced 2025-07-23 12:37:28 +02:00
⬆️ Update to the latest version of rumext.
This commit is contained in:
parent
df8451c4e3
commit
80dcf587bf
7 changed files with 8 additions and 60 deletions
|
@ -17,7 +17,7 @@
|
||||||
funcool/okulary {:mvn/version "2020.04.14-0"}
|
funcool/okulary {:mvn/version "2020.04.14-0"}
|
||||||
funcool/potok {:mvn/version "2.8.0-SNAPSHOT"}
|
funcool/potok {:mvn/version "2.8.0-SNAPSHOT"}
|
||||||
funcool/promesa {:mvn/version "5.1.0"}
|
funcool/promesa {:mvn/version "5.1.0"}
|
||||||
funcool/rumext {:mvn/version "2020.04.14-1"}
|
funcool/rumext {:mvn/version "2020.05.04-0"}
|
||||||
}
|
}
|
||||||
:aliases
|
:aliases
|
||||||
{:dev
|
{:dev
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
;; 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 uxbox.main.ui.components.defer
|
|
||||||
(:require
|
|
||||||
[rumext.alpha :as mf]
|
|
||||||
[uxbox.common.uuid :as uuid]
|
|
||||||
[uxbox.util.dom :as dom]
|
|
||||||
[uxbox.util.timers :as ts]
|
|
||||||
[goog.events :as events]
|
|
||||||
[goog.functions :as gf]
|
|
||||||
[goog.object :as gobj])
|
|
||||||
(:import goog.events.EventType
|
|
||||||
goog.events.KeyCodes))
|
|
||||||
|
|
||||||
(defn deferred
|
|
||||||
([component] (deferred component ts/raf))
|
|
||||||
([component schedule]
|
|
||||||
(mf/fnc deferred
|
|
||||||
{::mf/wrap-props false}
|
|
||||||
[props]
|
|
||||||
(let [[render? set-render!] (mf/useState false)]
|
|
||||||
(mf/use-effect
|
|
||||||
(fn [] (schedule #(set-render! true))))
|
|
||||||
(when render?
|
|
||||||
(mf/create-element component props))))))
|
|
||||||
|
|
||||||
(defn throttle
|
|
||||||
[component ms]
|
|
||||||
(mf/fnc throttle
|
|
||||||
{::mf/wrap-props false}
|
|
||||||
[props]
|
|
||||||
(let [[state set-state] (mf/useState props)
|
|
||||||
set-state* (mf/use-memo #(gf/throttle set-state ms))]
|
|
||||||
|
|
||||||
(mf/use-effect
|
|
||||||
nil
|
|
||||||
(fn []
|
|
||||||
(set-state* props)))
|
|
||||||
|
|
||||||
(mf/create-element component state))))
|
|
|
@ -9,7 +9,6 @@
|
||||||
[uxbox.main.ui.modal :as modal]
|
[uxbox.main.ui.modal :as modal]
|
||||||
[uxbox.main.ui.keyboard :as kbd]
|
[uxbox.main.ui.keyboard :as kbd]
|
||||||
[uxbox.main.ui.confirm :refer [confirm-dialog]]
|
[uxbox.main.ui.confirm :refer [confirm-dialog]]
|
||||||
[uxbox.main.ui.components.defer :refer [deferred]]
|
|
||||||
[uxbox.main.ui.components.context-menu :refer [context-menu]]
|
[uxbox.main.ui.components.context-menu :refer [context-menu]]
|
||||||
[uxbox.util.dom :as dom]
|
[uxbox.util.dom :as dom]
|
||||||
[uxbox.util.i18n :as i18n :refer [t tr]]
|
[uxbox.util.i18n :as i18n :refer [t tr]]
|
||||||
|
@ -20,7 +19,7 @@
|
||||||
;; --- Grid Item Thumbnail
|
;; --- Grid Item Thumbnail
|
||||||
|
|
||||||
(mf/defc grid-item-thumbnail
|
(mf/defc grid-item-thumbnail
|
||||||
{::mf/wrap [#(deferred % ts/schedule-on-idle)]}
|
{::mf/wrap [#(mf/deferred % ts/schedule-on-idle)]}
|
||||||
[{:keys [file] :as props}]
|
[{:keys [file] :as props}]
|
||||||
[:div.grid-item-th
|
[:div.grid-item-th
|
||||||
[:& exports/page-svg {:data (:data file)
|
[:& exports/page-svg {:data (:data file)
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
[uxbox.util.geom.shapes :as geom]
|
[uxbox.util.geom.shapes :as geom]
|
||||||
[uxbox.main.refs :as refs]
|
[uxbox.main.refs :as refs]
|
||||||
[uxbox.main.store :as st]
|
[uxbox.main.store :as st]
|
||||||
[uxbox.main.ui.components.defer :refer [deferred]]
|
|
||||||
[uxbox.main.ui.shapes.attrs :as attrs]
|
[uxbox.main.ui.shapes.attrs :as attrs]
|
||||||
[uxbox.main.ui.shapes.common :as common]
|
[uxbox.main.ui.shapes.common :as common]
|
||||||
[uxbox.util.dom :as dom]
|
[uxbox.util.dom :as dom]
|
||||||
|
@ -55,8 +54,8 @@
|
||||||
[shape-wrapper]
|
[shape-wrapper]
|
||||||
(let [frame-shape (frame-shape shape-wrapper)]
|
(let [frame-shape (frame-shape shape-wrapper)]
|
||||||
(mf/fnc frame-wrapper
|
(mf/fnc frame-wrapper
|
||||||
{::mf/wrap [#(deferred % ts/schedule-on-idle)
|
{::mf/wrap [#(mf/memo' % frame-wrapper-memo-equals?)
|
||||||
#(mf/memo' % frame-wrapper-memo-equals?)]
|
#(mf/deferred % ts/schedule-on-idle)]
|
||||||
::mf/wrap-props false}
|
::mf/wrap-props false}
|
||||||
[props]
|
[props]
|
||||||
(let [shape (unchecked-get props "shape")
|
(let [shape (unchecked-get props "shape")
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
[uxbox.main.data.workspace :as dw]
|
[uxbox.main.data.workspace :as dw]
|
||||||
[uxbox.main.refs :as refs]
|
[uxbox.main.refs :as refs]
|
||||||
[uxbox.main.store :as st]
|
[uxbox.main.store :as st]
|
||||||
[uxbox.main.ui.components.defer :refer [throttle deferred]]
|
|
||||||
[uxbox.main.ui.hooks :as hooks]
|
[uxbox.main.ui.hooks :as hooks]
|
||||||
[uxbox.main.ui.keyboard :as kbd]
|
[uxbox.main.ui.keyboard :as kbd]
|
||||||
[uxbox.main.ui.shapes.icon :as icon]
|
[uxbox.main.ui.shapes.icon :as icon]
|
||||||
|
@ -233,8 +232,8 @@
|
||||||
|
|
||||||
(mf/defc frame-wrapper
|
(mf/defc frame-wrapper
|
||||||
{::mf/wrap-props false
|
{::mf/wrap-props false
|
||||||
::mf/wrap [#(deferred % ts/idle-then-raf)
|
::mf/wrap [#(mf/memo' % frame-wrapper-memo-equals?)
|
||||||
#(mf/memo' % frame-wrapper-memo-equals?)]}
|
#(mf/deferred % ts/idle-then-raf)]}
|
||||||
[props]
|
[props]
|
||||||
[:> layer-item props])
|
[:> layer-item props])
|
||||||
|
|
||||||
|
@ -271,7 +270,7 @@
|
||||||
|
|
||||||
(mf/defc layers-tree-wrapper
|
(mf/defc layers-tree-wrapper
|
||||||
{::mf/wrap-props false
|
{::mf/wrap-props false
|
||||||
::mf/wrap [#(throttle % 200) mf/memo]}
|
::mf/wrap [mf/memo #(mf/throttle % 200)]}
|
||||||
[props]
|
[props]
|
||||||
(let [objects (obj/get props "objects")
|
(let [objects (obj/get props "objects")
|
||||||
objects (strip-objects objects)]
|
objects (strip-objects objects)]
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
[uxbox.main.data.workspace :as udw]
|
[uxbox.main.data.workspace :as udw]
|
||||||
[uxbox.main.store :as st]
|
[uxbox.main.store :as st]
|
||||||
[uxbox.main.refs :as refs]
|
[uxbox.main.refs :as refs]
|
||||||
[uxbox.main.ui.components.defer :refer [throttle]]
|
|
||||||
[uxbox.main.ui.workspace.sidebar.align :refer [align-options]]
|
[uxbox.main.ui.workspace.sidebar.align :refer [align-options]]
|
||||||
[uxbox.main.ui.workspace.sidebar.options.frame :as frame]
|
[uxbox.main.ui.workspace.sidebar.options.frame :as frame]
|
||||||
[uxbox.main.ui.workspace.sidebar.options.group :as group]
|
[uxbox.main.ui.workspace.sidebar.options.group :as group]
|
||||||
|
@ -31,7 +30,7 @@
|
||||||
;; --- Options
|
;; --- Options
|
||||||
|
|
||||||
(mf/defc shape-options
|
(mf/defc shape-options
|
||||||
{::mf/wrap [#(throttle % 60)]}
|
{::mf/wrap [#(mf/throttle % 60)]}
|
||||||
[{:keys [shape] :as props}]
|
[{:keys [shape] :as props}]
|
||||||
[:div
|
[:div
|
||||||
(case (:type shape)
|
(case (:type shape)
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
[uxbox.main.streams :as ms]
|
[uxbox.main.streams :as ms]
|
||||||
[uxbox.main.ui.keyboard :as kbd]
|
[uxbox.main.ui.keyboard :as kbd]
|
||||||
[uxbox.main.ui.hooks :as hooks]
|
[uxbox.main.ui.hooks :as hooks]
|
||||||
[uxbox.main.ui.components.defer :refer [deferred]]
|
|
||||||
[uxbox.main.ui.shapes :refer [shape-wrapper frame-wrapper]]
|
[uxbox.main.ui.shapes :refer [shape-wrapper frame-wrapper]]
|
||||||
[uxbox.main.ui.workspace.drawarea :refer [draw-area start-drawing]]
|
[uxbox.main.ui.workspace.drawarea :refer [draw-area start-drawing]]
|
||||||
[uxbox.main.ui.workspace.grid :refer [grid]]
|
[uxbox.main.ui.workspace.grid :refer [grid]]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue