Loading spinner for sign up confirmation view

Former-commit-id: 81b1d6440a
This commit is contained in:
virvar 2016-03-21 15:27:50 +03:00
parent 1595b0b00c
commit ff91912a7a
1 changed files with 49 additions and 42 deletions

View File

@ -10,12 +10,14 @@
[messenger.state :as state]
[messenger.utils.utils :refer [log toast]]
[messenger.utils.resources :as res]
[messenger.components.spinner :refer [spinner]]
[messenger.comm.intercom :as intercom :refer [set-confirmation-code]]
[messenger.android.contacts-list :refer [contacts-list]]))
(def nav-atom (atom nil))
(defn show-home-view []
(swap! state/app-state assoc :loading false)
(binding [state/*nav-render* false]
(.replace @nav-atom (clj->js {:component contacts-list
:name "contacts-list"}))))
@ -37,6 +39,7 @@
(defn send-code [code]
(when (code-valid? code)
(swap! state/app-state assoc :loading true)
(intercom/sign-up-confirm code on-send-code-response)))
(defn update-code [value]
@ -46,54 +49,58 @@
(defui SignUpConfirm
static om/IQuery
(query [this]
'[:confirmation-code])
'[:confirmation-code :loading])
Object
(render
[this]
(let [{:keys [confirmation-code]} (om/props this)
(let [{:keys [confirmation-code loading]} (om/props this)
{:keys [nav]} (om/get-computed this)]
(reset! nav-atom nav)
(view
{:style {:flex 1
:backgroundColor "white"}}
(toolbar-android {:logo res/logo-icon
:title "Confirm"
:titleColor "#4A5258"
:style {:backgroundColor "white"
:height 56
:elevation 2}})
(view {}
(text-input {:underlineColorAndroid "#9CBFC0"
:placeholder "Enter confirmation code"
:keyboardType "number-pad"
:maxLength 4
:onChangeText (fn [value]
(update-code value))
:style {:flex 1
:marginHorizontal 18
:lineHeight 42
:fontSize 14
:fontFamily "Avenir-Roman"
:color "#9CBFC0"}}
confirmation-code)
(if (code-valid? confirmation-code)
(touchable-highlight
{:onPress #(send-code confirmation-code)
:style {:alignSelf "center"
:borderRadius 7
:backgroundColor "#E5F5F6"
{:style {:flex 1}}
(view
{:style {:flex 1
:backgroundColor "white"}}
(toolbar-android {:logo res/logo-icon
:title "Confirm"
:titleColor "#4A5258"
:style {:backgroundColor "white"
:height 56
:elevation 2}})
(view {}
(text-input {:underlineColorAndroid "#9CBFC0"
:placeholder "Enter confirmation code"
:keyboardType "number-pad"
:maxLength 4
:onChangeText (fn [value]
(update-code value))
:style {:flex 1
:marginHorizontal 18
:lineHeight 42
:fontSize 14
:fontFamily "Avenir-Roman"
:color "#9CBFC0"}}
confirmation-code)
(if (code-valid? confirmation-code)
(touchable-highlight
{:onPress #(send-code confirmation-code)
:style {:alignSelf "center"
:borderRadius 7
:backgroundColor "#E5F5F6"
:width 100}}
(text {:style {:marginVertical 10
:textAlign "center"}}
"Confirm"))
(view
{:style {:alignSelf "center"
:borderRadius 7
:backgroundColor "#AAB2B2"
:width 100}}
(text {:style {:marginVertical 10
:textAlign "center"}}
"Confirm"))))))))
:width 100}}
(text {:style {:marginVertical 10
:textAlign "center"}}
"Confirm"))
(view
{:style {:alignSelf "center"
:borderRadius 7
:backgroundColor "#AAB2B2"
:width 100}}
(text {:style {:marginVertical 10
:textAlign "center"}}
"Confirm")))))
(when loading
(spinner {:visible true}))))))
(def sign-up-confirm (om/factory SignUpConfirm))