enhance(ux): improvements for the page preview editor

pull/11433/head
charlie 2024-07-18 15:40:53 +08:00
parent 730629d132
commit 6db0e786e3
3 changed files with 21 additions and 10 deletions

View File

@ -42,6 +42,7 @@
(filter #(= id (:id (second %)))) (first))))
(defn get-popups [] @*popups)
(defn get-last-popup [] (last @*popups))
(defn upsert-popup!
[config]

View File

@ -63,6 +63,7 @@
[frontend.ui :as ui]
[logseq.shui.ui :as shui]
[logseq.shui.dialog.core :as shui-dialog]
[logseq.shui.popup.core :as shui-popups]
[frontend.util :as util]
[frontend.extensions.pdf.utils :as pdf-utils]
[frontend.util.drawer :as drawer]
@ -671,6 +672,7 @@
{:root-props {:onOpenChange (fn [v] (set-visible! v))
:modal false}
:content-props {:class "ls-preview-popup"
:onInteractOutside (fn [^js e] (.preventDefault e))
:onEscapeKeyDown (fn [^js e]
(when (state/editing?)
(.preventDefault e)
@ -708,7 +710,7 @@
(rum/set-ref! *timer nil))
(when-not timer1
(rum/set-ref! *timer1
(js/setTimeout #(set-visible! false) 200)))))}
(js/setTimeout #(set-visible! false) 300)))))}
children]))
(rum/defc page-preview-trigger
@ -741,20 +743,24 @@
(when-let [timer1 (rum/deref *timer1)]
(js/clearTimeout timer1)))
:on-mouse-leave (fn []
(rum/set-ref! *timer1
(js/setTimeout #(set-visible! false) 500)))}
;; check the top popup whether is the preview popup
(when (= "ls-preview-popup"
(some-> (shui-popups/get-last-popup) :content-props :class))
(rum/set-ref! *timer1
(js/setTimeout #(set-visible! false) 500))))}
(let [page-cp (state/get-page-blocks-cp)]
(page-cp {:repo (state/get-current-repo)
:page-name redirect-page-name
:sidebar? sidebar?
:preview? true}))])))]
(if (or (not manual?) open?)
(popup-preview-impl children
{:visible? visible? :set-visible! set-visible!
:*timer *timer :*timer1 *timer1
:render preview-render :*el-popup *el-popup})
children)))
(if (and (not (:preview? config))
(or (not manual?) open?))
(popup-preview-impl children
{:visible? visible? :set-visible! set-visible!
:*timer *timer :*timer1 *timer1
:render preview-render :*el-popup *el-popup})
children)))
(rum/defcs page-cp < db-mixins/query rum/reactive
{:init (fn [state]
@ -957,7 +963,7 @@
*timer1 (rum/use-ref nil) ;; hide
[visible? set-visible!] (rum/use-state nil)
_ #_:clj-kondo/ignore (rum/defc render []
[:div.tippy-wrapper.overflow-y-auto.p-4
[:div.tippy-wrapper
{:style {:width 600
:font-weight 500
:text-align "left"}

View File

@ -256,4 +256,8 @@ html.is-native-ios {
.ls-preview-popup {
@apply pl-6;
.tippy-wrapper {
@apply -ml-5;
}
}