mirror of
https://github.com/penpot/penpot.git
synced 2025-06-07 21:51:40 +02:00
✨ Use different copies for different variant selection cases (#6544)
* ✨ Use different copies for different variant selection cases * 📎 PR changes
This commit is contained in:
parent
927ee9e55e
commit
44829ff1ae
3 changed files with 59 additions and 20 deletions
|
@ -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")]])]])))
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue