Skip to content

Commit

Permalink
enhance: memoize electron?, mobile?, etc
Browse files Browse the repository at this point in the history
  • Loading branch information
RCmerci authored and tiensonqin committed Dec 28, 2022
1 parent 94336ba commit 54ec771
Showing 1 changed file with 25 additions and 17 deletions.
42 changes: 25 additions & 17 deletions src/main/frontend/util.cljc
Original file line number Diff line number Diff line change
Expand Up @@ -81,32 +81,40 @@
(sanitizeFilename (str s)))))

#?(:cljs
(defn ios?
[]
(utils/ios)))
(do
(defn ios*?
[]
(utils/ios))
(def ios? (memoize ios*?))))

#?(:cljs
(defn safari?
[]
(let [ua (string/lower-case js/navigator.userAgent)]
(and (string/includes? ua "webkit")
(not (string/includes? ua "chrome"))))))
(do
(defn safari*?
[]
(let [ua (string/lower-case js/navigator.userAgent)]
(and (string/includes? ua "webkit")
(not (string/includes? ua "chrome")))))
(def safari? (memoize safari*?))))

#?(:cljs
(defn mobile?
"Triggering condition: Mobile phones
(do
(defn mobile*?
"Triggering condition: Mobile phones
*** Warning!!! ***
For UX logic only! Don't use for FS logic
iPad / Android Pad doesn't trigger!"
[]
(when-not node-test?
(safe-re-find #"Mobi" js/navigator.userAgent))))
[]
(when-not node-test?
(safe-re-find #"Mobi" js/navigator.userAgent)))
(def mobile? (memoize mobile*?))))

#?(:cljs
(defn electron?
[]
(when (and js/window (gobj/get js/window "navigator"))
(gstring/caseInsensitiveContains js/navigator.userAgent " electron"))))
(do
(defn electron*?
[]
(when (and js/window (gobj/get js/window "navigator"))
(gstring/caseInsensitiveContains js/navigator.userAgent " electron")))
(def electron? (memoize electron*?))))

#?(:cljs
(defn mocked-open-dir-path
Expand Down

0 comments on commit 54ec771

Please sign in to comment.