mirror of
https://github.com/penpot/penpot.git
synced 2025-02-07 23:08:24 -05:00
Check for self references
This commit is contained in:
parent
941fb041b6
commit
1dcdddb2db
2 changed files with 23 additions and 6 deletions
|
@ -82,13 +82,15 @@
|
|||
|
||||
;; Value
|
||||
value (mf/use-var (or (:value token) ""))
|
||||
resolved-value (mf/use-state (get-in tokens [(:id token) :resolved-value]))
|
||||
token-resolve-result (mf/use-state (get-in tokens [(:id token) :resolved-value]))
|
||||
set-resolve-value (mf/use-callback
|
||||
(fn [token]
|
||||
(when (:resolved-value token)
|
||||
(reset! resolved-value (:resolved-value token)))))
|
||||
value-errors (mf/use-state nil)
|
||||
on-update-value (sd/use-debonced-resolve-callback tokens set-resolve-value)]
|
||||
(fn [token-or-err]
|
||||
(let [value (cond
|
||||
(= token-or-err :error/token-self-reference) :error/token-self-reference
|
||||
(= token-or-err :error/token-missing-reference) :error/token-missing-reference
|
||||
(:resolved-value token-or-err) (:resolved-value token-or-err))]
|
||||
(reset! token-resolve-result value))))
|
||||
on-update-value (sd/use-debonced-resolve-callback name token tokens set-resolve-value)]
|
||||
|
||||
;; on-submit (fn [e]
|
||||
;; (dom/prevent-default e)
|
||||
|
|
|
@ -23,6 +23,21 @@
|
|||
|
||||
;; Functions -------------------------------------------------------------------
|
||||
|
||||
(defn token-self-reference? [token-name reference-string]
|
||||
(let [escaped-name (str/replace token-name "." "\\.")
|
||||
regex (-> (str "{" escaped-name "}")
|
||||
(re-pattern))]
|
||||
(re-find regex reference-string)))
|
||||
|
||||
(comment
|
||||
(token-self-reference? {:name "some.value"} "{md} + {some.value}")
|
||||
(token-self-reference? {:name "some.value"} "some.value")
|
||||
(token-self-reference? {:name "some.value"} "{some|value}")
|
||||
(token-self-reference? {:name "sm"} "{md} + {lg}")
|
||||
(token-self-reference? {:name "sm"} "1")
|
||||
(token-self-reference? {:name ""} "121")
|
||||
nil)
|
||||
|
||||
(defn tokens->style-dictionary+
|
||||
"Resolves references and math expressions using StyleDictionary.
|
||||
Returns a promise with the resolved dictionary."
|
||||
|
|
Loading…
Add table
Reference in a new issue