mirror of
https://github.com/penpot/penpot.git
synced 2025-02-13 10:38:13 -05:00
🐛 Fix thumbnails in viewer thumbnails
This commit is contained in:
parent
0654741e28
commit
529fb350fa
4 changed files with 25 additions and 13 deletions
|
@ -53,8 +53,10 @@
|
||||||
[{:keys [pool] :as cfg} {:keys [profile-id file-id share-id] :as params}]
|
[{:keys [pool] :as cfg} {:keys [profile-id file-id share-id] :as params}]
|
||||||
(p/let [slink (slnk/retrieve-share-link pool file-id share-id)
|
(p/let [slink (slnk/retrieve-share-link pool file-id share-id)
|
||||||
perms (files/get-permissions pool profile-id file-id share-id)
|
perms (files/get-permissions pool profile-id file-id share-id)
|
||||||
|
thumbs (files/retrieve-object-thumbnails cfg file-id)
|
||||||
bundle (p/-> (retrieve-bundle cfg file-id)
|
bundle (p/-> (retrieve-bundle cfg file-id)
|
||||||
(assoc :permissions perms))]
|
(assoc :permissions perms)
|
||||||
|
(assoc-in [:file :thumbnails] thumbs))]
|
||||||
|
|
||||||
;; When we have neither profile nor share, we just return a not
|
;; When we have neither profile nor share, we just return a not
|
||||||
;; found response to the user.
|
;; found response to the user.
|
||||||
|
|
|
@ -349,15 +349,18 @@
|
||||||
|
|
||||||
;; ---- Viewer refs
|
;; ---- Viewer refs
|
||||||
|
|
||||||
(def viewer-file
|
|
||||||
(l/derived :viewer-file st/state))
|
|
||||||
|
|
||||||
(def viewer-project
|
|
||||||
(l/derived :viewer-file st/state))
|
|
||||||
|
|
||||||
(def viewer-data
|
(def viewer-data
|
||||||
(l/derived :viewer st/state))
|
(l/derived :viewer st/state))
|
||||||
|
|
||||||
|
(def viewer-file
|
||||||
|
(l/derived :file viewer-data))
|
||||||
|
|
||||||
|
(def viewer-thumbnails
|
||||||
|
(l/derived :thumbnails viewer-file))
|
||||||
|
|
||||||
|
(def viewer-project
|
||||||
|
(l/derived :project viewer-data))
|
||||||
|
|
||||||
(def viewer-state
|
(def viewer-state
|
||||||
(l/derived :viewer st/state))
|
(l/derived :viewer st/state))
|
||||||
|
|
||||||
|
|
|
@ -267,7 +267,8 @@
|
||||||
[:& thumbnails-panel {:frames frames
|
[:& thumbnails-panel {:frames frames
|
||||||
:show? (:show-thumbnails local false)
|
:show? (:show-thumbnails local false)
|
||||||
:page page
|
:page page
|
||||||
:index index}]
|
:index index
|
||||||
|
:thumbnail-data (:thumbnails file)}]
|
||||||
[:section.viewer-section {:id "viewer-section"
|
[:section.viewer-section {:id "viewer-section"
|
||||||
:ref viewer-section-ref
|
:ref viewer-section-ref
|
||||||
:class (if fullscreen? "fullscreen" "")}
|
:class (if fullscreen? "fullscreen" "")}
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
(ns app.main.ui.viewer.thumbnails
|
(ns app.main.ui.viewer.thumbnails
|
||||||
(:require
|
(:require
|
||||||
[app.common.data :as d]
|
[app.common.data :as d]
|
||||||
|
[app.common.data.macros :as dm]
|
||||||
[app.main.data.viewer :as dv]
|
[app.main.data.viewer :as dv]
|
||||||
[app.main.render :as render]
|
[app.main.render :as render]
|
||||||
[app.main.store :as st]
|
[app.main.store :as st]
|
||||||
|
@ -74,21 +75,24 @@
|
||||||
(mf/defc thumbnail-item
|
(mf/defc thumbnail-item
|
||||||
{::mf/wrap [mf/memo
|
{::mf/wrap [mf/memo
|
||||||
#(mf/deferred % ts/idle-then-raf)]}
|
#(mf/deferred % ts/idle-then-raf)]}
|
||||||
[{:keys [selected? frame on-click index objects]}]
|
[{:keys [selected? frame on-click index objects page-id thumbnail-data]}]
|
||||||
|
|
||||||
[:div.thumbnail-item {:on-click #(on-click % index)}
|
[:div.thumbnail-item {:on-click #(on-click % index)}
|
||||||
[:div.thumbnail-preview
|
[:div.thumbnail-preview
|
||||||
{:class (dom/classnames :selected selected?)}
|
{:class (dom/classnames :selected selected?)}
|
||||||
[:& render/frame-svg {:frame frame :objects objects :show-thumbnails? true}]]
|
[:& render/frame-svg {:frame (-> frame
|
||||||
|
(assoc :thumbnail (get thumbnail-data (dm/str page-id (:id frame)))))
|
||||||
|
:objects objects
|
||||||
|
:show-thumbnails? true}]]
|
||||||
[:div.thumbnail-info
|
[:div.thumbnail-info
|
||||||
[:span.name {:title (:name frame)} (:name frame)]]])
|
[:span.name {:title (:name frame)} (:name frame)]]])
|
||||||
|
|
||||||
(mf/defc thumbnails-panel
|
(mf/defc thumbnails-panel
|
||||||
[{:keys [frames page index show?] :as props}]
|
[{:keys [frames page index show? thumbnail-data] :as props}]
|
||||||
(let [expanded? (mf/use-state false)
|
(let [expanded? (mf/use-state false)
|
||||||
container (mf/use-ref)
|
container (mf/use-ref)
|
||||||
|
|
||||||
objects (:objects page)
|
objects (:objects page)
|
||||||
|
|
||||||
on-close #(st/emit! dv/toggle-thumbnails-panel)
|
on-close #(st/emit! dv/toggle-thumbnails-panel)
|
||||||
selected (mf/use-var false)
|
selected (mf/use-var false)
|
||||||
|
|
||||||
|
@ -115,6 +119,8 @@
|
||||||
(for [[i frame] (d/enumerate frames)]
|
(for [[i frame] (d/enumerate frames)]
|
||||||
[:& thumbnail-item {:index i
|
[:& thumbnail-item {:index i
|
||||||
:frame frame
|
:frame frame
|
||||||
|
:page-id (:id page)
|
||||||
:objects objects
|
:objects objects
|
||||||
:on-click on-item-click
|
:on-click on-item-click
|
||||||
:selected? (= i index)}])]]))
|
:selected? (= i index)
|
||||||
|
:thumbnail-data thumbnail-data}])]]))
|
||||||
|
|
Loading…
Add table
Reference in a new issue