mirror of
https://github.com/penpot/penpot.git
synced 2025-07-22 00:07:13 +02:00
🐛 Force persist operation on go-viewer clicked.
This commit is contained in:
parent
686f96eb27
commit
45f17f78f3
3 changed files with 47 additions and 27 deletions
|
@ -1225,6 +1225,15 @@
|
|||
qparams {:page-id page-id}]
|
||||
(rx/of (rt/nav :workspace pparams qparams))))))
|
||||
|
||||
|
||||
(defn go-to-viewer
|
||||
[{:keys [file-id page-id] :as params}]
|
||||
(ptk/reify ::go-to-viewer
|
||||
ptk/WatchEvent
|
||||
(watch [_ state stream]
|
||||
(rx/of ::dwp/force-persist
|
||||
(rt/nav :viewer params {:index 0})))))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Context Menu
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
@ -1769,6 +1778,5 @@
|
|||
"down" #(st/emit! (dwt/move-selected :down false))
|
||||
"right" #(st/emit! (dwt/move-selected :right false))
|
||||
"left" #(st/emit! (dwt/move-selected :left false))
|
||||
|
||||
"i" #(st/emit! (mdc/picker-for-selected-shape ))})
|
||||
|
||||
|
|
|
@ -43,10 +43,11 @@
|
|||
ptk/EffectEvent
|
||||
(effect [_ state stream]
|
||||
(let [stoper (rx/filter #(= ::finalize %) stream)
|
||||
forcer (rx/filter #(= ::force-persist %) stream)
|
||||
notifier (->> stream
|
||||
(rx/filter (ptk/type? ::dwc/commit-changes))
|
||||
(rx/debounce 2000)
|
||||
(rx/merge stoper))
|
||||
(rx/merge stoper forcer))
|
||||
|
||||
on-dirty
|
||||
(fn []
|
||||
|
|
|
@ -171,57 +171,57 @@
|
|||
[:li {:on-click #(st/emit! (dw/toggle-layout-flags :rules))}
|
||||
[:span
|
||||
(if (contains? layout :rules)
|
||||
(t locale "workspace.header.menu.hide-rules")
|
||||
(t locale "workspace.header.menu.show-rules"))]
|
||||
(tr "workspace.header.menu.hide-rules")
|
||||
(tr "workspace.header.menu.show-rules"))]
|
||||
[:span.shortcut "Ctrl+shift+R"]]
|
||||
|
||||
[:li {:on-click #(st/emit! (dw/toggle-layout-flags :display-grid))}
|
||||
[:span
|
||||
(if (contains? layout :display-grid)
|
||||
(t locale "workspace.header.menu.hide-grid")
|
||||
(t locale "workspace.header.menu.show-grid"))]
|
||||
(tr "workspace.header.menu.hide-grid")
|
||||
(tr "workspace.header.menu.show-grid"))]
|
||||
[:span.shortcut "Ctrl+'"]]
|
||||
|
||||
[:li {:on-click #(st/emit! (dw/toggle-layout-flags :snap-grid))}
|
||||
[:span
|
||||
(if (contains? layout :snap-grid)
|
||||
(t locale "workspace.header.menu.disable-snap-grid")
|
||||
(t locale "workspace.header.menu.enable-snap-grid"))]
|
||||
(tr "workspace.header.menu.disable-snap-grid")
|
||||
(tr "workspace.header.menu.enable-snap-grid"))]
|
||||
[:span.shortcut "Ctrl+Shift+'"]]
|
||||
|
||||
[:li {:on-click #(st/emit! (dw/toggle-layout-flags :sitemap :layers))}
|
||||
[:span
|
||||
(if (or (contains? layout :sitemap) (contains? layout :layers))
|
||||
(t locale "workspace.header.menu.hide-layers")
|
||||
(t locale "workspace.header.menu.show-layers"))]
|
||||
(tr "workspace.header.menu.hide-layers")
|
||||
(tr "workspace.header.menu.show-layers"))]
|
||||
[:span.shortcut "Ctrl+l"]]
|
||||
|
||||
[:li {:on-click #(st/emit! (dw/toggle-layout-flags :colorpalette))}
|
||||
[:span
|
||||
(if (contains? layout :colorpalette)
|
||||
(t locale "workspace.header.menu.hide-palette")
|
||||
(t locale "workspace.header.menu.show-palette"))]
|
||||
(tr "workspace.header.menu.hide-palette")
|
||||
(tr "workspace.header.menu.show-palette"))]
|
||||
[:span.shortcut "Ctrl+p"]]
|
||||
|
||||
[:li {:on-click #(st/emit! (dw/toggle-layout-flags :assets))}
|
||||
[:span
|
||||
(if (contains? layout :assets)
|
||||
(t locale "workspace.header.menu.hide-assets")
|
||||
(t locale "workspace.header.menu.show-assets"))]
|
||||
(tr "workspace.header.menu.hide-assets")
|
||||
(tr "workspace.header.menu.show-assets"))]
|
||||
[:span.shortcut "Ctrl+i"]]
|
||||
|
||||
[:li {:on-click #(st/emit! (dw/toggle-layout-flags :dynamic-alignment))}
|
||||
[:span
|
||||
(if (contains? layout :dynamic-alignment)
|
||||
(t locale "workspace.header.menu.disable-dynamic-alignment")
|
||||
(t locale "workspace.header.menu.enable-dynamic-alignment"))]
|
||||
(tr "workspace.header.menu.disable-dynamic-alignment")
|
||||
(tr "workspace.header.menu.enable-dynamic-alignment"))]
|
||||
[:span.shortcut "Ctrl+a"]]
|
||||
|
||||
(if (:is-shared file)
|
||||
[:li {:on-click on-remove-shared}
|
||||
[:span (t locale "dashboard.remove-shared")]]
|
||||
[:span (tr "dashboard.remove-shared")]]
|
||||
[:li {:on-click on-add-shared}
|
||||
[:span (t locale "dashboard.add-shared")]])
|
||||
[:span (tr "dashboard.add-shared")]])
|
||||
]]]))
|
||||
|
||||
;; --- Header Component
|
||||
|
@ -229,11 +229,21 @@
|
|||
(mf/defc header
|
||||
[{:keys [file layout project page-id] :as props}]
|
||||
(let [team-id (:team-id project)
|
||||
go-back #(st/emit! (rt/nav :dashboard-projects {:team-id team-id}))
|
||||
zoom (mf/deref refs/selected-zoom)
|
||||
locale (mf/deref i18n/locale)
|
||||
router (mf/deref refs/router)
|
||||
view-url (rt/resolve router :viewer {:page-id page-id :file-id (:id file)} {:index 0})]
|
||||
params {:page-id page-id :file-id (:id file)}
|
||||
view-url (rt/resolve router :viewer params {:index 0})
|
||||
|
||||
go-back
|
||||
(mf/use-callback
|
||||
(mf/deps project)
|
||||
(st/emitf (rt/nav :dashboard-projects {:team-id team-id})))
|
||||
|
||||
go-viewer
|
||||
(mf/use-callback
|
||||
(mf/deps file page-id)
|
||||
(st/emitf (dw/go-to-viewer params)))]
|
||||
|
||||
[:header.workspace-header
|
||||
[:div.main-icon
|
||||
[:a {:on-click go-back} i/logo-icon]]
|
||||
|
@ -259,7 +269,8 @@
|
|||
:on-zoom-selected #(st/emit! dw/zoom-to-selected-shape)}]
|
||||
|
||||
[:a.btn-icon-dark.btn-small.tooltip.tooltip-bottom
|
||||
{;; :target "__blank"
|
||||
:alt (t locale "workspace.header.viewer")
|
||||
:href (str "#" view-url)} i/play]]]))
|
||||
{:alt (tr "workspace.header.viewer")
|
||||
:href (str "#" view-url)
|
||||
:on-click go-viewer}
|
||||
i/play]]]))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue