From 8c501db2fae2feb25cd18b8cd31bd79db93ae95f Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 14 Mar 2025 12:24:34 +0100 Subject: [PATCH] :bug: Fix problem with readonly and inspect --- CHANGES.md | 2 +- .../main/ui/workspace/sidebar/options.cljs | 27 ++++++++++++------- .../main/ui/workspace/sidebar/options.scss | 5 ++++ .../src/app/main/ui/workspace/viewport.cljs | 2 +- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 83dac4172..f5f694f22 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -12,7 +12,7 @@ tab [Taiga #10377](https://tree.taiga.io/project/penpot/issue/10377) - Fix minor inconsistencies on RPC `get-file-libraries` and `get-file` methods (add missing team-id prop) - +- Fix problem with viewer role and inspect mode [Taiga #9751](https://tree.taiga.io/project/penpot/issue/9751) ## 2.5.3 diff --git a/frontend/src/app/main/ui/workspace/sidebar/options.cljs b/frontend/src/app/main/ui/workspace/sidebar/options.cljs index 1d59834b6..dfe86f6a8 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options.cljs @@ -197,16 +197,25 @@ :id "inspect" :content inspect-content}])] - (mf/with-effect [permissions] - (when-not (:can-edit permissions) - (on-change-tab :inspect))) - [:div {:class (stl/css :tool-window)} - [:> tab-switcher* {:tabs tabs - :default-selected "info" - :on-change-tab on-change-tab - :selected (name options-mode) - :class (stl/css :options-tab-switcher)}]])) + (if (:can-edit permissions) + [:> tab-switcher* {:tabs tabs + :default-selected "info" + :on-change-tab on-change-tab + :selected (name options-mode) + :class (stl/css :options-tab-switcher)}] + + [:div {:class (stl/css-case :element-options true + :inspect-options true + :read-only true)} + [:& hrs/right-sidebar {:page-id page-id + :objects objects + :file-id file-id + :frame shape-parent-frame + :shapes selected-shapes + :on-change-section on-change-section + :on-expand on-expand + :from :workspace}]])])) ;; TODO: this need optimizations, selected-objects and ;; selected-objects-with-children are derefed always but they only diff --git a/frontend/src/app/main/ui/workspace/sidebar/options.scss b/frontend/src/app/main/ui/workspace/sidebar/options.scss index 1d28ee908..8548dc80f 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options.scss @@ -33,6 +33,11 @@ padding-top: $s-8; } +.read-only { + grid-template-areas: "right-sidebar"; + padding: var(--sp-s); +} + .design-options, .interaction-options { overflow: auto; diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index d106c28fb..4b5ded830 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -231,7 +231,7 @@ show-selrect? (and selrect (empty? drawing) (not text-editing?)) show-measures? (and (not transform) (not node-editing?) - (or show-distances? mode-inspect?)) + (or show-distances? mode-inspect? read-only?)) show-artboard-names? (contains? layout :display-artboard-names) hide-ui? (contains? layout :hide-ui) show-rulers? (and (contains? layout :rulers) (not hide-ui?))