mirror of
https://github.com/penpot/penpot.git
synced 2025-07-26 01:57:23 +02:00
🎉 Backport questions form integration.
Among other related that need to be ported.
This commit is contained in:
parent
a2d3616171
commit
eb1bcfba83
45 changed files with 983 additions and 529 deletions
|
@ -166,7 +166,7 @@
|
|||
|
||||
(defn append-child!
|
||||
[el child]
|
||||
(.appendChild el child))
|
||||
(.appendChild ^js el child))
|
||||
|
||||
(defn get-first-child
|
||||
[el]
|
||||
|
|
|
@ -37,10 +37,16 @@
|
|||
[& {:keys [initial] :as opts}]
|
||||
(let [state (mf/useState 0)
|
||||
render (aget state 1)
|
||||
state-ref (mf/use-ref {:data (if (fn? initial) (initial) initial)
|
||||
:errors {}
|
||||
:touched {}})
|
||||
form (mf/use-memo #(create-form-mutator state-ref render opts))]
|
||||
|
||||
get-state (mf/use-callback
|
||||
(mf/deps initial)
|
||||
(fn []
|
||||
{:data (if (fn? initial) (initial) initial)
|
||||
:errors {}
|
||||
:touched {}}))
|
||||
|
||||
state-ref (mf/use-ref (get-state))
|
||||
form (mf/use-memo (mf/deps initial) #(create-form-mutator state-ref render get-state opts))]
|
||||
|
||||
(mf/use-effect
|
||||
(mf/deps initial)
|
||||
|
@ -72,7 +78,7 @@
|
|||
(not= cleaned ::s/invalid))))))
|
||||
|
||||
(defn- create-form-mutator
|
||||
[state-ref render opts]
|
||||
[state-ref render get-state opts]
|
||||
(reify
|
||||
IDeref
|
||||
(-deref [_]
|
||||
|
@ -80,7 +86,9 @@
|
|||
|
||||
IReset
|
||||
(-reset! [it new-value]
|
||||
(mf/set-ref-val! state-ref new-value)
|
||||
(if (nil? new-value)
|
||||
(mf/set-ref-val! state-ref (get-state))
|
||||
(mf/set-ref-val! state-ref new-value))
|
||||
(render inc))
|
||||
|
||||
ISwap
|
||||
|
|
|
@ -88,6 +88,7 @@
|
|||
:credentials credentials
|
||||
:referrerPolicy "no-referrer"
|
||||
:signal signal}]
|
||||
|
||||
(-> (js/fetch (str uri) params)
|
||||
(p/then (fn [response]
|
||||
(vreset! abortable? false)
|
||||
|
|
|
@ -19,17 +19,16 @@
|
|||
|
||||
;; --- Router API
|
||||
|
||||
(defn map->Match
|
||||
[data]
|
||||
(r/map->Match data))
|
||||
|
||||
(defn resolve
|
||||
([router id] (resolve router id {} {}))
|
||||
([router id path-params] (resolve router id path-params {}))
|
||||
([router id path-params query-params]
|
||||
(when-let [match (r/match-by-name router id path-params)]
|
||||
(if (empty? query-params)
|
||||
(r/match->path match)
|
||||
(let [query (u/map->query-string query-params)]
|
||||
(-> (u/uri (r/match->path match))
|
||||
(assoc :query query)
|
||||
(str)))))))
|
||||
(r/match->path match query-params))))
|
||||
|
||||
(defn create
|
||||
[routes]
|
||||
|
@ -161,7 +160,3 @@
|
|||
(e/unlistenByKey key)))))
|
||||
(rx/take-until stoper)
|
||||
(rx/subs #(on-change router %)))))))
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue