mirror of
https://github.com/penpot/penpot.git
synced 2026-05-05 16:18:35 +00:00
🐛 Add error handler to token form validation to prevent crash
When creating a token with a name that conflicts with existing hierarchical token names (e.g., 'accent-color' when 'accent-color.blue.dark' exists), the validation throws an error via rx/throw. However, the rx/subs! subscriber in generic_form.cljs had no error handler, causing an unhandled exception that resulted in an 'Internal Error' crash. This fix adds an error handler that: 1. Catches validation errors from the reactive stream 2. Uses humanize-errors to convert them to user-friendly messages 3. Displays the error in the form's extra-errors field Before: Crash with 'Internal Error' dialog After: Form shows validation error message Fixes #8110 --- This is a Gittensor contribution. gittensor:user:GlobalStar117
This commit is contained in:
parent
7499a5bca6
commit
0418147e74
@ -18,6 +18,7 @@
|
||||
[app.main.data.workspace.tokens.application :as dwta]
|
||||
[app.main.data.workspace.tokens.library-edit :as dwtl]
|
||||
[app.main.data.workspace.tokens.propagation :as dwtp]
|
||||
[app.main.data.workspace.tokens.errors :as wte]
|
||||
[app.main.data.workspace.tokens.remapping :as remap]
|
||||
[app.main.refs :as refs]
|
||||
[app.main.store :as st]
|
||||
@ -224,7 +225,12 @@
|
||||
:description description}))
|
||||
(dwtl/toggle-token-path path)
|
||||
(dwtp/propagate-workspace-tokens)
|
||||
(modal/hide!))))))))))]
|
||||
(modal/hide!)))))
|
||||
;; Error handler: display validation errors in the form instead of crashing
|
||||
(fn [{:keys [errors]}]
|
||||
(let [error-messages (wte/humanize-errors errors)
|
||||
error-message (first error-messages)]
|
||||
(swap! form assoc-in [:extra-errors :value] {:message error-message}))))))))]
|
||||
|
||||
[:> fc/form* {:class (stl/css :form-wrapper)
|
||||
:form form
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user