From a4c602c098627a51cb182258965d2336e0dcc3e5 Mon Sep 17 00:00:00 2001 From: docjyJ Date: Tue, 1 Sep 2020 11:21:26 +0200 Subject: [PATCH] Update About Screen --- assets/android.icon.round.png | Bin 0 -> 16066 bytes locales/en.json | 2 - locales/fr.json | 2 - src/screens/About/AboutScreen.js | 343 +++++++++++++++++-------------- 4 files changed, 193 insertions(+), 154 deletions(-) create mode 100644 assets/android.icon.round.png diff --git a/assets/android.icon.round.png b/assets/android.icon.round.png new file mode 100644 index 0000000000000000000000000000000000000000..88ddc36476018ec9b557990a02ed85136ac27926 GIT binary patch literal 16066 zcmX|oby$<{7x%NEyGu$5DM3<1Uv8vXX9?!=i@og7JEK}MQ^Z#$a^Zb`+DK* zV49xiOOh7tf#oU#nKLxZdO|78H{af1=L?*j7gVS_3kYydY`i}gJftp8RdZ)>&40dq zw><}>r*oM#HBLw5GE4mb`x>Rt!EP^hnZ;Ky#1%6*aG^4|e4$~(Nw6UQ;juRLbJi*M zxVFr%)zr%`bZE~*|4#U0K4uHiNU*Y`GDqe`yCj6>q1L*Gv<$%-J2^r770HQa*W8}8ENq^aE6*yVG;Ne#DOXW>1NUEwPjhc- z3wGP)yw%WaJ{R|Kd?rqO-wSb!m|JCw4C33QGV=(jKz=zqu9vYnKJ2|C#kHNI`V;JR zkKpHHl2T4#LzbyaN^iZNc9<$m8b}HjaWAX#Jb9fQYvy_SeMCvcEFa#wa^f;E8}-r5 zvujCze6jYV9KT*seB;Io5TikMa%|lP2aG4HfZ_^Hs|fwRZcivL`8+coal?U^ae1)o z$|FwP2#-E~vMmDNps zrJ5cFj3_#`{7rG7Wn3QWE&9o|utz@X^0#D!$JmD~N;9j1`4-1RnQ8ICLM?b)6uo&6 zAu_Du_FL|Wnj7AB7k|DZZ`SU7;4)nC>~+{TUrd$QSGVQ*7Dofa%BF|L7;H5eb%n?K zQ2;$;HCQj3Nt3T?1q$gDqy!Ou?`9`O{^VTTyHmbLD0|>7XxU+BzSL#9 zIsWrGFX9`l@g5C}?nCPEVbe1afP13;`T3_Jckc?-hJb;VrNjwb>NC2%l+aHq2OzAV zH@MlPAe`!f>J2$xMuA)mt5Ma=b7$KxF{6Kf>pKHK#YDsLWhu;dQItroSU%@I06Qrv z_Q>tH?7_T7ZP-95+ki3-mwqzoof~yN9&eD)sTo0m*Skqa<>#`n_r)E*o{)SllW0DF zHLd?EXFOj%+vTJh{Mc$ztBQ)bzw6kC`8SrqKh^rUmKPS@V`o_u)FIp%X_)oeiGm&*`mQ)V|b>*bzjap46}U@2hGGUbKicBcBr@ma!` zkrpX@ihr33!Mqd*y(xaQ@#dekul(d%+*_GI&R{%d3og=?2I%v*AKs3-!N3~EgdgCl zc;owgJM(o~P_C?CPA&J@cG{Ot%r^?$U!lC{$h6hPc&E)F2I<)v@8kC^syG?&Z(h;M zy26SxVjyhu>o4wH0ycp^JJZUQ7jWqm2FPKjtKg&<(mWcd`sIRy4H?|3MKCZ{Od2-? zF21qyNfc6)7QcL77)s&>xPy0pm45DQcyg3)<$In%c9mP5Ogbp$vWpTn*jkT9CFHE0 z@zxtv1|w-}|Bk?o&r~X|mrU@NGTA&IvTK*j^3VbO{N+^_JN*q$G;Yd=rpgiCnqBBM zYWiM-6^w_I6~JitI`qc10mKinO_%Wf|!tlfWgVTd(}?XBf( z)|xz&$+y4*{|K& zL#4hDr1W$Ff~C-W39F$kMwScAbj_lbA27kTKT3CvkDv}4NFzHD9p|;YP`}wsmH!N$ z;y|Q0W});yf*;Q@DS#C@U`5`|tkgWhFZVOr1|)pVyeb@y7Fq~wxTRjMG8^Q#(z_p9 z=d43Xg71)$aHM(jqbFjx+B@Y&6Y|r=w`CsQ249ArovXeKJxx`5@(nEuU*UZo8KXHq zhJ1f?Ax!(DywRcH8U#IL8BiRoHP?>wiYK({n1@myooRmS9}%!Q9=kF#8&aEuI7BZU ziRYgpHHeOkhWY5&tcux!{QP{{!E0n5%6fzrnV~)OcgxHde%r~_e!*wmG06Ak7kWn* z57`UNJ^Q*X6ntzqURPC8ex#jwQf%G;jlgSaxY+H)w|(DbbR0gQxri$v71dt|{s*+X zsR?{C>b;^r!9V@3uDnzIl1+x1P6#0lOL6gmiP6Q7iJ$b)`h2PVf@^>rN(C(HSAT!E z%%zMH-0hALejI5aAXu6bJI3j5cJYic}rzwF_o;GS$pM8oMak| zo0Ow3mj88{xS$t-)M?UuxN~s=_F<*JX6?WDGE$4eJf3{a3#ZjrTTA6C=PJyErF*Dm zFXUp)#Twm@@=tacRW2&dY91?T6-k_A3JNo(N@}WeaS<4vCLZZUYL0_->QC?f|35o{ z8LwH-(g7Pdna&cPgcdeyF5;6x=h?ls@6}Lwyeis|A;sGHkqZG#FU{W4+x4?Q=j{QW69^C-3;Ht$ib`$8ENRt6O4X|Lmr_6yYv zY;w5-yl1HRZSrR~MM?~Rx9C)SN^s$^rLRwyM@4SKfis{-aoiBkA_Wp8)dDF~4KIJH z-~AxVn~F!L|C!&EdSSTt>t={Ex;HPCxzPOCm(FL2Lz+sVN4I_E`FT^D^iI??96&<~miu)m>?oSpLEwF}R!x-=uok=4{hb)A6CJcB=%Iv%-meHW;Nv?>|U-e@o?kPd}v+pgFtv+LExH$oSmVFfN$8^(bOy9}y z?thYmrNYzWbp`w{29>4F*-*kuZ_GR~a90Z*(movc_u{0gI+U(eG2l3%urX1eS?5sP zU&y`JcqA#>-44p|h1j9_Vz(`0;J+a&dG;)PADLF|Z|{8E={z|!3TTUwC7jGu;@3Pm zMl#37$c>JC-uCi%IL%E1C)^R`{s6S!mtq`(|0Nyj7J=HJPl_!G1 zZ!DWAj0!?H)%=|iG(sZbm_J5GC$lyf4h(_toJ_NMNkH24b*+h0Cqz;zpwzRg9Cj5i zRXJHygA+b;l+LYNE@$qGb+oQD`u%QV|tLCEGVG*UtHXp zhDI_&nzMtH6vzgO?3SH43*6u#Og}gD_@%Z-I1<0CLFEHZmoR|8m2+qqjgXOahg0Bi zyAR)w6jB31Lzcpw<7>FGWVPmTaYcDws*~&{&!( z8_{$bpSO^cR7C5CL2J6MN@Ihr^23wuD2qo_F4tOadEg!BkvEz* z%bdFV9xKM0PRhhuJj-cD=NX9AytJ zYmzgBthUjyPzBC&2H>hs)9veOLQ7?ufw&BMV6mKVPKXZ0WVM`KZP&6}WV31EfB$$e z<%GsaSL8L|``crMRNcwD@YZ_vY8Wo{f{s$5aZ<{}$HFk*p*}2jvdLyx`ubYHH_mSL)oR z*<`Yri!J%g+_oom^>D&~??Unn#bOLjx02soQMm%%$a!%*KFwl5;np~tOyPHhbI(%9 zFoHMwcN4Tb3Uk-4Q=o;1$>}@sdFD4)z**?OKax1p^FFkotlB5J-G;ab!8N=fdkHBo zM%qKg(eAiMm0&omRUi~bI7QZ6^_S0F--5quu*(^bF}@q%k{W0g#`i_3-=6yai|3O!15d61 zusQDJZ<4r%ZHqd&-7|6l(nCeK9#dd*K24v4Ky*Jq><#kF>o73bEir{9+_B`#boGRn zHQ2R`$Bf-n3#egDF$zg72gG4~t+a~Iw&5RZ?V@`Vo*om$E3 zSNpfZkjJmr70h2uVI{{|3_~`e*5}$F%?Ny~`}(2z`4fg5!u^L9FyrrFj z7MTl&rP_E3D>e0x2SXrBHDxl3>RP+x-WUo6F5F%3Hl7zCH;PeFEpFUyYHlq#y?wAq z6pXl91-2eT?zXL{AWSce-wHC40|}CQtbnaBG8*IEdA|+6;R4b+#2nA{#dwGCCDxmn z^F6L=a1fQ!Y8~1TMVa%xZ*Zs^-*JniZBV{t`jG!f74{g2?k_(L))P{(%k5(21if5# z-Wtx?11SYm(7vmoO*tb~{XzPSyw0!D5{xbr^dd0*-8sdVUzE4ffn#?67V9Hi*94^H zoP+AM$TFF2Y{APpGO-POJsOj@tH5KtQad(HJhFKhW)4skIj?Oli+SLMwQ9(g@`Njg zb}|XkmXjk-b3oWmo}B+Uwnw!VqWK?gcggfZSzGLA5T4{R7o>8vW-jc6LpryGI?)33 z4Gxl2Qmz=Cx+Q|2Vi*mgGcKxKxYock|8gg~rV1PZzG|RBQIeKxB_X0!gZB^eS)5q| z!5CR?aS81blRyFU827!`v)3V-CNf6Mp%~-CKn6^&M+hkk!!du#9xs(8>+rp?713Su z1m(s;^Z5ni*64Ngt;T2k2$*}HZZg9r`9h4sYrUpt5hsgZ;%JN)?xJqy1Gib}p8(pN zr0apF^0q@1gpb{JY^b*VG-qx#Go>4$BQAT4VIm8fSB=lrTK;Ih0CmjHDOHr6oz7eL zgs_cJKC2J_r?57gf%xmd)D2onynLKP77>CZ@erfLAX?ia30Phn@CLeF0qqVi7-)P( zM+bsY4oWf~soi!wG@=Ba^}lm!I-C~2%SF5qP4;uL-yxPan-*JsUhpZ~-g$!QuK@E( zWx7|uJ86Zkf^ughe^k9dFm}7~apuwHf!Ph^^*!! ziF;Io{K7jQT;WihcjyN&iuj`~Besb0Tn>v?B-)Q*W>cbNVhlnm>*e3OoqfX!?bNN> z#`h)^|6}K2T@Gu={JrsP;%1Hc+Ve`V6<<#!_=OvvS(zsScXt|}I1HXnrPTqBO{wib zf57a8hF)DSb4Hq=VbFC`c#Y4WH-eF8A6zG6?5Y=z`8f4gVLMxIPxgk7^2t; z^}G&bV9fZ5Z%J@*g_lFna5JQ`{)fQ}3b}5%6YOBkbfIkcT7UKOe_QbiOfJK5Qurbo z3;~}T?-^r2oDOA*0)>iQ%hyCVXcBoipH)sy3n9PmvE-5ND%Il)gU_Cul4*U7+x&M zEe!YQLm~-Dy^E}c5wjCq5ttbDlgg3F8dHaE#$^6!#U151o|sCw?!sIkBvl~(@|R5bL?%fGLsq}Im~eON|4;#% znA0X+dHnkLE-vRHMw$56ft<2u+CvyP)BI6We?+wyTIX#lYwa_p62{!58eKiCJ&lv6 zVklY^@R7)KwfCkd_Ck+r@*Th!I``a6=%vhInf@YzGe;^18e|{xQ)~0-ko#CFAYMV{ zyAPski>@|GW6^Y;irCfdE!M~U^G!kbzJX#u6&nq; zjh&S|Dky#Yr1qY}KAb|*l(XV|N``O}E68v*AJ2lldJUG1tL93BK}iBRG-n=Zb09zo zu|r8A3Iy%@OV`BOyr|2(#qWvJ25TnagH4g-vYiDSw79P6F4@7`)y7%|Xe?y$sN=ZOu~`7G+MKSM3kv@hjs^Ri zU)-?$FDoPTC+C|uv4e*YO=`l~y2nvQRL<6r5oN&YV9)S8LMrKNaG!gh(IQDT@o71# z5O5n_HVgOTNIP`nQ!cB3fBa-$JC)GRq%OauN@kFXDj3i;1Z%cjasPwv4AoX#Z`C4h z8N>rs1XJv1Ek)P4#2)Tm5rZXTq?p2>CC9?B$iX-U`76pMij9wS z3&6kD3}m6sj5x9qm8cM&NDaB5sZ%{|!54T))VwH4c);|$WuZykU$SF*Vz(gM*uj;$ zz;hRS`%z{&!{2NO6e?sME-!ioRyvwACP_D5R?%$a*=f!sz?<228~j*mP=kV+iujM8 zalH-AXZ|#6Fu;KDilr1m8DCUi&1u0m`O<_!%QXZ^)@Hz`Q^EF=V8m+s@fBEGpw*2) z#=vT;SkX4s!uvAUQ0^SYmNf>?I_-;j5`Ry;HZPNI-aVD+erai7473nvjd$;&UJ8Qo z3u~iU(9qBHg9fP<*mizi{3W5u3zY|X=4z5yCRS2p{n`1s)!9-RiQMD4Y2E9w)(~YE z|HE4Y>tpCP2wpNmxp5xJ7gOkGI7^$nt~GwvOa2kK?m^}w%?$#_*uVfLLJ(NdSW)>T z1t;LXyaT*w9%=I7L+R#GP z$w0Op+{t(Q@8iUKg?@C#osC*w?knt=zpjDVb&+Lzf;@x$VD$&5`+&bDN09Fnix4~E z{9cWM`?p~`?lllG)~4kBdy(yhq*8Nx#!&XoK;)aQy3@4nVSh}s=4C1y(jvYp6#l-> zA?I7fisbQIEU(bx#l%6B!_N1WlRRVSJ?e~l(Kd+d5!s1- z)3O~=(LdK5;=e^WMFGo_#^sH6mERH?Du5YDXumktQdbmA0>T!=q0CX5Fc9xm z-dqV@HOD0AY)nNH0HYcV=f230cn415!i|Dp7IHzW=PXp}Z^+4v6bT-if3e&5CQ(p8 zlS8ZLysz|BSNhYkt%NrRUL0tmO_%r%uaH{^i)K0QPbMrM1R++J&=AteHIQR{EYJ`J zjT0dzd-$;)lx}4KFs4DFK@9iWBVcFmE)7s3Dfaz$pi=m7HHla`d_`sM(kNtiA#T{P zpqE%21h4R8>aJ2np=_RW82f;;QO zV`TJac#y%XV3(9(Haiky3Ok_qoz3}0kJ5o%j7`b8uV<*G7*4A7Z_(#N32tre$y#?= z&a%qu^2iU~$jjql2|Y&eMemL4au8T|E~cN@upvCreV7v~f7*S{r)vC6CSd z^R!R~ML8U#NAm|!4l8~Ygf`+ii@)NY6hXX(-S8%=HICvTUh z3m%2%6wq3*)COU-q~D5U$dFRW{h(hlYz zBpH;bm4}Rza4v|Q{ozm&{5r^uSg!#hM+1~C&ikF~pvu}W7|I1i)UHtk zjHR>O{fZbvZWJ=H5+f;(n}TvWC+bcGXZ`4`4`pDxGg*)beAXtZwB$m)Cf3uY3(`T(^WIWhLN}6Uv_^)2?j|{2FPv^eU_TGq>Ta+xgiCT*R_sDO{V$!L6wZ>jO zAw0=O5)Tm1k+s7G5?4`!S0!PQGwddt3YQ4ES9!}B{#z5qcFVn;D7@;~-~S&AD3ltP zhClWjE8q@0%c|)7DI2?%_c}GfNQ20{@7YqNTw>zni>%8+VGM0Ku4XAztB})qyF71! zWgD&RS$5!`#@XmQQGlril$tw?1r$R^_5g>-ags8?4I^0ABSG~N664J=8ajA&4UGqn zkyYozkPO1a6h0M%2{V)muaFERlRjooXK?owmQ1BQgt&+4&PHh2! zHddEHP7(ucLK*h!KG^e2Pq%7V$_Q!6oL%2^JL={n$7Dxy5byCLUNCCbu{3B^Q%q7{nfsI&$qoz)y=t#~9y*G3A*Z{fP03*zM8vq1C|Lp=8#l+M8cs5A7 zQC1ksLxlaW@v`Xv$ujIW2-hYY+gvc2Rm`oQdS&4xVQuX#9eE=-*B5v8;PMae6k+89|_(*HQ6@XXWe0@eNiP{^0`TNW*{4gnQJ6?h=0UKo0e zsn&S!_}w~3o7aS#?zyGq1Ad6UI~_OV0po;SrCRX^gM$ZTJ+-+UxJ7qo5DJdmHb zvW1d5J=FE%Ov$Yo6-5PeAWWY1AfF$k89vc^<_Tkdg15^QS zT4^@PMFxT~_PB&}O20L#_H+z$XAK*vKd}&P)V;4d0@t0b)O3usOC9Et7=#(0kOZw;*28G4c8*$W(%)&b3XT2~LZh^S;}iHQ0!-Z@l*ld=%>l!7 zXP)WY!U{+p2!MTT;4T!nGGwAK#Ae_)l*##h&%D~_njf#0PIe3hh=)DXZ`@bJ(58h+ zDL4s#&W^*0wWsCw=i7mHJVq$XoVB|$_6$gcJ4@P>(^r^r_vFM;6Oil3dZ$@7&#zY~ z!UX9ws5B=?K4Tb{Ba>Sf4{_difMO7G zU7i}Z0*|P^0|N9vYWOe1WPuL&p?H%Qol7P5C)xkd_BoYX7H8D{e@-;hIwWGU$q0PoyS)!V5n4V$Oy zY3J5w09JV`&l{R!=couFAi|S^yx$6Y-!qT0+qRTP_x{AEWmo$*PYeBBc)>}e3^yye z-)rSxl|FKf<*$ouSDj#J5<}DcmwL_gPSf)*lsGtc-e4qKc0`>CaHd{-i+Jk|DFLv} z^C`YU*TR{YL*6cA&75AEtmhbxIpM?jvT18KAD_w$N($jQUH&feifbh&1!1FQJFQid zWtE!j&xdzuCYH03Url_t zTXyckyMia#HH3Ji2LEi&pE(dUztm3y>lmuZRG+ylN{(v2=x<3U1LL+0=s$w)1SVs} zu)A8`pkW07vr9?A{F^o}_j2BN>2MqaUKk|{KPRJ?zsLi|O{`fSq~N@}!2Y{S&k`B6 zojhOLhL?Pz?)cWG<@NVvN?tmO?X9JAk7PnGxMhSw(*}h=VRYYN-V?qNr13N0!?OTa zFAn?^Ed`+8Fm+Ur3T>Yl|2Pysdy^_)15Wt;=VAkM!RD?}#Cmb*R)nbPPxUDw^sG?M znSiDQOhyJxD-6OJ1z(GXBCte5$ldCkU$7#Yw2ys>gOjs(3Vb{sbp4G?OzpCg~C;IL`osu3`Ua-ii!6d2wI{daDrr=gCeKF7_Po+bP5Fi%^ z>J@<1q4&s?ug_02B5^y=KH2H<(r7eYv-h6l#6X2r)}#&;r#W@?NTwPQLDr(+HvzQ( z`DQ9x%tYad@C|ARs#4b-sj`Dw(~=bfEY6u+w+ZOJz@F{txyw9#l4Z3z?p(-M`p~cu zDMk%woHCK>DsP~|IfkK!3Ww_89A@ZR&Y<3Z#QWrqf!06w|6|06*&dQG|BfF(8_fj^ z>T|9|6EzBYZ$w=Hca{W~Px%2`kTZ}OvBp7-u}N5i3RUYg8%FK^dX3~}`vHlXGd~oc zE@0Da-~Y359^|_~4B84^zApVRM}6ln)xK^lA{vt_kNci}RF2!Zh&nJg6!JGzZDMIUiYoYmY*nR@Y|+LhW%40=e>iEAS`I^90`NS z@!0#LUNm+6;;8;{Rzc!bBZF{+Eu$UYjI6ncc>jWe&d*Pf>xVj77^T^eK}u#H}=Z-dtqus_eBzS8X=V z8uR@AyS#TLiOKBAHd$qj5qJ`2ox{}zOl_T{@E>2+bV+SqqBxGC95Wt1YpE9Cw)KDe z3B*zRvBP(3s~)a`(Ep<8%xqP^G-{<2@<@nSOtiec-RqrDz$fBNh8gq}wJ!=>2nX@V zJ<)Fz&*<$%pq?57m5|^D#;uXRWtw^Mvg)VlebWq8M>pV)BhEO)s)Nt3F#Hqh_+xnh z2*rPUlC(^vLI#Xt!;FerTOO??scuz~uPmCPV8E-AzqQ_gTp>=@_>WoHpfU0wd? zp!NP`bL6LU)sv!vJ`&xoFZV2yM$(-&QH0j$s~FGpfAhtgo?*fEo+@W~<(#MS zn{FgZezE#zhLLtQBc=z66HI6kc=cOy#LHuB$^qO4KV0(;6|nS&gpr0?YkQ@umX?m^ zx<@S%Z%q~6EbUwpZQP^$cMAFVg?CpZo^dwsl8kZZ;EEI|8Sr)$Yb6cV{i)3&&jRuB&(CtQz_nTXw!mbk>!70`@ZZC ziYKf;c0RJ>jI9J%?*3b4N4V?v-P5zfEL^Vp8YQxNJp3u|htsCg?a4CdMvZy3fXm~E zT5s`xN`2>a?kD3==)n6ZrYe{`;@E z1eF3L=-B1Km;0px?(ZqlszUiVS^bHp`3l!w&@>B%EObBx8yC#=06%U+O6S&l41-6H zRvB{^9@iJHb;~|JXR2<$K5|CIeCyN2c3Ov zLYep`6J6=_^&uxTkAmRLao95RYNe44m|#Ugy8N^8K$rXF|AM8A8=rtxJI%0&S16;D z24Y`E`ZeZ~6h+K}F_a9lJ|O4o_x%M?+>enaV3H*EJGe2Zv^25IG?OkBn6vqZc#^C8 zlhWDvBbV&!&sS(0HSyxoY3sEK9EI0(KwTiDlvB^_v)4?e?$vqF{C4EyGEE88q@*nv zl{9~^zV)WkQBBu1O3mLSpC<+F{+SC@J;xQSEFou1!Kp$;D?d%<0P`%@+Tjuq72Qa(XM@ zZRQ)eIyFYg;KE4FMU+Wr5i~UAr$TwyS_hRxUfm)RSW#9KU;RN>fE$?1Yx9;LKj~Vb zt|jxUjVXJW|E@80>V{ZSb*Oe>_V{G?3S0`hZ|gUfGtdV7qgI*DLMJj+_p_R>i9TCR zQ!#G$?Cu@F5bVVvRDIt)yd^93kh!>Y>+$pz2xjU(bvHHg>djfv(tBWeLoVp< zR{#jmHyKT8mp{#`>8x&akfjSlPyILR_Te}87M-KGREzr5gGRtIKL)0 zKXS%?lz?d5+t{PIk48Uw8Im-*RFv)oZ+TjFn2WyuqDx|Av4~YhWA%z4*Vn#LrB0{U zmWqO0{oQLlsQ-Drs9b{N6)dA6nE}JnOs}&7)6-Sfz@5 z(f@F^NU1=|)M4Y7<~s*ztx+arbXNoQ4+UEE-|c^$4f8|m#0HNxbPtia4raMtw|Uon z&dSeO`y=b#0sPw7*$gFv%0FigeE-bQsKsl>#5R9lG%$3r>~MkVgp#I;<8olM2aw_) z`1woQaoysJ-LF-vLPS9hG=YR(@)Mt{cm<)?bwo zU`_9T02lgr-DY(tROb~^y+9tCMFFxR&|o?trwcWGVt^GCr$&Oko!~+**VX#$oSQ2A3I5oUkA;Pk!9LW zbeBRhzGsjZAjzKHfB#3-ffdc`3{DT@?AqIQUAJ3UjuVTMI0tWQTIh&5QA;MqOTYTl z{%O)Ev$>E%zkOJm?W>f&M6w?ABn>!2u+b>o)_KYA04i{uS`V3yj^y0)r6J9~XhaDv`?#>|pNhgZkw}Cnb=k{7dkY!UE4mrqw{D9wh zQkKVzK92^2DVT{Rozpyk_4nHv+oG>02qQxUl<(DO(^e6ELG&+1 ziAw9=GAViY>6FP3&=r-IPi7)d0VWlRVYEJ-Q#+iJ##_jk>TlSEtznQh>OzonwZ+=2 zuMaS=6JcuA?fJ1OOVGX^sMmWB>xo{ixOczZj>(B&W6XNBvWlG*Cf%CO>0y>#Yv$E; z)0&blD9`vbGMAOasvkMX{jfPQsNtT-(aGj}MUv{BlfWgVi9yKlwxM5NtlAc@Zzu*H z_mAr5A?i#tSr^(oqzMTz5U34vAgS!ruFJCHI=8m=iCna4 z7E9XLP74SV?k@jlRM<)0k==gS0aYF7(^uBe-kA5M10O9olPP>(h?uu=!XzwIr>yUx zB@(m*h%^4}MFL^hzUB!RusWi7>XvEZR|UV*`s-lHOPN-`i)#?~nAwSs0nZ0099ox< zC~~t+_Kr1D2FuP|OuJLH`>YiBO53oV;60$ z7Xk50^CsNE8ew-sKcDHmUPY=TKRD3<48YC>^OQ7%r@|tj7BwBnK2;_Kkk**=;C$S$ zbf*Xcs@Lg+3D!V0uuNnS9)Fkbe=*{^=}E|t(nKY&`chj=F4k(sOdPX@`GZ^Q%7RMT zlCTw6BFJ#Cedn_iT2HaB+);On=E{MFXd%(tB?e4#jUZ#~zJZ@PckgGeK=$PZptd_l zaFptTX+&^A!6iiXeL@RPAIqP4FZ=}Z6XLHb2?6}7+mEIsj^9fZOp1>@{gaa0P1_;0 z;=J`LcMn#QG0#LOq9M7Jf&}$Vk@Z0ae=2bT0sLD?HGa7XK9LlZjU3_0`!`TlTN17w zYlVIRDCj+yle@OfXQW@hJN_-nj-tT8FrsjQ2_TMu$>^a&*k{IzlnU;erwY#3o6kbM zavwnkzcfDgvGL|MjkQ{!H39GJ7|Y8cef(@mLeFehBMgA-lF!bAZD%GNPA9ChE8`1Q zl(*I)8AAC+K1CGB=wB#waj6k9@YbO_-Xo|v%!XmGSC?0gYnl~*MzhnC-3se_S}e8( zR+m#RX3KU8_%?NYKeP2|_Y!-N$|>(-46;2PvV}+~k6~UO1SmXIJe= zyr-Y!1>@~m>%SU2Y|Y>?B3CdB1jo;-iE6$21^2<(6b98sW})iMO*f(~^LuL4lE{Z~ zz_y!y+h*M}kE8+Q4p)6&72JCLf#mY`G5Wi_!#en@!Q>SMyR5+|nO|cgN0)4m56B4^ z-@zU<@P4!E3Bw?x(KWgDj^y*YiHNmpOcQ@oCUV&DObR`gm*0+I>38zp#RGCLHVFrU z8gD+_%#DyPdW8JcpygclK_%1sGRtGV=Wy+jNe+>N?hIRzP8(UL zM#ZL&Wf~nUhH z+XPw$gVcu+fz<^irw?i0j-hfHn)5F6$m!QHWI0kyGrg7XjUcy(U4!r0Io;WK80 z6^v%KWcb>s2Oebo9&Za>)%?IVqtL|;WRvoIU#STgnhH#3RDCgt7vQ_f+p3)+WW7+G z#ar|EUEk9U%bEPL(=GGoy0jD>YWuUNc-VTvDwC<7Gp1!gjbznAvXA8QGD=Dsn-b|Dl)a(PPvG%QANyz*Kou@25C8YLxd9{cvkYBX)H6pCzXc>vrBQF_XTD(@?pfd@df0{D11Jmsj#u?3 z<@Y2s+dSJ20;gY<=3(?QCuR#OxDj%udw;r1zZo@sEKMD}d*|

9=E2N(F+{!G32V zZ)xR=Ca?JKu>Iy=t>(%1I=-A-R6U_EVA6!#k|OH(n4cKfQigpR_5V?ht(*D?uDkuJ z^(GDe?!%PJKCQa{J5OPZ z>y52l1&*0QBe2nA9hMKlCg=a3K(-k=${I|6Ky;I>FHZxI>=eg>k6jI!)55_Y9+*UY zWLA_*vB1hiL$Wh2vvFTlRrL!G&q#|JxYs6fF$X=GSowsxtK6(LY>VWa7|rfvL&%)% z-fvW~DqbsGD{F`6{v%0c1NAc%a^j}iQI_Cui#7&5dfI?R^;NQq*%mG@*MJ~W;_;Ad zH<|RA`884y-&rsm%k~`7Y$q<&Mn7Y!!N8ppUASg`1|^t3qwdGr@HFSx-D-~3gXq#q zG#4AAp3o~bul)E&g(gR_Ib7_~FzKdDv#@y`rs>sr(4{S_XfANRhxga}1tmxEc-rec zgmQ>@&kY~_RB*n%9#$qc>49o0ZR#>fo|KRln-YqBp=1%La8xMb*MFrx|O zbzy=@ihYWoPlQj-AMt)<=Gmdh@}+evHSMlzk5|}!h+kf2W{XIRV2iYpX}+ZGXo9*& z;$`*ISQpu%!LhM45Ljg~^j&@_5hH$&%oz4X9s?QyJ literal 0 HcmV?d00001 diff --git a/locales/en.json b/locales/en.json index 0cf98cd..8d07c30 100644 --- a/locales/en.json +++ b/locales/en.json @@ -346,9 +346,7 @@ "license": "License", "debug": "Debug", "team": "Team", - "author": "Author and maintainer", "authorMail": "Send an email", - "additionalDev": "Developer", "technologies": "Technologies", "reactNative": "Made with React Native", "libs": "Libraries used", diff --git a/locales/fr.json b/locales/fr.json index 12369dc..2623aa7 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -345,9 +345,7 @@ "license": "Licence", "debug": "Debug", "team": "Équipe", - "author": "Auteur et mainteneur", "authorMail": "Envoyer un mail", - "additionalDev": "Dévelopeur", "technologies": "Technologies", "reactNative": "Créé avec React Native", "libs": "Librairies utilisées", diff --git a/src/screens/About/AboutScreen.js b/src/screens/About/AboutScreen.js index 9ea57de..2d5c80f 100644 --- a/src/screens/About/AboutScreen.js +++ b/src/screens/About/AboutScreen.js @@ -1,19 +1,20 @@ // @flow import * as React from 'react'; -import {FlatList, Linking, Platform, Image, View, ScrollView} from 'react-native'; +import {FlatList, Linking, Platform, Image, View} from 'react-native'; import i18n from 'i18n-js'; -import {Avatar, Card, List, Text, Title, withTheme} from 'react-native-paper'; +import {Avatar, Card, List, withTheme} from 'react-native-paper'; import {StackNavigationProp} from '@react-navigation/stack'; import {Modalize} from "react-native-modalize"; import packageJson from '../../../package.json'; import CollapsibleFlatList from '../../components/Collapsible/CollapsibleFlatList'; -import APP_LOGO from '../../../assets/android.icon.png'; +import APP_LOGO from '../../../assets/android.icon.round.png'; import type { CardTitleIconPropsType, ListIconPropsType, } from '../../constants/PaperStyles'; -import CustomModal from "../../components/Overrides/CustomModal"; +import OptionsDialog from "../../components/Dialogs/OptionsDialog"; +import type {OptionsDialogButtonType} from "../../components/Dialogs/OptionsDialog"; type ListItemType = { onPressCallback: () => void, @@ -22,6 +23,14 @@ type ListItemType = { showChevron: boolean, }; +type AthorsItemType = { + name: string, + message: string, + btnTrool: OptionsDialogButtonType, + btnLinkedin: OptionsDialogButtonType, + btnMail: OptionsDialogButtonType, +}; + const links = { appstore: 'https://apps.apple.com/us/app/campus-amicale-insat/id1477722148', playstore: @@ -32,13 +41,13 @@ const links = { 'https://git.etud.insa-toulouse.fr/vergnet/application-amicale/src/branch/master/Changelog.md', license: 'https://git.etud.insa-toulouse.fr/vergnet/application-amicale/src/branch/master/LICENSE', - authorMail: + arnaudMail: 'mailto:vergnet@etud.insa-toulouse.fr?' + 'subject=' + 'Application Amicale INSA Toulouse' + '&body=' + 'Coucou !\n\n', - authorLinkedin: 'https://www.linkedin.com/in/arnaud-vergnet-434ba5179/', + arnaudLinkedin: 'https://www.linkedin.com/in/arnaud-vergnet-434ba5179/', yohanMail: 'mailto:ysimard@etud.insa-toulouse.fr?' + 'subject=' + @@ -68,6 +77,99 @@ function openWebLink(link: string) { class AboutScreen extends React.Component { modalRef: Modalize | null; + /** + * Data team + */ + teamUsers = { + arnaud: { + name: 'Arnaud VERGNET', + message: 'C vrément tro 1 bg !!', + icon: 'account-circle', + btnTrool: { + title: 'SWAG', + onPress: () => { + openWebLink(links.meme); + }, + }, + btnLinkedin: { + title: 'Linkedin', + onPress: () => { + openWebLink(links.arnaudMail); + }, + }, + btnMail: { + title: i18n.t('screens.about.authorMail'), + onPress: () => { + openWebLink(links.arnaudLinkedin); + }, + }, + }, + yohan: { + name: 'Yohan Simard', + message: 'Correction de quelques bugs', + icon: 'account-circle', + btnTrool: null, + btnLinkedin: { + title: 'Linkedin', + onPress: () => { + openWebLink(links.yohanLinkedin); + }, + }, + btnMail: { + title: i18n.t('screens.about.authorMail'), + onPress: () => { + openWebLink(links.yohanMail); + }, + }, + }, + }; + + /** + * Data thanks + */ + thanksUsers = { + beranger: { + name: 'Béranger Quintana Y Arciosana', + message: 'Étudiant en AE (2020) et Président de l’Amicale au moment de la création et du lancement du projet. L’application, c’était son idée. Il a beaucoup aidé pour trouver des bugs, de nouvelles fonctionnalités et faire de la com.', + icon: 'account-circle', + btnTrool: null, + btnLinkedin: null, + btnMail: null, + }, + celine: { + name: 'Céline Tassin', + message: 'Étudiante en GPE (2020). Sans elle, tout serait moins mignon. Elle a aidé pour écrire le texte, faire de la com, et aussi à créer la mascotte 🦊.', + icon: 'account-circle', + btnTrool: null, + btnLinkedin: null, + btnMail: null, + }, + damien: { + name: 'Damien Molina', + message: 'Étudiant en IR (2020) et créateur de la dernière version du site de l’Amicale. Grâce à son aide, intégrer les services de l’Amicale à l’application a été très simple.', + icon: 'account-circle', + btnTrool: null, + btnLinkedin: null, + btnMail: null, + }, + titouan: { + name: 'Titouan Labourdette', + message: 'Étudiant en AE (2020) et Président de l’Amicale au moment de la création et du lancement du projet. L’application, c’était son idée. Il a beaucoup aidé pour trouver des bugs, de nouvelles fonctionnalités et faire de la com.', + icon: 'account-circle', + btnTrool: null, + btnLinkedin: null, + btnMail: null, + }, + theo: { + name: 'Théo Tami', + message: 'Étudiant en IR (2020). Il a beaucoup aidé pour trouver des bugs et proposer des nouvelles fonctionnalités.', + icon: 'account-circle', + btnTrool: null, + btnLinkedin: null, + btnMail: null, + }, + }; + /** * Data to be displayed in the app card */ @@ -118,65 +220,25 @@ class AboutScreen extends React.Component { }, ]; - /** - * Data to be displayed in the author card - */ - authorData = [ - { - onPressCallback: () => { - openWebLink(links.meme); - }, - icon: 'account-circle', - text: 'Arnaud VERGNET', - showChevron: false, - }, - { - onPressCallback: () => { - openWebLink(links.authorMail); - }, - icon: 'email', - text: i18n.t('screens.about.authorMail'), - showChevron: true, - }, - { - onPressCallback: () => { - openWebLink(links.authorLinkedin); - }, - icon: 'linkedin', - text: 'Linkedin', - showChevron: true, - }, - ]; - /** * Data to be displayed in the additional developer card */ - additionalDevData = [ + teamData = [ { onPressCallback: () => { - this.onListItemPress( - 'Yohan Simard', - 'Correction de quelques bugs'); + this.onListItemPress(this.teamUsers.arnaud); }, - icon: 'account', - text: 'Yohan SIMARD', + icon: this.teamUsers.arnaud.icon, + text: this.teamUsers.arnaud.name, showChevron: false, }, { onPressCallback: () => { - openWebLink(links.yohanMail); + this.onListItemPress(this.teamUsers.yohan); }, - icon: 'email', - text: i18n.t('screens.about.authorMail'), - showChevron: true, - }, - { - onPressCallback: () => { - openWebLink(links.yohanLinkedin); - }, - icon: 'linkedin', - text: 'Linkedin', - showChevron: true, + icon: this.teamUsers.yohan.icon, + text: this.teamUsers.yohan.name, + showChevron: false, }, ]; @@ -186,52 +248,42 @@ class AboutScreen extends React.Component { thanksData = [ { onPressCallback: () => { - this.onListItemPress( - 'Béranger Quintana Y Arciosana', - 'Étudiant en AE (2020) et Président de l’Amicale au moment de la création et du lancement du projet. L’application, c’était son idée. Il a beaucoup aidé pour trouver des bugs, de nouvelles fonctionnalités et faire de la com.'); + this.onListItemPress(this.thanksUsers.beranger); }, - icon: 'account-circle', - text: 'Béranger Quintana Y Arciosana', + icon: this.thanksUsers.beranger.icon, + text: this.thanksUsers.beranger.name, showChevron: false, }, { onPressCallback: () => { - this.onListItemPress( - 'Céline Tassin', - 'Étudiante en GPE (2020). Sans elle, tout serait moins mignon. Elle a aidé pour écrire le texte, faire de la com, et aussi à créer la mascotte 🦊.'); + this.onListItemPress(this.thanksUsers.celine); }, - icon: 'account-circle', - text: 'Céline Tassin', + icon: this.thanksUsers.celine.icon, + text: this.thanksUsers.celine.name, showChevron: false, }, { onPressCallback: () => { - this.onListItemPress( - 'Damien Molina', - 'Étudiant en IR (2020) et créateur de la dernière version du site de l’Amicale. Grâce à son aide, intégrer les services de l’Amicale à l’application a été très simple.'); + this.onListItemPress(this.thanksUsers.damien); }, - icon: 'account-circle', - text: 'Damien Molina', + icon: this.thanksUsers.damien.icon, + text: this.thanksUsers.damien.name, showChevron: false, }, { onPressCallback: () => { - this.onListItemPress( - 'Titouan Labourdette', - 'Étudiant en AE (2020) et Président de l’Amicale au moment de la création et du lancement du projet. L’application, c’était son idée. Il a beaucoup aidé pour trouver des bugs, de nouvelles fonctionnalités et faire de la com.'); + this.onListItemPress(this.thanksUsers.titouan); }, - icon: 'account-circle', - text: 'Titouan Labourdette', + icon: this.thanksUsers.titouan.icon, + text: this.thanksUsers.titouan.name, showChevron: false, }, { onPressCallback: () => { - this.onListItemPress( - 'Titouan Labourdette', - 'Étudiant en IR (2020). Il a beaucoup aidé pour trouver des bugs et proposer des nouvelles fonctionnalités.'); + this.onListItemPress(this.thanksUsers.theo); }, - icon: 'account-circle', - text: 'Titouan Labourdette', + icon: this.thanksUsers.theo.icon, + text: this.thanksUsers.theo.name, showChevron: false, }, ]; @@ -277,10 +329,16 @@ class AboutScreen extends React.Component { }, ]; - constructor() { - super(); + constructor(props: PropsType) { + super(props); this.state = { - modalCurrentDisplayItem: null, + dialogVisible: false, + dialogTitle: '', + dialogMessage: '', + dialogButtons: [], + onDialogDismiss: () => { + this.setState({dialogVisible: false}); + }, }; } @@ -288,16 +346,32 @@ class AboutScreen extends React.Component { * Callback used when clicking an article in the list. * It opens the modal to show detailed information about the article * - * @param title TODO - * @param message TODO + * @param user TODO */ - onListItemPress(title: string, message : string) { - this.setState({ - modalCurrentDisplayItem: AboutScreen.getModalItemContent(title, message), - }); - if (this.modalRef) { - this.modalRef.open(); + onListItemPress(user: AthorsItemType) { + const dialogBtn: Array = [ + { + title: 'OK', + onPress: () => { + this.onDialogDismiss(); + }, + } + ]; + if(user.btnMail != null) { + dialogBtn.push(user.btnMail); } + if(user.btnLinkedin != null) { + dialogBtn.push(user.btnLinkedin); + } + if(user.btnTrool != null) { + dialogBtn.push(user.btnTrool); + } + this.setState({ + dialogVisible: true, + dialogTitle: user.name, + dialogMessage: user.message, + dialogButtons: dialogBtn, + }); } /** @@ -345,18 +419,9 @@ class AboutScreen extends React.Component { )} /> - {i18n.t('screens.about.author')} - {i18n.t('screens.about.additionalDev')} - @@ -378,12 +443,13 @@ class AboutScreen extends React.Component { )} /> - + + + ); } @@ -395,42 +461,24 @@ class AboutScreen extends React.Component { */ getTechnoCard(): React.Node { return ( - - - {i18n.t('screens.about.technologies')} - + ( + + )} /> - - + + + + ); } - /** - * Gets the modal content depending on the given article TODO - * - * @param title TODO - * @param message TODO - * @return {*} - */ - static getModalItemContent(title: string, message : string): React.Node { - return ( - - {title} - - {message} - - - ); - } - - /** * Gets a chevron icon * @@ -512,15 +560,6 @@ class AboutScreen extends React.Component { */ keyExtractor = (item: ListItemType): string => item.icon; - /** - * Callback used when receiving the modal ref - * - * @param ref - */ - onModalRef = (ref: Modalize) => { - this.modalRef = ref; - }; - render(): React.Node { const {state} = this; return ( @@ -533,9 +572,13 @@ class AboutScreen extends React.Component { data={this.dataOrder} renderItem={this.getMainCard} /> - - {state.modalCurrentDisplayItem} - + ); }