mirror of https://github.com/logseq/logseq
feat: find-in-page add results
parent
b6b9f5e665
commit
b677d6f819
|
@ -1,10 +1,16 @@
|
||||||
(ns electron.find-in-page
|
(ns electron.find-in-page
|
||||||
(:require [electron.window :as win]))
|
(:require [electron.utils :as utils]
|
||||||
|
[cljs-bean.core :as bean]))
|
||||||
|
|
||||||
(defn find!
|
(defn find!
|
||||||
[^js window search option]
|
[^js window search option]
|
||||||
(when window
|
(when window
|
||||||
(.findInPage ^js (.-webContents window) search option)))
|
(let [contents ^js (.-webContents window)]
|
||||||
|
(.findInPage contents search option)
|
||||||
|
(.on contents "found-in-page"
|
||||||
|
(fn [_event result]
|
||||||
|
(utils/send-to-renderer window "foundInPage" (bean/->clj result))))
|
||||||
|
true)))
|
||||||
|
|
||||||
(defn clear!
|
(defn clear!
|
||||||
[^js window]
|
[^js window]
|
||||||
|
|
|
@ -159,7 +159,3 @@
|
||||||
(.off win "enter-full-screen")
|
(.off win "enter-full-screen")
|
||||||
(.off win "leave-full-screen")))
|
(.off win "leave-full-screen")))
|
||||||
#()))
|
#()))
|
||||||
|
|
||||||
(defn get-active-window
|
|
||||||
[]
|
|
||||||
(.getFocusedWindow BrowserWindow))
|
|
||||||
|
|
|
@ -124,6 +124,12 @@
|
||||||
:on-error error-f}]
|
:on-error error-f}]
|
||||||
(repo-handler/persist-db! repo handlers))))
|
(repo-handler/persist-db! repo handlers))))
|
||||||
|
|
||||||
|
(js/window.apis.on "foundInPage"
|
||||||
|
(fn [data]
|
||||||
|
(let [data' (bean/->clj data)]
|
||||||
|
(state/set-state! [:ui/find-in-search :matches] data')
|
||||||
|
true)))
|
||||||
|
|
||||||
(js/window.apis.on "loginCallback"
|
(js/window.apis.on "loginCallback"
|
||||||
(fn [code]
|
(fn [code]
|
||||||
(user/login-callback code)))
|
(user/login-callback code)))
|
||||||
|
|
|
@ -42,8 +42,8 @@
|
||||||
:node (gdom/getElement "search-in-page")
|
:node (gdom/getElement "search-in-page")
|
||||||
:on-hide (fn []
|
:on-hide (fn []
|
||||||
(search-handler/electron-exit-find-in-page!)))))
|
(search-handler/electron-exit-find-in-page!)))))
|
||||||
[{:keys [q backward?]}]
|
[{:keys [matches]}]
|
||||||
[:div#search-in-page.flex.flex-row.absolute.top-2.right-4.shadow-lg.px-2.py-1.faster-fade-in
|
[:div#search-in-page.flex.flex-row.absolute.top-2.right-4.shadow-lg.px-2.py-1.faster-fade-in.items-center
|
||||||
[:div.flex
|
[:div.flex
|
||||||
[:input#search-in-page-input.form-input.block.w-48.sm:text-sm.sm:leading-5.my-2.border-none.mr-4.outline-none
|
[:input#search-in-page-input.form-input.block.w-48.sm:text-sm.sm:leading-5.my-2.border-none.mr-4.outline-none
|
||||||
{:auto-focus true
|
{:auto-focus true
|
||||||
|
@ -51,7 +51,14 @@
|
||||||
:on-change (fn [e]
|
:on-change (fn [e]
|
||||||
(let [value (util/evalue e)]
|
(let [value (util/evalue e)]
|
||||||
(state/set-state! [:ui/find-in-search :q] value)
|
(state/set-state! [:ui/find-in-search :q] value)
|
||||||
(debounced-search)))}]]
|
(if (string/blank? value)
|
||||||
|
(search-handler/electron-exit-find-in-page!)
|
||||||
|
(debounced-search))))}]]
|
||||||
|
[:div.px-4.text-sm.opacity-80
|
||||||
|
(:activeMatchOrdinal matches 0)
|
||||||
|
"/"
|
||||||
|
(:matches matches 0)]
|
||||||
|
|
||||||
(ui/button
|
(ui/button
|
||||||
(ui/icon "caret-up" {:style {:font-size 18}})
|
(ui/icon "caret-up" {:style {:font-size 18}})
|
||||||
:on-click (fn []
|
:on-click (fn []
|
||||||
|
|
Loading…
Reference in New Issue