fix qr code decoding and remove extra data

This commit is contained in:
Adrian Tiberius 2016-06-01 14:01:58 +03:00
parent c81276e3b7
commit 755e9bf2b3
3 changed files with 15 additions and 12 deletions

View File

@ -67,7 +67,7 @@
phone-number [:get :phone-number] phone-number [:get :phone-number]
email [:get :email] email [:get :email]
status [:get :status] status [:get :status]
identity [:get :identity]] identity [:get-in [:user-identity :public]]]
[view {:style st/profile} [view {:style st/profile}
[touchable-highlight {:style st/back-btn-touchable [touchable-highlight {:style st/back-btn-touchable
:on-press #(dispatch [:navigate-back])} :on-press #(dispatch [:navigate-back])}
@ -93,7 +93,5 @@
:value email}] :value email}]
[view st/qr-code-container [view st/qr-code-container
[qr-code {:value (clj->json {:name username [qr-code {:value (clj->json {:name username
:phone-number phone-number
:address email
:whisper-identity identity}) :whisper-identity identity})
:size 150}]]]]) :size 200}]]]])

View File

@ -13,6 +13,7 @@
[status-im.components.styles :refer [color-blue]] [status-im.components.styles :refer [color-blue]]
[status-im.i18n :refer [label]] [status-im.i18n :refer [label]]
[status-im.qr-scanner.styles :as st] [status-im.qr-scanner.styles :as st]
[status-im.utils.types :refer [json->clj]]
[status-im.utils.logging :as log])) [status-im.utils.logging :as log]))
(defn qr-scanner-toolbar [] (defn qr-scanner-toolbar []
@ -23,12 +24,13 @@
[] []
[view st/barcode-scanner-container [view st/barcode-scanner-container
[qr-scanner-toolbar] [qr-scanner-toolbar]
[camera {:onBarCodeRead (fn [{:keys [name address whisper-identity phone-number] :as contact}] [camera {:onBarCodeRead (fn [data]
(when name (dispatch [:set-in [:new-contact :name] name])) (let [{:keys [name address whisper-identity phone-number] :as contact} (json->clj (.-data data))]
(when address (dispatch [:set-in [:new-contact :address] address])) (when name (dispatch [:set-in [:new-contact :name] name]))
(when whisper-identity (dispatch [:set-in [:new-contact :whisper-identity] whisper-identity])) (when address (dispatch [:set-in [:new-contact :address] address]))
(when phone-number (dispatch [:set-in [:new-contact :phone-number] phone-number])) (when whisper-identity (dispatch [:set-in [:new-contact :whisper-identity] whisper-identity]))
(dispatch [:navigate-back])) (when phone-number (dispatch [:set-in [:new-contact :phone-number] phone-number]))
(dispatch [:navigate-back])))
:style st/barcode-scanner}] :style st/barcode-scanner}]
[view st/rectangle-container [view st/rectangle-container
[view st/rectangle [view st/rectangle

View File

@ -8,5 +8,8 @@
(defn to-edn-string [value] (defn to-edn-string [value]
(with-out-str (pr value))) (with-out-str (pr value)))
(defn clj->json [ds] (defn clj->json [data]
(.stringify js/JSON (clj->js ds))) (.stringify js/JSON (clj->js data)))
(defn json->clj [data]
(js->clj (.parse js/JSON data)))