Use different copies for different variant selection cases (#6544)

*  Use different copies for different variant selection cases

* 📎 PR changes
This commit is contained in:
luisδμ 2025-05-23 12:08:24 +02:00 committed by GitHub
parent 927ee9e55e
commit 44829ff1ae
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 59 additions and 20 deletions

View file

@ -235,12 +235,26 @@
(when (or editing? creating?) (when (or editing? creating?)
[:div {:class (stl/css :counter)} (str size "/300")])]]))) [:div {:class (stl/css :counter)} (str size "/300")])]])))
(defn- get-variant-error-message [errors]
(cond
(and (= (count errors) 1) (some? (first errors)))
(tr "workspace.options.component.variant.malformed.single.one")
(and (seq errors) (every? some? errors))
(tr "workspace.options.component.variant.malformed.single.all")
(and (seq errors) (some some? errors))
(tr "workspace.options.component.variant.malformed.single.some")
:else nil))
(mf/defc component-variant-main-instance* (mf/defc component-variant-main-instance*
[{:keys [components shape data]}] [{:keys [components shapes data]}]
(let [component (first components) (let [component (first components)
variant-id (:variant-id component) variant-id (:variant-id component)
variant-error? (:variant-error shape)
objects (-> (dsh/get-page data (:main-instance-page component)) objects (-> (dsh/get-page data (:main-instance-page component))
(get :objects)) (get :objects))
@ -254,6 +268,9 @@
prop-vals (mf/with-memo [data objects variant-id] prop-vals (mf/with-memo [data objects variant-id]
(cfv/extract-properties-values data objects variant-id)) (cfv/extract-properties-values data objects variant-id))
variant-errors (mapv :variant-error shapes)
variant-error-msg (get-variant-error-message variant-errors)
empty-indicator "--" empty-indicator "--"
get-options get-options
@ -301,14 +318,14 @@
:options (clj->js (get-options (:name prop))) :options (clj->js (get-options (:name prop)))
:on-change (partial update-property-value pos)}])]])] :on-change (partial update-property-value pos)}])]])]
(when variant-error? (when variant-error-msg
[:div {:class (stl/css :variant-error-wrapper)} [:div {:class (stl/css :variant-error-wrapper)}
[:> icon* {:icon-id "msg-neutral" [:> icon* {:icon-id "msg-neutral"
:class (stl/css :variant-error-darken)}] :class (stl/css :variant-error-darken)}]
[:div {:class (stl/css :variant-error-highlight)} [:div {:class (stl/css :variant-error-highlight)}
(tr "workspace.options.component.variant.malformed.single")] (str variant-error-msg " " (tr "workspace.options.component.variant.malformed.structure.title"))]
[:div {:class (stl/css :variant-error-darken)} [:div {:class (stl/css :variant-error-darken)}
(tr "workspace.options.component.variant.malformed.structure")]])])) (tr "workspace.options.component.variant.malformed.structure.example")]])]))
(mf/defc component-variant* (mf/defc component-variant*
[{:keys [component shape data]}] [{:keys [component shape data]}]
@ -807,7 +824,7 @@
(when (and is-variant? main-instance? same-variant? (not swap-opened?)) (when (and is-variant? main-instance? same-variant? (not swap-opened?))
[:> component-variant-main-instance* {:components components [:> component-variant-main-instance* {:components components
:shape shape :shapes shapes
:data data}]) :data data}])
(when (dbg/enabled? :display-touched) (when (dbg/enabled? :display-touched)
@ -951,7 +968,7 @@
[:> icon* {:icon-id "msg-neutral" [:> icon* {:icon-id "msg-neutral"
:class (stl/css :variant-error-darken)}] :class (stl/css :variant-error-darken)}]
[:div {:class (stl/css :variant-error-highlight)} [:div {:class (stl/css :variant-error-highlight)}
(tr "workspace.options.component.variant.malformed.multi")] (tr "workspace.options.component.variant.malformed.group.title")]
[:button {:class (stl/css :variant-error-button) [:button {:class (stl/css :variant-error-button)
:on-click select-shape-with-error} :on-click select-shape-with-error}
(tr "workspace.options.component.variant.malformed.locate")]])]]))) (tr "workspace.options.component.variant.malformed.group.locate")]])]])))

View file

@ -5312,21 +5312,33 @@ msgid "workspace.options.component.variant"
msgstr "Variant" msgstr "Variant"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:957 #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:957
msgid "workspace.options.component.variant.malformed.locate" msgid "workspace.options.component.variant.malformed.group.locate"
msgstr "Locate invalid variants" msgstr "Locate invalid variants"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:954 #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:954
msgid "workspace.options.component.variant.malformed.multi" msgid "workspace.options.component.variant.malformed.group.title"
msgstr "Some variants have invalid names" msgstr "Some variants have invalid names"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:309 #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:309
msgid "workspace.options.component.variant.malformed.single" msgid "workspace.options.component.variant.malformed.single.all"
msgstr "This variant has an invalid name. Try using the following structure:" msgstr "These variants have invalid names."
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:309
msgid "workspace.options.component.variant.malformed.single.one"
msgstr "This variant has an invalid name."
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:309
msgid "workspace.options.component.variant.malformed.single.some"
msgstr "Some of these variants have invalid names."
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:311 #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:311
msgid "workspace.options.component.variant.malformed.structure" msgid "workspace.options.component.variant.malformed.structure.example"
msgstr "[property]=[value], [property]=[value]" msgstr "[property]=[value], [property]=[value]"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:309
msgid "workspace.options.component.variant.malformed.structure.title"
msgstr "Try using the following structure:"
#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 #: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163
msgid "workspace.options.constraints" msgid "workspace.options.constraints"
msgstr "Constraints" msgstr "Constraints"

View file

@ -5337,23 +5337,33 @@ msgid "workspace.options.component.variant"
msgstr "Variante" msgstr "Variante"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:957 #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:957
msgid "workspace.options.component.variant.malformed.locate" msgid "workspace.options.component.variant.malformed.group.locate"
msgstr "Localizar variantes no válidas" msgstr "Localizar variantes no válidas"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:954 #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:954
msgid "workspace.options.component.variant.malformed.multi" msgid "workspace.options.component.variant.malformed.group.title"
msgstr "Algunas variantes tienen nombres no válidos" msgstr "Algunas variantes tienen nombres no válidos"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:309 #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:309
msgid "workspace.options.component.variant.malformed.single" msgid "workspace.options.component.variant.malformed.single.all"
msgstr "" msgstr "Estas variantes tienen nombres no válidos."
"Esta variante tiene un nombre no válido. Prueba a utilizar la siguiente "
"estructura:" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:309
msgid "workspace.options.component.variant.malformed.single.one"
msgstr "Esta variante tiene un nombre no válido."
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:309
msgid "workspace.options.component.variant.malformed.single.some"
msgstr "Algunas de estas variantes tienen nombres no válidos."
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:311 #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:311
msgid "workspace.options.component.variant.malformed.structure" msgid "workspace.options.component.variant.malformed.structure.example"
msgstr "[propiedad]=[valor], [propiedad]=[valor]" msgstr "[propiedad]=[valor], [propiedad]=[valor]"
#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:309
msgid "workspace.options.component.variant.malformed.structure.title"
msgstr "Prueba a utilizar la siguiente estructura:"
#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 #: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163
msgid "workspace.options.constraints" msgid "workspace.options.constraints"
msgstr "Restricciones" msgstr "Restricciones"