feat: find-in-page add results

pull/6469/head
Tienson Qin 2022-08-23 10:24:30 +08:00
parent b6b9f5e665
commit b677d6f819
4 changed files with 24 additions and 9 deletions

View File

@ -1,10 +1,16 @@
(ns electron.find-in-page
(:require [electron.window :as win]))
(:require [electron.utils :as utils]
[cljs-bean.core :as bean]))
(defn find!
[^js window search option]
(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!
[^js window]

View File

@ -159,7 +159,3 @@
(.off win "enter-full-screen")
(.off win "leave-full-screen")))
#()))
(defn get-active-window
[]
(.getFocusedWindow BrowserWindow))

View File

@ -124,6 +124,12 @@
:on-error error-f}]
(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"
(fn [code]
(user/login-callback code)))

View File

@ -42,8 +42,8 @@
:node (gdom/getElement "search-in-page")
:on-hide (fn []
(search-handler/electron-exit-find-in-page!)))))
[{:keys [q backward?]}]
[:div#search-in-page.flex.flex-row.absolute.top-2.right-4.shadow-lg.px-2.py-1.faster-fade-in
[{:keys [matches]}]
[: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
[: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
@ -51,7 +51,14 @@
:on-change (fn [e]
(let [value (util/evalue e)]
(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/icon "caret-up" {:style {:font-size 18}})
:on-click (fn []