/browse links (addition to #638)

This commit is contained in:
alwx 2017-01-25 14:43:15 +03:00 committed by Roman Volosovskyi
parent c9366892cf
commit 3b80f7d088
9 changed files with 52 additions and 34 deletions

View File

@ -42,7 +42,7 @@
"imageDirs": [ "imageDirs": [
"images" "images"
], ],
"iosHost": "10.0.1.4", "iosHost": "localhost",
"envRoots": { "envRoots": {
"dev": "env/dev", "dev": "env/dev",
"prod": "env/prod" "prod": "env/prod"

View File

@ -14,7 +14,7 @@
(re-frame.core/dispatch [:load-commands!])) (re-frame.core/dispatch [:load-commands!]))
(figwheel/watch-and-reload (figwheel/watch-and-reload
:websocket-url "ws://10.0.3.2:3449/figwheel-ws" :websocket-url "ws://localhost:3449/figwheel-ws"
:heads-up-display false :heads-up-display false
:jsload-callback callback) :jsload-callback callback)

View File

@ -15,7 +15,7 @@
get-dimensions]] get-dimensions]]
[status-im.components.animation :as anim] [status-im.components.animation :as anim]
[status-im.chat.constants :as chat-consts] [status-im.chat.constants :as chat-consts]
[status-im.components.share :refer [share]] [status-im.components.list-selection :refer [share browse]]
[status-im.chat.views.request-message :refer [message-content-command-request]] [status-im.chat.views.request-message :refer [message-content-command-request]]
[status-im.chat.styles.message :as st] [status-im.chat.styles.message :as st]
[status-im.chat.styles.command-pill :as pill-st] [status-im.chat.styles.command-pill :as pill-st]
@ -203,9 +203,10 @@
(let [parsed-text (parse-text content) (let [parsed-text (parse-text content)
simple-text? (= (count parsed-text) 2)] simple-text? (= (count parsed-text) 2)]
(if simple-text? (if simple-text?
[autolink {:style (st/text-message message) [autolink {:style (st/text-message message)
:font :default :font :default
:text (apply str parsed-text)}] :text (apply str parsed-text)
:onPress #(browse %)}]
[text {:style (st/text-message message) [text {:style (st/text-message message)
:font :default} :font :default}
(parse-text content)]))]) (parse-text content)]))])

View File

@ -0,0 +1,37 @@
(ns status-im.components.list-selection
(:require [re-frame.core :refer [dispatch]]
[status-im.components.react :refer [copy-to-clipboard
linking]]
[status-im.utils.platform :refer [platform-specific]]
[status-im.i18n :refer [label]]))
(def class (js/require "react-native-share"))
(defn open [opts]
(.open class (clj->js opts)))
(defn share [text dialog-title]
(let [list-selection-fn (:list-selection-fn platform-specific)]
(list-selection-fn {:title dialog-title
:options [(label :t/sharing-copy-to-clipboard) (label :t/sharing-share)]
:callback (fn [index]
(case index
0 (copy-to-clipboard text)
1 (open {:message text})
:default))
:cancel-text (label :t/sharing-cancel)})))
(defn browse [link]
(let [list-selection-fn (:list-selection-fn platform-specific)]
(list-selection-fn {:title (label :t/browsing-title)
:options [(label :t/browsing-browse) (label :t/browsing-open-in-web-browser)]
:callback (fn [index]
(case index
0 (do
(dispatch [:set-chat-command :browse])
(dispatch [:fill-chat-command-content link])
(js/setTimeout #(dispatch [:send-command!]) 500))
1 (.openURL linking link)
:default))
:cancel-text (label :t/browsing-cancel)})))

View File

@ -49,6 +49,7 @@
(def dimensions (.-Dimensions js/ReactNative)) (def dimensions (.-Dimensions js/ReactNative))
(def keyboard (.-Keyboard react-native)) (def keyboard (.-Keyboard react-native))
(def linking (.-Linking js/ReactNative))
;; Accessor methods for React Components ;; Accessor methods for React Components

View File

@ -1,12 +0,0 @@
(ns status-im.components.share
(:require [re-frame.core :refer [dispatch]]
[status-im.utils.platform :refer [platform-specific]]))
(def class (js/require "react-native-share"))
(defn open [opts]
(.open class (clj->js opts)))
(defn share [text dialog-title]
(let [list-selection-fn (:list-selection-fn platform-specific)]
(dispatch [:open-sharing list-selection-fn text dialog-title])))

View File

@ -6,8 +6,6 @@
[taoensso.timbre :as log] [taoensso.timbre :as log]
[status-im.utils.crypt :refer [gen-random-bytes]] [status-im.utils.crypt :refer [gen-random-bytes]]
[status-im.components.status :as status] [status-im.components.status :as status]
[status-im.components.share :refer [open]]
[status-im.components.react :refer [copy-to-clipboard]]
[status-im.utils.handlers :refer [register-handler] :as u] [status-im.utils.handlers :refer [register-handler] :as u]
status-im.chat.handlers status-im.chat.handlers
status-im.group-settings.handlers status-im.group-settings.handlers
@ -46,18 +44,6 @@
(fn [db [_ k v]] (fn [db [_ k v]]
(assoc-in db [:animations k] v))) (assoc-in db [:animations k] v)))
(register-handler :open-sharing
(u/side-effect!
(fn [_ [_ list-selection-fn text dialog-title]]
(list-selection-fn {:title dialog-title
:options [(label :t/sharing-copy-to-clipboard) (label :t/sharing-share)]
:callback (fn [index]
(case index
0 (copy-to-clipboard text)
1 (open {:message text})
:default))
:cancel-text (label :t/sharing-cancel)}))))
(register-handler :initialize-db (register-handler :initialize-db
(fn [{:keys [status-module-initialized? network-status network]} _] (fn [{:keys [status-module-initialized? network-status network]} _]
(data-store/init) (data-store/init)

View File

@ -22,7 +22,7 @@
[status-im.components.text-field.view :refer [text-field]] [status-im.components.text-field.view :refer [text-field]]
[status-im.components.selectable-field.view :refer [selectable-field]] [status-im.components.selectable-field.view :refer [selectable-field]]
[status-im.components.status-view.view :refer [status-view]] [status-im.components.status-view.view :refer [status-view]]
[status-im.components.share :refer [share]] [status-im.components.list-selection :refer [share]]
[status-im.utils.phone-number :refer [format-phone-number]] [status-im.utils.phone-number :refer [format-phone-number]]
[status-im.utils.image-processing :refer [img->base64]] [status-im.utils.image-processing :refer [img->base64]]
[status-im.utils.platform :refer [platform-specific]] [status-im.utils.platform :refer [platform-specific]]

View File

@ -88,6 +88,11 @@
:sharing-share "Share..." :sharing-share "Share..."
:sharing-cancel "Cancel" :sharing-cancel "Cancel"
:browsing-title "Browse"
:browsing-browse "/browse"
:browsing-open-in-web-browser "Open in web browser"
:browsing-cancel "Cancel"
;sign-up ;sign-up
:contacts-syncronized "Your contacts have been synchronized" :contacts-syncronized "Your contacts have been synchronized"
:confirmation-code (str "Thanks! We've sent you a text message with a confirmation " :confirmation-code (str "Thanks! We've sent you a text message with a confirmation "