🐛 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}] qparams {:page-id page-id}]
(rx/of (rt/nav :workspace pparams qparams)))))) (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 ;; Context Menu
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -1769,6 +1778,5 @@
"down" #(st/emit! (dwt/move-selected :down false)) "down" #(st/emit! (dwt/move-selected :down false))
"right" #(st/emit! (dwt/move-selected :right false)) "right" #(st/emit! (dwt/move-selected :right false))
"left" #(st/emit! (dwt/move-selected :left false)) "left" #(st/emit! (dwt/move-selected :left false))
"i" #(st/emit! (mdc/picker-for-selected-shape ))}) "i" #(st/emit! (mdc/picker-for-selected-shape ))})

View file

@ -43,10 +43,11 @@
ptk/EffectEvent ptk/EffectEvent
(effect [_ state stream] (effect [_ state stream]
(let [stoper (rx/filter #(= ::finalize %) stream) (let [stoper (rx/filter #(= ::finalize %) stream)
forcer (rx/filter #(= ::force-persist %) stream)
notifier (->> stream notifier (->> stream
(rx/filter (ptk/type? ::dwc/commit-changes)) (rx/filter (ptk/type? ::dwc/commit-changes))
(rx/debounce 2000) (rx/debounce 2000)
(rx/merge stoper)) (rx/merge stoper forcer))
on-dirty on-dirty
(fn [] (fn []

View file

@ -171,57 +171,57 @@
[:li {:on-click #(st/emit! (dw/toggle-layout-flags :rules))} [:li {:on-click #(st/emit! (dw/toggle-layout-flags :rules))}
[:span [:span
(if (contains? layout :rules) (if (contains? layout :rules)
(t locale "workspace.header.menu.hide-rules") (tr "workspace.header.menu.hide-rules")
(t locale "workspace.header.menu.show-rules"))] (tr "workspace.header.menu.show-rules"))]
[:span.shortcut "Ctrl+shift+R"]] [:span.shortcut "Ctrl+shift+R"]]
[:li {:on-click #(st/emit! (dw/toggle-layout-flags :display-grid))} [:li {:on-click #(st/emit! (dw/toggle-layout-flags :display-grid))}
[:span [:span
(if (contains? layout :display-grid) (if (contains? layout :display-grid)
(t locale "workspace.header.menu.hide-grid") (tr "workspace.header.menu.hide-grid")
(t locale "workspace.header.menu.show-grid"))] (tr "workspace.header.menu.show-grid"))]
[:span.shortcut "Ctrl+'"]] [:span.shortcut "Ctrl+'"]]
[:li {:on-click #(st/emit! (dw/toggle-layout-flags :snap-grid))} [:li {:on-click #(st/emit! (dw/toggle-layout-flags :snap-grid))}
[:span [:span
(if (contains? layout :snap-grid) (if (contains? layout :snap-grid)
(t locale "workspace.header.menu.disable-snap-grid") (tr "workspace.header.menu.disable-snap-grid")
(t locale "workspace.header.menu.enable-snap-grid"))] (tr "workspace.header.menu.enable-snap-grid"))]
[:span.shortcut "Ctrl+Shift+'"]] [:span.shortcut "Ctrl+Shift+'"]]
[:li {:on-click #(st/emit! (dw/toggle-layout-flags :sitemap :layers))} [:li {:on-click #(st/emit! (dw/toggle-layout-flags :sitemap :layers))}
[:span [:span
(if (or (contains? layout :sitemap) (contains? layout :layers)) (if (or (contains? layout :sitemap) (contains? layout :layers))
(t locale "workspace.header.menu.hide-layers") (tr "workspace.header.menu.hide-layers")
(t locale "workspace.header.menu.show-layers"))] (tr "workspace.header.menu.show-layers"))]
[:span.shortcut "Ctrl+l"]] [:span.shortcut "Ctrl+l"]]
[:li {:on-click #(st/emit! (dw/toggle-layout-flags :colorpalette))} [:li {:on-click #(st/emit! (dw/toggle-layout-flags :colorpalette))}
[:span [:span
(if (contains? layout :colorpalette) (if (contains? layout :colorpalette)
(t locale "workspace.header.menu.hide-palette") (tr "workspace.header.menu.hide-palette")
(t locale "workspace.header.menu.show-palette"))] (tr "workspace.header.menu.show-palette"))]
[:span.shortcut "Ctrl+p"]] [:span.shortcut "Ctrl+p"]]
[:li {:on-click #(st/emit! (dw/toggle-layout-flags :assets))} [:li {:on-click #(st/emit! (dw/toggle-layout-flags :assets))}
[:span [:span
(if (contains? layout :assets) (if (contains? layout :assets)
(t locale "workspace.header.menu.hide-assets") (tr "workspace.header.menu.hide-assets")
(t locale "workspace.header.menu.show-assets"))] (tr "workspace.header.menu.show-assets"))]
[:span.shortcut "Ctrl+i"]] [:span.shortcut "Ctrl+i"]]
[:li {:on-click #(st/emit! (dw/toggle-layout-flags :dynamic-alignment))} [:li {:on-click #(st/emit! (dw/toggle-layout-flags :dynamic-alignment))}
[:span [:span
(if (contains? layout :dynamic-alignment) (if (contains? layout :dynamic-alignment)
(t locale "workspace.header.menu.disable-dynamic-alignment") (tr "workspace.header.menu.disable-dynamic-alignment")
(t locale "workspace.header.menu.enable-dynamic-alignment"))] (tr "workspace.header.menu.enable-dynamic-alignment"))]
[:span.shortcut "Ctrl+a"]] [:span.shortcut "Ctrl+a"]]
(if (:is-shared file) (if (:is-shared file)
[:li {:on-click on-remove-shared} [:li {:on-click on-remove-shared}
[:span (t locale "dashboard.remove-shared")]] [:span (tr "dashboard.remove-shared")]]
[:li {:on-click on-add-shared} [:li {:on-click on-add-shared}
[:span (t locale "dashboard.add-shared")]]) [:span (tr "dashboard.add-shared")]])
]]])) ]]]))
;; --- Header Component ;; --- Header Component
@ -229,11 +229,21 @@
(mf/defc header (mf/defc header
[{:keys [file layout project page-id] :as props}] [{:keys [file layout project page-id] :as props}]
(let [team-id (:team-id project) (let [team-id (:team-id project)
go-back #(st/emit! (rt/nav :dashboard-projects {:team-id team-id}))
zoom (mf/deref refs/selected-zoom) zoom (mf/deref refs/selected-zoom)
locale (mf/deref i18n/locale)
router (mf/deref refs/router) 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 [:header.workspace-header
[:div.main-icon [:div.main-icon
[:a {:on-click go-back} i/logo-icon]] [:a {:on-click go-back} i/logo-icon]]
@ -259,7 +269,8 @@
:on-zoom-selected #(st/emit! dw/zoom-to-selected-shape)}] :on-zoom-selected #(st/emit! dw/zoom-to-selected-shape)}]
[:a.btn-icon-dark.btn-small.tooltip.tooltip-bottom [:a.btn-icon-dark.btn-small.tooltip.tooltip-bottom
{;; :target "__blank" {:alt (tr "workspace.header.viewer")
:alt (t locale "workspace.header.viewer") :href (str "#" view-url)
:href (str "#" view-url)} i/play]]])) :on-click go-viewer}
i/play]]]))