Merge branch 'master' into enhance/ios-native-navigation

This commit is contained in:
Tienson Qin
2025-11-24 22:36:50 +08:00
102 changed files with 2860 additions and 1586 deletions

View File

@@ -153,7 +153,7 @@
(p/then (fn [manifests]
(let [mft (some #(when (= (:id %) id) %) manifests)
opts (merge (dissoc pkg :logger) mft)]
;;TODO: (throw (js/Error. [:not-found-in-marketplace id]))
;;TODO: (throw (js/Error. [:not-found-in-marketplace id]))
(if (util/electron?)
(ipc/ipc :updateMarketPlugin opts)
(plugin-common-handler/async-install-or-update-for-web! opts)))
@@ -229,7 +229,7 @@
(p/then
(.reload pl)
#(do
;;(if theme (select-a-plugin-theme id))
;;(if theme (select-a-plugin-theme id))
(when (not (util/electron?))
(set! (.-version (.-options pl)) (:version web-pkg))
(set! (.-webPkg (.-options pl)) (bean/->js web-pkg))
@@ -441,13 +441,19 @@
([type *providers] (create-local-renderer-getter type *providers false))
([type *providers many?]
(fn [key]
(when-let [key (and (seq @*providers) key (keyword key))]
(when-let [rs (->> @*providers
(map (fn [pid] (state/get-plugin-resource pid type key)))
(remove nil?)
(flatten)
(seq))]
(if many? rs (first rs)))))))
(when (seq @*providers)
(if key
(when-let [rs (->> @*providers
(map (fn [pid] (state/get-plugin-resource pid type key)))
(remove nil?)
(flatten)
(seq))]
(if many? rs (first rs)))
(->> @*providers
(mapcat (fn [pid]
(some-> (state/get-plugin-resources-with-type pid type)
(vals))))
(seq)))))))
(defonce *fenced-code-providers (atom #{}))
(def register-fenced-code-renderer
@@ -469,11 +475,13 @@
(create-local-renderer-getter
:extensions-enhancers *extensions-enhancer-providers true))
(def *route-renderer-providers (atom #{}))
(defonce *route-renderer-providers (atom #{}))
(def register-route-renderer
;; [pid key payload]
(create-local-renderer-register
:route-renderers *route-renderer-providers))
(def get-route-renderers
;; [key] optional
(create-local-renderer-getter
:route-renderers *route-renderer-providers true))
@@ -496,9 +504,9 @@
(defn update-plugin-settings-state
[id settings]
(state/set-state! [:plugin/installed-plugins id :settings]
;; TODO: force settings related ui reactive
;; Sometimes toggle to `disable` not working
;; But related-option data updated?
;; TODO: force settings related ui reactive
;; Sometimes toggle to `disable` not working
;; But related-option data updated?
(assoc settings :disabled (boolean (:disabled settings)))))
(defn open-settings-file-in-default-app!
@@ -896,8 +904,8 @@
(.on "theme-selected" (fn [^js theme]
(let [theme (bean/->clj theme)
theme (assets-theme-to-file theme)
url (:url theme)
mode (or (:mode theme) (state/sub :ui/theme))]
url (:url theme)
mode (or (:mode theme) (state/sub :ui/theme))]
(when mode
(state/set-custom-theme! mode theme)
(state/set-theme-mode! mode))
@@ -909,7 +917,7 @@
custom-theme (dissoc themes :mode)
mode (:mode themes)]
(state/set-custom-theme! {:light (if (nil? (:light custom-theme)) {:mode "light"} (:light custom-theme))
:dark (if (nil? (:dark custom-theme)) {:mode "dark"} (:dark custom-theme))})
:dark (if (nil? (:dark custom-theme)) {:mode "dark"} (:dark custom-theme))})
(state/set-theme-mode! mode))))
(.on "settings-changed" (fn [id ^js settings]
@@ -926,9 +934,9 @@
(when-let [end (and (some-> v (.-o) (.-disabled) (not))
(.-e v))]
(when (and (number? end)
;; valid end time
;; valid end time
(> end 0)
;; greater than 6s
;; greater than 6s
(> (- end (.-s v)) 6000))
v))))
((fn [perfs]
@@ -947,9 +955,9 @@
(p/then
(fn [plugins-async]
;; true indicate for preboot finished
;; true indicate for preboot finished
(state/set-state! :plugin/indicator-text true)
;; wait for the plugin register async messages
;; wait for the plugin register async messages
(js/setTimeout
(fn []
(some-> (seq plugins-async)