mirror of
https://github.com/penpot/penpot.git
synced 2025-02-23 07:16:07 -05:00
✨ Add viewer role to token sets
This commit is contained in:
parent
ec49ff2878
commit
b406a28d34
4 changed files with 58 additions and 16 deletions
|
@ -73,16 +73,27 @@
|
||||||
:default-value default-value}]))
|
:default-value default-value}]))
|
||||||
|
|
||||||
(mf/defc checkbox
|
(mf/defc checkbox
|
||||||
[{:keys [checked aria-label on-click]}]
|
[{:keys [checked aria-label on-click disabled]}]
|
||||||
(let [all? (true? checked)
|
(let [all? (true? checked)
|
||||||
mixed? (= checked "mixed")
|
mixed? (= checked "mixed")
|
||||||
checked? (or all? mixed?)]
|
checked? (or all? mixed?)
|
||||||
|
on-click
|
||||||
|
(mf/use-fn
|
||||||
|
(mf/deps disabled)
|
||||||
|
(fn [e]
|
||||||
|
(when-not disabled
|
||||||
|
(on-click e))))]
|
||||||
[:div {:role "checkbox"
|
[:div {:role "checkbox"
|
||||||
:aria-checked (dm/str checked)
|
:aria-checked (dm/str checked)
|
||||||
|
:disabled disabled
|
||||||
|
:title (when disabled (tr "workspace.token.no-permisions-set"))
|
||||||
:tab-index 0
|
:tab-index 0
|
||||||
:class (stl/css-case :checkbox-style true
|
:class (stl/css-case :checkbox-style true
|
||||||
:checkbox-checked-style checked?)
|
:checkbox-checked-style checked?
|
||||||
|
:checkbox-disabled-checked (and checked? disabled)
|
||||||
|
:checkbox-disabled disabled)
|
||||||
:on-click on-click}
|
:on-click on-click}
|
||||||
|
|
||||||
(when checked?
|
(when checked?
|
||||||
[:> icon*
|
[:> icon*
|
||||||
{:aria-label aria-label
|
{:aria-label aria-label
|
||||||
|
@ -94,13 +105,14 @@
|
||||||
[{:keys [label tree-depth tree-path active? selected? collapsed? editing? on-toggle on-edit on-edit-reset on-edit-submit]}]
|
[{:keys [label tree-depth tree-path active? selected? collapsed? editing? on-toggle on-edit on-edit-reset on-edit-submit]}]
|
||||||
(let [editing?' (editing? tree-path)
|
(let [editing?' (editing? tree-path)
|
||||||
active?' (active? tree-path)
|
active?' (active? tree-path)
|
||||||
|
can-edit? (:can-edit (deref refs/permissions))
|
||||||
on-context-menu
|
on-context-menu
|
||||||
(mf/use-fn
|
(mf/use-fn
|
||||||
(mf/deps editing? tree-path)
|
(mf/deps editing? tree-path can-edit?)
|
||||||
(fn [event]
|
(fn [event]
|
||||||
(dom/prevent-default event)
|
(dom/prevent-default event)
|
||||||
(dom/stop-propagation event)
|
(dom/stop-propagation event)
|
||||||
(when-not (editing? tree-path)
|
(when (and can-edit? (not editing?'))
|
||||||
(st/emit!
|
(st/emit!
|
||||||
(wdt/show-token-set-context-menu
|
(wdt/show-token-set-context-menu
|
||||||
{:position (dom/get-client-position event)
|
{:position (dom/get-client-position event)
|
||||||
|
@ -110,18 +122,26 @@
|
||||||
(fn [event]
|
(fn [event]
|
||||||
(dom/stop-propagation event)
|
(dom/stop-propagation event)
|
||||||
(swap! collapsed? not)))
|
(swap! collapsed? not)))
|
||||||
|
|
||||||
on-double-click
|
on-double-click
|
||||||
(mf/use-fn
|
(mf/use-fn
|
||||||
(mf/deps tree-path)
|
(mf/deps tree-path can-edit?)
|
||||||
#(on-edit tree-path))
|
(fn []
|
||||||
|
(when can-edit?
|
||||||
|
(on-edit tree-path))))
|
||||||
|
|
||||||
on-checkbox-click
|
on-checkbox-click
|
||||||
(mf/use-fn
|
(mf/use-fn
|
||||||
(mf/deps on-toggle tree-path)
|
(mf/deps on-toggle tree-path can-edit?)
|
||||||
#(on-toggle tree-path))
|
(fn []
|
||||||
|
(when can-edit?
|
||||||
|
(on-toggle tree-path))))
|
||||||
|
|
||||||
on-edit-submit'
|
on-edit-submit'
|
||||||
(mf/use-fn
|
(mf/use-fn
|
||||||
(mf/deps tree-path on-edit-submit)
|
(mf/deps tree-path on-edit-submit can-edit?)
|
||||||
#(on-edit-submit tree-path %))]
|
(fn [e]
|
||||||
|
(when can-edit? (on-edit-submit tree-path e))))]
|
||||||
[:div {:role "button"
|
[:div {:role "button"
|
||||||
:data-testid "tokens-set-group-item"
|
:data-testid "tokens-set-group-item"
|
||||||
:style {"--tree-depth" tree-depth}
|
:style {"--tree-depth" tree-depth}
|
||||||
|
@ -147,6 +167,7 @@
|
||||||
label]
|
label]
|
||||||
[:& checkbox
|
[:& checkbox
|
||||||
{:on-click on-checkbox-click
|
{:on-click on-checkbox-click
|
||||||
|
:disabled (not can-edit?)
|
||||||
:checked (case active?'
|
:checked (case active?'
|
||||||
:all true
|
:all true
|
||||||
:partial "mixed"
|
:partial "mixed"
|
||||||
|
@ -158,6 +179,7 @@
|
||||||
(let [set-name (.-name set)
|
(let [set-name (.-name set)
|
||||||
editing?' (editing? tree-path)
|
editing?' (editing? tree-path)
|
||||||
active?' (some? (active? set-name))
|
active?' (some? (active? set-name))
|
||||||
|
can-edit? (:can-edit (deref refs/permissions))
|
||||||
on-click
|
on-click
|
||||||
(mf/use-fn
|
(mf/use-fn
|
||||||
(mf/deps editing?' tree-path)
|
(mf/deps editing?' tree-path)
|
||||||
|
@ -167,11 +189,11 @@
|
||||||
(on-select tree-path))))
|
(on-select tree-path))))
|
||||||
on-context-menu
|
on-context-menu
|
||||||
(mf/use-fn
|
(mf/use-fn
|
||||||
(mf/deps editing?' tree-path)
|
(mf/deps editing?' tree-path can-edit?)
|
||||||
(fn [event]
|
(fn [event]
|
||||||
(dom/prevent-default event)
|
(dom/prevent-default event)
|
||||||
(dom/stop-propagation event)
|
(dom/stop-propagation event)
|
||||||
(when-not editing?'
|
(when (and can-edit? (not editing?'))
|
||||||
(st/emit!
|
(st/emit!
|
||||||
(wdt/show-token-set-context-menu
|
(wdt/show-token-set-context-menu
|
||||||
{:position (dom/get-client-position event)
|
{:position (dom/get-client-position event)
|
||||||
|
@ -211,6 +233,7 @@
|
||||||
label]
|
label]
|
||||||
[:& checkbox
|
[:& checkbox
|
||||||
{:on-click on-checkbox-click
|
{:on-click on-checkbox-click
|
||||||
|
:disabled (not can-edit?)
|
||||||
:arial-label (tr "workspace.token.select-set")
|
:arial-label (tr "workspace.token.select-set")
|
||||||
:checked active?'}]])]))
|
:checked active?'}]])]))
|
||||||
|
|
||||||
|
|
|
@ -68,17 +68,28 @@
|
||||||
height: $s-16;
|
height: $s-16;
|
||||||
margin-inline: $s-6;
|
margin-inline: $s-6;
|
||||||
background-color: var(--input-checkbox-background-color-rest);
|
background-color: var(--input-checkbox-background-color-rest);
|
||||||
border: 1px solid var(--input-checkbox-border-color-rest);
|
border: $s-1 solid var(--input-checkbox-border-color-rest);
|
||||||
border-radius: 0.25rem;
|
border-radius: $s-4;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.checkbox-checked-style {
|
.checkbox-checked-style {
|
||||||
background-color: var(--input-border-color-active);
|
background-color: var(--input-border-color-active);
|
||||||
|
color: var(--color-background-secondary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-disabled {
|
||||||
|
border: $s-1 solid var(--color-background-quaternary);
|
||||||
|
background-color: var(--color-background-tertiary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-disabled-checked {
|
||||||
|
background-color: var(--color-accent-primary-muted);
|
||||||
|
color: var(--color-background-quaternary);
|
||||||
}
|
}
|
||||||
|
|
||||||
.check-icon {
|
.check-icon {
|
||||||
color: var(--color-background-secondary);
|
color: currentColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
.set-item-container:hover {
|
.set-item-container:hover {
|
||||||
|
|
|
@ -6797,6 +6797,10 @@ msgstr "Define what token sets should be used as part of this theme option:"
|
||||||
msgid "workspace.token.no-sets-yet"
|
msgid "workspace.token.no-sets-yet"
|
||||||
msgstr "There are no sets yet."
|
msgstr "There are no sets yet."
|
||||||
|
|
||||||
|
#: src/app/main/ui/workspace/tokens/sets.cljs
|
||||||
|
msgid "workspace.token.no-permisions-set"
|
||||||
|
msgstr "You need to be an editor to activate / deactivate sets"
|
||||||
|
|
||||||
#: src/app/main/ui/workspace/tokens/sets.cljs
|
#: src/app/main/ui/workspace/tokens/sets.cljs
|
||||||
msgid "workspace.token.no-sets-create"
|
msgid "workspace.token.no-sets-create"
|
||||||
msgstr "There are no sets defined yet. Create one first."
|
msgstr "There are no sets defined yet. Create one first."
|
||||||
|
|
|
@ -6833,6 +6833,10 @@ msgstr "Duplicar token"
|
||||||
msgid "workspace.token.edit"
|
msgid "workspace.token.edit"
|
||||||
msgstr "Editar token"
|
msgstr "Editar token"
|
||||||
|
|
||||||
|
#: src/app/main/ui/workspace/tokens/sets.cljs
|
||||||
|
msgid "workspace.token.no-permisions-set"
|
||||||
|
msgstr "Debes ser editor para activar / desactivar sets"
|
||||||
|
|
||||||
msgid "workspace.versions.button.save"
|
msgid "workspace.versions.button.save"
|
||||||
msgstr "Guardar versión"
|
msgstr "Guardar versión"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue