🐛 Force persist operation on go-viewer clicked.

This commit is contained in:
Andrey Antukh 2020-11-23 12:10:07 +01:00 committed by Alonso Torres
parent 686f96eb27
commit 45f17f78f3
3 changed files with 47 additions and 27 deletions

View file

@ -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 ))})

View file

@ -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 []

View file

@ -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]]]))