chore: dispatch open-url event instead of calling function directly (#21246)
This change adds a re-frame event for `:open-url` which will allow UI components to open a url using the re-frame effect `:effects/open-url`. Additionally, some code was refactored to use the `:open-url` event instead of directly opening the urls with the `open-url` function.
This commit is contained in:
parent
a1404385d1
commit
0f20f07363
|
@ -5,7 +5,8 @@
|
||||||
[react-native.core :as rn]
|
[react-native.core :as rn]
|
||||||
[status-im.constants :as const]
|
[status-im.constants :as const]
|
||||||
[status-im.contexts.wallet.sheets.account-origin.style :as style]
|
[status-im.contexts.wallet.sheets.account-origin.style :as style]
|
||||||
[utils.i18n :as i18n]))
|
[utils.i18n :as i18n]
|
||||||
|
[utils.re-frame :as rf]))
|
||||||
|
|
||||||
(defn- header
|
(defn- header
|
||||||
[text]
|
[text]
|
||||||
|
@ -41,5 +42,5 @@
|
||||||
:size 24
|
:size 24
|
||||||
:icon-left :i/info
|
:icon-left :i/info
|
||||||
:container-style style/action-container
|
:container-style style/action-container
|
||||||
:on-press #(rn/open-url const/create-account-link)}
|
:on-press #(rf/dispatch [:open-url const/create-account-link])}
|
||||||
(i18n/label :t/read-more)]])
|
(i18n/label :t/read-more)]])
|
||||||
|
|
|
@ -9,7 +9,8 @@
|
||||||
(defn- crypto-on-ramp-item
|
(defn- crypto-on-ramp-item
|
||||||
[{:keys [name description fees logo-url site-url recurrent-site-url]} _ _ {:keys [tab]}]
|
[{:keys [name description fees logo-url site-url recurrent-site-url]} _ _ {:keys [tab]}]
|
||||||
(let [open-url (rn/use-callback (fn []
|
(let [open-url (rn/use-callback (fn []
|
||||||
(rn/open-url (if (= tab :recurrent) recurrent-site-url site-url)))
|
(rf/dispatch [:open-url
|
||||||
|
(if (= tab :recurrent) recurrent-site-url site-url)]))
|
||||||
[site-url recurrent-site-url tab])]
|
[site-url recurrent-site-url tab])]
|
||||||
[quo/settings-item
|
[quo/settings-item
|
||||||
{:title name
|
{:title name
|
||||||
|
|
|
@ -148,7 +148,7 @@
|
||||||
:sessionJson
|
:sessionJson
|
||||||
transforms/json->clj
|
transforms/json->clj
|
||||||
data-store/get-dapp-redirect-url))]
|
data-store/get-dapp-redirect-url))]
|
||||||
{:fx [[:open-url redirect-url]]})))
|
{:fx [[:effects/open-url redirect-url]]})))
|
||||||
|
|
||||||
(rf/reg-event-fx
|
(rf/reg-event-fx
|
||||||
:wallet-connect/dismiss-request-modal
|
:wallet-connect/dismiss-request-modal
|
||||||
|
|
|
@ -23,5 +23,5 @@
|
||||||
data-store/get-dapp-redirect-url
|
data-store/get-dapp-redirect-url
|
||||||
(fn [_] "native://redirect-url")]
|
(fn [_] "native://redirect-url")]
|
||||||
|
|
||||||
(is (match? {:fx [[:open-url "native://redirect-url"]]}
|
(is (match? {:fx [[:effects/open-url "native://redirect-url"]]}
|
||||||
(dispatch [event-id]))))))
|
(dispatch [event-id]))))))
|
||||||
|
|
|
@ -146,8 +146,12 @@
|
||||||
|
|
||||||
(rf/reg-event-fx :open-share open-share)
|
(rf/reg-event-fx :open-share open-share)
|
||||||
|
|
||||||
|
(rf/reg-event-fx :open-url
|
||||||
|
(fn [_ [url]]
|
||||||
|
{:fx [[:effects/open-url url]]}))
|
||||||
|
|
||||||
(rf/reg-fx
|
(rf/reg-fx
|
||||||
:open-url
|
:effects/open-url
|
||||||
(fn [url]
|
(fn [url]
|
||||||
(when (not (string/blank? url))
|
(when (not (string/blank? url))
|
||||||
(.openURL ^js react/linking (url/normalize-url url)))))
|
(.openURL ^js react/linking (url/normalize-url url)))))
|
||||||
|
|
Loading…
Reference in New Issue