From 7d67ab65254c12b52db4345bfc3381254238b2ca Mon Sep 17 00:00:00 2001 From: Adrian Tiberius Date: Mon, 13 Jun 2016 19:35:18 +0300 Subject: [PATCH] added login and users screens Former-commit-id: 0a5ce64fe25837166b9798953f3bed961fe634c3 --- .../app/src/main/res/drawable-hdpi/avatar.png | Bin 0 -> 1546 bytes .../src/main/res/drawable-hdpi/icon_plus.png | Bin 0 -> 245 bytes .../app/src/main/res/drawable-mdpi/avatar.png | Bin 0 -> 1017 bytes .../src/main/res/drawable-mdpi/icon_plus.png | Bin 0 -> 158 bytes .../src/main/res/drawable-xhdpi/avatar.png | Bin 0 -> 2168 bytes .../src/main/res/drawable-xhdpi/icon_plus.png | Bin 0 -> 278 bytes .../src/main/res/drawable-xxhdpi/avatar.png | Bin 0 -> 3335 bytes .../main/res/drawable-xxhdpi/icon_plus.png | Bin 0 -> 410 bytes .../src/main/res/drawable-xxxhdpi/avatar.png | Bin 0 -> 4638 bytes .../main/res/drawable-xxxhdpi/icon_plus.png | Bin 0 -> 530 bytes src/status_im/login/handlers.cljs | 23 +++++ src/status_im/login/screen.cljs | 83 ++++++++++++++++++ src/status_im/login/styles.cljs | 54 ++++++++++++ src/status_im/users/handlers.cljs | 1 + src/status_im/users/screen.cljs | 68 ++++++++++++++ src/status_im/users/styles.cljs | 83 ++++++++++++++++++ src/status_im/users/subs.cljs | 1 + src/status_im/users/views/user.cljs | 39 ++++++++ 18 files changed, 352 insertions(+) create mode 100644 android/app/src/main/res/drawable-hdpi/avatar.png create mode 100644 android/app/src/main/res/drawable-hdpi/icon_plus.png create mode 100644 android/app/src/main/res/drawable-mdpi/avatar.png create mode 100644 android/app/src/main/res/drawable-mdpi/icon_plus.png create mode 100644 android/app/src/main/res/drawable-xhdpi/avatar.png create mode 100644 android/app/src/main/res/drawable-xhdpi/icon_plus.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/avatar.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/icon_plus.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/avatar.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/icon_plus.png create mode 100644 src/status_im/login/handlers.cljs create mode 100644 src/status_im/login/screen.cljs create mode 100644 src/status_im/login/styles.cljs create mode 100644 src/status_im/users/handlers.cljs create mode 100644 src/status_im/users/screen.cljs create mode 100644 src/status_im/users/styles.cljs create mode 100644 src/status_im/users/subs.cljs create mode 100644 src/status_im/users/views/user.cljs diff --git a/android/app/src/main/res/drawable-hdpi/avatar.png b/android/app/src/main/res/drawable-hdpi/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..b1c2c64e3db6414cb35df84451f6169a00818cf4 GIT binary patch literal 1546 zcmV+l2KD)gP)Px)#7RU!RA>d&T0LwWMHHU<_5Jy5pM5ySA@Kzq2ke9fs1P|*AO*<+3ZP3#Iz&em z0VN$msgP(=AyEK|lpuJv~k+6Q}i9zN)CV*pv8VMu<*keE+~@&hzokj!qKC;#F$*t1Z_&nyqTAz zh{2lE&+gK3TDJX8fK42C<2$HF>aO(9s03H9AY-}F?6QRzNb$9L6FS=5*`~*vi0gTf zOEkvUj@VUnIM>)o=6AJP6Pr6(k=)LTOs*)3rHTRL^|(aP?-h~ZfEXPL2&c0p1Q~bN zK|iv5;lIE-$_ea^IVM_lSWM zfBy)5&b-)b%TZcd-VmGHnVw8XhlAqe)R^k%{RF2kfSj>Ha5hBn7Jf^UBHEqb*Lx;K z|GW{jH6r2(IbrPNV2Ckd_0i(mXu5vB=jM;Ul49)vms#>M5evgp`cX}YK`aF!2XYZ6vGWRG#)|@@t^#4$5`!-tMKQQI>(g*S7K|^9 ztyE6dyv2@K#8i+4a^i@wMiG?-N~QA%q$+FPVn-}uDhRpEkyu;-L==kueRx$cnr$^; z#z~CTBxxyE^b^y7IZI+Jkx7f&CBH1{N6nEMh9kpfWLL=ObaiVjTPC#L|%Q8^rceC4VtPM;aq(y>CVgV(Ac$m~t)@ z@O#9OF{K%8a3Kb6ZPh39 zp63-3<8nod@S#6-A}XFbHYT__eweTi`_e|k3!~B9BE55eN~>_GAB_b2S@UR)|2DUR zPUGy)%~$^C$7e{4Q+pjMo#ET;COkkqB3X;ui4KBtTwmuz| zia9nRw^z(D-pL#~$VCMAg-U=GEa_SG&7mMuu2c=J)LR}?+%Bh~u6oO3Ke7#0hh6Gb z;fwW0YyX>AAGMwerm1wnSjLk~CR-HwVp#x3>fRtA;q$shFyJ*vGQ$st2719dP%u64 zu}4tzK)T)ujUn&s=Ede#MkG;}H|z18`m3I2oj-#5{^&^1NY@So+X~*k#BKHixt2|d zT)re$@260)&5Ckae<{H9ZPmKnE~IM#G5J_n_Lzd=zKuj@sZ4%h`QFyoD1$MVw5{MdtWF&rc|9ET zwS0%$2F{Kym*bjk8Px-0jO|GAvgPym%hKAfcv+mXBSEa+emi|~;^|JYwH-0D^W5~2 zXNSZ7JLa)nTE>Lf&RE4`NemBa5dgEp;lQ_6ApN|?SQryxv)q=kBxVLYH$8qX8VP-f zEJ0t9-URQmrEkW-Sh_K>e8!pqR{l=DxV4k}CY>#6D^4`~Xm=b6c#|VT{@0E_9{Hi& z^>*iaB4z?CCLVm0O6T6k=0Q(6k7?g+i;8d|9P)oW6N`S(t&Q1FiWrR(iG;6M3w@f- z70x3w(Mk}RMIq!Lxa@VL-;Kp$QhQ3$#LPQ`OvQoy=lAl3(mR=4X&QflkSgY*uu}>8 zJ$HQrp3krk{Rv(Ua@lk}FlAyULAE5BSWUiJEsHmba_n^0&Zt+!YGV-M=nZ{WD1x;gDrF>sXYXATM07*qoM6N<$g8dESs{jB1 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-hdpi/icon_plus.png b/android/app/src/main/res/drawable-hdpi/icon_plus.png new file mode 100644 index 0000000000000000000000000000000000000000..19e2a45b574a418ac158cf5d4ae4f95ac7378005 GIT binary patch literal 245 zcmVPx#uSrBfR7ef&Ra**#Fbp&Tz#`S|;QCMeL-ET&g{Z_zdj7ku1T<+|$@UiI)MgzqJOxnEP7qSvc<3I485-dvk2c v*esQm`1dmEYE!g^`H4j)JJI0-C%WtcrBD}jJ}ujI00000NkvXXu0mjf27ziO literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-mdpi/avatar.png b/android/app/src/main/res/drawable-mdpi/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..f208650ddb5a9906a4bc4cd985ad6d70069baa30 GIT binary patch literal 1017 zcmVPx&vq?ljR9FecSW8b+K@^_*XfL-9+d?Z)s3ZnWj2l-jKoVK7k_|rqH!h9QKfsDV zfH5xJ_#fP8q9%w7_qvgoK(Pf2l+qV%@5A#oOw*R$-nr1~Nlu2Dd%kl%&di)SATf_( z+jfi~k4TqDZ;&R>l?IkM*IgPvkiL^7DNp0zg@~+>ek5&>iVAFjSs553ayC!8MS4|% zkNHazBd|icaa9&Q@bIa4B1V8H>H8ke2DJp=Q6W+=B>gd{$bI}EMt@RdfNdIPX1e(y zmh<+}$6=hAZW7(|jrOgR_=K!*1HSON+h|%g%N!KgaiPkpwMNri*L-X=qO;_9geh{% zwVNw^e?awW3qQ0_L5Ogf9I~^T(bIH9Q`ziHoJB$-J-_!@{7QtHB|*kV zB7?#uOy>K~14lCO2cob6aY30o=fIkT2=q(@h;2e<2<&PO8`uIPC`}GB0r561h=6cr zoVKYK9=5;;$^y6`L(8P92u^}3b+|6m;ltleo5P9W$?GP#@T|Nd=%OgRRyU|AGnipm z%rq@#kU~^NW(ujQ%1oz&t@*ioAs<5E$XW^iq zI>`WyniHB7^|AuyPVM{m<% zJn8r_zzKXKMmHIRxR4;aja2m5SSe8>bz`m3Fc)ieGeJdCH!Z9A4+BM(O)7>}&9CHq nKIK!`udXMPv7L6j+s}UiACKU5*8%<~00000NkvXXu0mjfVu##n literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-mdpi/icon_plus.png b/android/app/src/main/res/drawable-mdpi/icon_plus.png new file mode 100644 index 0000000000000000000000000000000000000000..a26e891239298c026ac03c7a4c216429406ac647 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|#^NA%Cx&(BWL^R}5uPrNAr^wk z2?`AV{{NrPbBJY%;Rb;qhAGokop_mr4ZAu5jk5$E1}ut_Fm$@i5g6EWJhp%3GbNj8 z4oe#J@)#1GxK=(}6xhtcYRdez$lmbj#pFZp5)&90Zf_U1o5MZZ184_>r>mdKI;Vst E07>yNcK`qY literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xhdpi/avatar.png b/android/app/src/main/res/drawable-xhdpi/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..8cc91adff5a4808fde018824aad226b5e5d66600 GIT binary patch literal 2168 zcmV-;2#5EHP)Px-GD$>1RCodHTia_CR~SEgzi+Z8F)=Y}LQ4dxLG4o!L#`jY~avG+I%tV1J8AlZh#>82qc~Z*PPF~ zERs8jwx7%TqDzym6w9JcaC8HzOZ(~#;;YL0NVlIWnNSfRfWtY5Y1Pb;Qw)a$F1}G| zPAUr!!0CsO8{lS~bBckIe~lCO?s8AJk|_gl7%_a5uUBvg7JWOP^_AxZR1zSJJPB@= zbxwg}Ra~Ht^tC7zO)((KCHhrx(f*>6YPc9(NQh_iF%gQyMLd}jiDX)lVz*g@!)6tJ zuS0BTbqkM6`t+B9;(bW9Yx!;z0040KlE-=HrToE0ozDW4hZA!mwwTl<((SZ~E!_dp z2CyX3ZOG<)l+x-b2GCIq7}gFl>NuWAiMwMnA{7_++q8p>IA$8%8GR~}spT}PRi@2q5!?GWD(P3Nj57DlqHh~Oil}4qC+UyS zAqAX&?oHMW4vi+jltsWL5Pc^GIm$&4qQ{A=ERc8QdJQ;WTHU zZj;c{hbU6!0c`{wM2Df^&>_w_^`;f&Tv4OIw zLjvWnPyj-D@zcx!qZRQ{E}JCjIFQ98_jdjc9MMKo-F|TqsCS)Hk230@E`y0!C~2mG z!jF1}5?9ELB1yUwOw0%+g0#IKMv+8aegfo^;Rq{%jUtJpkve_Dxvf{C&?L7MTi&p22GY~|4B?~HpGdl5ks3Lredh0D($ z4kbOloW*2C#GENP{Q2w1VUb(^Bh932UT8vWS8QI$)kP6fivWomr%uRlY9adtG`f() zR=bo)V!K@e8xT^dC9$-W5%|}M(o(nCY*OCc*jlY-VaMwQ>&|wRaXqf(`j1Oqt!bE8 zs2JoTh!+5mAseV7v4n_{@kuxmi;EaQNiT8UGmb3yq~``$UbjOjn0efG9M`>5FTreh5X=5WqYh*3QR*P8#T9&~I_+3icR*-WW{gpRy zQV2jQxea(Ro)V9r2F3Jj)bO;a;6TmYOvjEkkLcOhBAkvDNu$ctzYREd2mYyt<4@Fc z&MS|nf=U_zK=pD{wMZW&{dziE^5?75==-#oGX*K84gv_A@&23-E$n$b6;kFHwQoJN zoTGX={i4jotHLZ9dxeJn?1Q%rl~ zzYk`9nwpIq#@wX)9_{^Ws=p}LbYJA62)7aaOt zbu^4Un*DrgCNhkLVb%AlV6R4tg=40(-FvKWbK9wE^w;F%_>;MznYq|+c-Qh&qinUt zVsk^ZJ>Y(`cT-@bS{rHth)O0h8Fy%O`s!>jwtKD4OPp`oTHH7M{T=(dO{SXmCD#m) z`b&(C&wM-=T0DVrhP+)0sI34X?h(v!3hU2fJC}#YY4pmW+ z7R9u5i_dY%<@Frd(&1r^-4HSqAk`v7lzZ&avu{F?#Y3nd24u}qoMTX7ob!8~XZtp9 z_!{Rm%`>Xq#abx|DqnM|a&p)%+P+fabBsB0^(S+J-}qmGjVhirDs ueTU6*%WAV+33s;qy2F6EMQc~NPx#&`Cr=R9Fe^mVpVwAP_}+9iUsJ(=^L;g6?Fu=@wbQ-lYl`2>i%NE9DCz#;@n+ zd6JV;u;rYu8sb*MBoTQ$AldNnA|EbYtKwnf(X6QbEnd)^J@|Hc-p5gj+`y5%+g&z6C z$IzO3^X;`G{UML+i1Dw@At8jCgh&VxKss}Xgb)Fw|78yO(#7`?j9tA4p`?+`$Xd_r c?$R*$1|T9FAlF{}&Hw-a07*qoM6N<$g1XsyJOBUy literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxhdpi/avatar.png b/android/app/src/main/res/drawable-xxhdpi/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..7fb2d0b42b570a94bcd2574ae2ed2b779ba889df GIT binary patch literal 3335 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 RSQ!8S002ovPDHLkV1m(=RMG$d literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxhdpi/icon_plus.png b/android/app/src/main/res/drawable-xxhdpi/icon_plus.png new file mode 100644 index 0000000000000000000000000000000000000000..dad95d18143730ebaf829da75d880ef277748583 GIT binary patch literal 410 zcmV;L0cHM)P)Px$R7pfZRA>e5nn4bNKnz74AZ8FRBoxF#WH%%QF@ty^q1_TIV(#ZYWO2s#r0aj@mekmVjAhp6oVVHK?|dt| z&-j|P^Gh^z`;2j8d{6ea9z44r=dSpc?C0g-jf!4QS1kv9ZBhN&xodn~KVxeINgo4Z z=@E$nK}-me-UPAqh(v)PCIm@uf>?S)qCgN6f}}S=EIlGoAczS;(wiWb9+4=p1u-5w z%cc3`IVQVBW7^zO^O+iv!7ct1T+b~z|L3EDEM#l@4eUQ63}Y)$X#fBK07*qoM6N<$ Eg8eSA+yDRo literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxxhdpi/avatar.png b/android/app/src/main/res/drawable-xxxhdpi/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..c33ac676196df6cc69ba2fd1f5a217ef28ba1919 GIT binary patch literal 4638 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 literal 0 HcmV?d00001 diff --git a/src/status_im/login/handlers.cljs b/src/status_im/login/handlers.cljs new file mode 100644 index 0000000000..62315642bd --- /dev/null +++ b/src/status_im/login/handlers.cljs @@ -0,0 +1,23 @@ +(ns status-im.login.handlers + (:require [re-frame.core :refer [register-handler after dispatch]] + [status-im.utils.handlers :as u])) + + +(defn set-login-from-qr + [{:keys [login] :as db} [_ _ login-info]] + (assoc db :login (merge login login-info))) + +(register-handler :set-login-from-qr set-login-from-qr) + + +(defn go-back + [_ _] + (dispatch [:navigate-back])) + +(defn login + [{:keys [login] :as db} [_ _]] + (assoc db :current-account {:address (:address login)})) + +(register-handler :login-account + (-> login + ((after go-back)))) \ No newline at end of file diff --git a/src/status_im/login/screen.cljs b/src/status_im/login/screen.cljs new file mode 100644 index 0000000000..e8974cffff --- /dev/null +++ b/src/status_im/login/screen.cljs @@ -0,0 +1,83 @@ +(ns status-im.login.screen + (:require-macros [status-im.utils.views :refer [defview]]) + (:require [re-frame.core :refer [subscribe dispatch dispatch-sync]] + [status-im.components.react :refer [view + text + text-input + image + linear-gradient + touchable-highlight]] + [status-im.components.toolbar :refer [toolbar]] + [status-im.components.styles :refer [color-purple + color-white + icon-search + icon-back + icon-qr + toolbar-background1 + toolbar-title-container + toolbar-title-text + button-input-container + button-input + white-form-text-input]] + [status-im.qr-scanner.views.import-button :refer [import-button]] + [status-im.i18n :refer [label]] + [status-im.login.styles :as st])) + +(def toolbar-title + [view toolbar-title-container + [text {:style (merge toolbar-title-text {:color color-white})} + (label :t/login)]]) + +(defview address-input [address] + [view button-input-container + [text-input + {:underlineColorAndroid color-white + :placeholderTextColor color-white + :style (merge white-form-text-input button-input) + :autoFocus true + :placeholder (label :t/address) + :onChangeText #(dispatch [:set-in [:login :address] %])} + address] + [import-button #(dispatch [:scan-qr-code {:toolbar-title (label :t/login)} :set-address-from-qr])]]) + +(defview password-input [] + [] + [text-input + {:underlineColorAndroid color-white + :placeholderTextColor color-white + :style white-form-text-input + :autoFocus true + :placeholder (label :t/password) + :onChangeText #(dispatch [:set-in [:login :password] %])} + ""]) + +(defview login [] + [{:keys [address]} [:get :login]] + [view st/screen-container + [linear-gradient {:colors ["rgba(182, 116, 241, 1)" "rgba(107, 147, 231, 1)" "rgba(43, 171, 238, 1)"] + :start [0, 0] + :end [0.5, 1] + :locations [0, 0.8 ,1] + :style st/gradient-background}] + + [toolbar {:background-color :transparent + :nav-action {:image {:source {:uri :icon_back_white} + :style icon-back} + :handler #(dispatch [:navigate-back])} + :custom-content toolbar-title + :action {:image {:style icon-search} + :handler #()}}] + [view st/form-container + [address-input (or address "")] + [password-input] + ] + [view st/bottom-actions-container + [view st/recover-text-container + [touchable-highlight + {:on-press #()} + [text {:style st/recover-text} (label :t/recover-from-passphrase)]]] + [view st/connect-button-container + [touchable-highlight + {:on-press #(dispatch [:login-account])} + [view st/connect-button + [text {:style st/connect-button-text} (label :t/connect)]]]]]]) diff --git a/src/status_im/login/styles.cljs b/src/status_im/login/styles.cljs new file mode 100644 index 0000000000..677c3e7799 --- /dev/null +++ b/src/status_im/login/styles.cljs @@ -0,0 +1,54 @@ +(ns status-im.login.styles + (:require [status-im.components.styles :refer [font + title-font + text1-color + color-white + toolbar-background2 + online-color]])) + + +(def screen-container + {:flex 1 + :color :white}) + +(def gradient-background + {:position :absolute + :top 0 + :right 0 + :bottom 0 + :left 0}) + +(def form-container + {:marginLeft 16 + :margin-top 70}) + +(def bottom-actions-container + {:position :absolute + :left 0 + :right 0 + :bottom 16}) + +(def recover-text-container + {:flex 1 + :flexWrap :nowrap + :padding 16}) + +(def recover-text + {:flex 1 + :color color-white}) + +(def connect-button-container + {:position :absolute + :right 16 + :top 0}) + +(def connect-button + {:backgroundColor color-white + :borderRadius 55 + :paddingVertical 16 + :paddingHorizontal 28 + }) + +(def connect-button-text + {:color "#7099e6" + :fontSize 16}) \ No newline at end of file diff --git a/src/status_im/users/handlers.cljs b/src/status_im/users/handlers.cljs new file mode 100644 index 0000000000..7aa5f85efa --- /dev/null +++ b/src/status_im/users/handlers.cljs @@ -0,0 +1 @@ +(ns status-im.users.handlers) \ No newline at end of file diff --git a/src/status_im/users/screen.cljs b/src/status_im/users/screen.cljs new file mode 100644 index 0000000000..b40e29a30d --- /dev/null +++ b/src/status_im/users/screen.cljs @@ -0,0 +1,68 @@ +(ns status-im.users.screen + (:require-macros [status-im.utils.views :refer [defview]]) + (:require [re-frame.core :refer [subscribe dispatch dispatch-sync]] + [status-im.components.react :refer [view + text + list-view + list-item + image + linear-gradient + touchable-highlight]] + [status-im.components.toolbar :refer [toolbar]] + [status-im.components.styles :refer [color-purple + color-white + icon-search + icon-back + icon-qr + toolbar-background1 + toolbar-title-container + toolbar-title-text + button-input-container + button-input + white-form-text-input]] + [status-im.utils.listview :as lw] + [status-im.users.views.user :refer [user-view]] + [status-im.i18n :refer [label]] + [status-im.users.styles :as st])) + +(def toolbar-title + [view toolbar-title-container + [text {:style (merge toolbar-title-text {:color color-white})} + (label :t/switch-users)]]) + +(defn render-row [row _ _] + (list-item [user-view row])) + +(defn render-separator [_ row-id _] + (list-item [view {:style st/row-separator + :key row-id}])) + +(defview users [] + [accounts [:get :accounts]] + (let [accounts (conj accounts {:name (label :t/add-account) + :address "0x0" + :photo-path :icon_plus})] + [view st/screen-container + [linear-gradient {:colors ["rgba(182, 116, 241, 1)" "rgba(107, 147, 231, 1)" "rgba(43, 171, 238, 1)"] + :start [0, 0] + :end [0.5, 1] + :locations [0, 0.8 ,1] + :style st/gradient-background}] + + [toolbar {:background-color :transparent + :nav-action {:image {:source {:uri :icon_back_white} + :style icon-back} + :handler #(dispatch [:navigate-back])} + :custom-content toolbar-title + :action {:image {:style icon-search} + :handler #()}}] + + [view st/user-list-container + [list-view {:dataSource (lw/to-datasource accounts) + :enableEmptySections true + :renderRow render-row + :renderSeparator render-separator + :style st/user-list}]]])) + + +;(re-frame.core/dispatch [:set :view-id :users]) \ No newline at end of file diff --git a/src/status_im/users/styles.cljs b/src/status_im/users/styles.cljs new file mode 100644 index 0000000000..1c580d8f73 --- /dev/null +++ b/src/status_im/users/styles.cljs @@ -0,0 +1,83 @@ +(ns status-im.users.styles + (:require [status-im.components.styles :refer [font + title-font + text1-color + color-white + toolbar-background2 + online-color]])) + + +(def screen-container + {:flex 1 + :color :white}) + +(def gradient-background + {:position :absolute + :top 0 + :right 0 + :bottom 0 + :left 0}) + +(def user-list-container1 + {:position :absolute + :top 56 + :right 0 + :bottom 0 + :left 0 + :justifyContent :center}) + +(def user-list-container + {:flex 1 + :flexDirection :column + :justifyContent :center}) + +(def user-list + {}) + +(def row-separator + {:borderBottomWidth 1 + :borderBottomColor "#bababa"}) + +(def user-container + {:flex 1 + :flexDirection :row + :height 69 + :backgroundColor "rgba(255, 255, 255, 0.1)" + :alignItems :center + :justifyContent :center}) + +(def photo-container + {:flex 0.2 + :flexDirection :column + :alignItems :center + :justifyContent :center}) + +(def user-photo-container + {:flex 1 + :backgroundColor "rgba(255, 255, 255, 0.2)" + :borderRadius 50 + :width 36 + :height 36 + :alignItems :center + :justifyContent :center}) + +(def photo-image + {:borderRadius 50 + :width 36 + :height 36}) + +(def name-container + {:flex 1 + :flexDirection :column}) + +(def name-text + {:color color-white}) + +(def address-text + {:color color-white}) + +(def online-container + {:flex 0.2 + :flexDirection :column + :alignItems :center + :justifyContent :center}) diff --git a/src/status_im/users/subs.cljs b/src/status_im/users/subs.cljs new file mode 100644 index 0000000000..805245ffd2 --- /dev/null +++ b/src/status_im/users/subs.cljs @@ -0,0 +1 @@ +(ns status-im.users.subs) \ No newline at end of file diff --git a/src/status_im/users/views/user.cljs b/src/status_im/users/views/user.cljs new file mode 100644 index 0000000000..3ff295ed10 --- /dev/null +++ b/src/status_im/users/views/user.cljs @@ -0,0 +1,39 @@ +(ns status-im.users.views.user + (:require-macros [status-im.utils.views :refer [defview]]) + (:require [clojure.string :as s] + [status-im.resources :as res] + [status-im.components.react :refer [view + text + image + touchable-highlight]] + [re-frame.core :refer [dispatch subscribe]] + [status-im.components.styles :refer [icon-ok + icon-plus]] + [status-im.users.styles :as st])) + +(defn on-press [address] + (dispatch [:navigate-to :login address]) + (dispatch [:set-in [:login :address] address])) + +(defview user-view [{:keys [address photo-path name ] :as account}] + [current-account [:get :current-account]] + [touchable-highlight + {:onPress #(on-press address)} + [view st/user-container + [view st/photo-container + [view st/user-photo-container + (if (not= address "0x0") + [image {:source {:uri (if (s/blank? photo-path) :avatar photo-path)} + :style st/photo-image}] + [image {:source {:uri :icon_plus} + :style icon-plus}])]] + [view st/name-container + [text {:style st/name-text + :numberOfLines 1} name] + (when (not= address "0x0") + [text {:style st/address-text + :numberOfLines 1} address])] + [view st/online-container + (when (= address (:address current-account)) + [image {:source {:uri :icon_ok} + :style icon-ok}])]]])