From b51a8b30d5dad061644f403eff725bdf96123a55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CZuzana?= <“zuzana@getyourguide.com”> Date: Sun, 28 May 2023 17:44:42 +0200 Subject: [PATCH 01/26] Iteration 1 --- src/App.css | 25 ++++++++++++++++++--- src/App.js | 46 ++++++++++++++++++++++++--------------- src/components/IdCard.jsx | 18 +++++++++++++++ 3 files changed, 69 insertions(+), 20 deletions(-) create mode 100644 src/components/IdCard.jsx diff --git a/src/App.css b/src/App.css index 74b5e0534..ddde8d0ce 100644 --- a/src/App.css +++ b/src/App.css @@ -18,10 +18,10 @@ min-height: 100vh; display: flex; flex-direction: column; - align-items: center; - justify-content: center; + /* align-items: center; */ + /* justify-content: center; */ font-size: calc(10px + 2vmin); - color: white; + color: black; } .App-link { @@ -36,3 +36,22 @@ transform: rotate(360deg); } } + + +.cardDiv{ + display: flex; + flex-direction: row; + padding: 20px; + border: 1px solid black; + width: 400px; + margin: 20px; +} + +.cardImage{ + padding: 20px; +} + +.cardTextDiv{ + text-align: left; + padding: 5px; +} \ No newline at end of file diff --git a/src/App.js b/src/App.js index 378457572..48ed870ca 100644 --- a/src/App.js +++ b/src/App.js @@ -1,24 +1,36 @@ -import logo from './logo.svg'; import './App.css'; +import IdCard from './components/IdCard'; function App() { + const cardArray = [ { + // id: 1, + lastName: "Delores", + firstName:'Obrien', + gender: 'female', + height: 172, + birth: Date("1988-05-11"), + picture: "https://randomuser.me/api/portraits/women/44.jpg"} + +, { + // id: 2, + lastName: "Doe", + firstName:'John', + gender: 'male', + height: 178, + birth: Date("1992-07-14"), + picture: "https://randomuser.me/api/portraits/men/44.jpg" +} ]; + return ( -
- Edit src/App.js and save to reload.
-
Name: {eachCard.firstName}
+Last name: {eachCard.lastName}
+Gender: {eachCard.gender}
+Height: {eachCard.height}
+Birth: {eachCard.birth}
+{greeting}, {children}
+Name: {eachCard.firstName}
From c7a49013bf154edc5a17c25ebe334331f87a2314 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CZuzana?= <“zuzana@getyourguide.com”> Date: Sun, 28 May 2023 20:16:01 +0200 Subject: [PATCH 03/26] Iteration 3 --- src/App.js | 23 ++++++++++++++--------- src/components/Random.jsx | 12 ++++++++++++ 2 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 src/components/Random.jsx diff --git a/src/App.js b/src/App.js index 4b1f34493..2ca42133b 100644 --- a/src/App.js +++ b/src/App.js @@ -1,6 +1,7 @@ import './App.css'; import IdCard from './components/IdCard'; import Greetings from './components/Greetings'; +import Random from './components/Random'; function App() { const cardArray = [ { @@ -22,18 +23,22 @@ function App() { picture: "https://randomuser.me/api/portraits/men/44.jpg" } ]; - // const lang = ["de", "en", "es", "fr"]; - // const children = [{en: "Hello"},{de: "Hallo"},{es: "Hola"},{fr: "Bonjour"}]; - + return (Random value between {props.min} and {props.max} is {result}
+ncH$tx~zi&jF#H&2ONX+7YO==wFwCcs~;n0@;{^XS8{BJko9>f9-pu^ zC=dO<8nlOTr61RgC+Dz#P*3Vof-Ym<=Lr`_K5;>+piS0)`8EXf2P|@z&{NcSB+oDv ztFvlFh?ymkeyrlZW9P0>9gXYv!+G>73&n#`)+vPJI6{nEDxoxe)p%J5gPwAGqK~XE zDVQF`9Xv`U^f!KCX_HW+R$>~vzwJ6X-ICQWN)-#dRhYv5-9#2ysfH~L>6Q-czb=c# zAUzGA1S7Y_7HY!yrcT*4?uv@?GZ8kEf9h%? zoI*HTAG|p8FWPL{0Cms3`;pkzb)=?+3F402?oLu#9i_eA$?OL7$+($Fj;6>xb!BUg z+Hw!HkPLLy3v^w^cecQjOspRJAU%!AKj0$8Vj`=fd+&X y&xOgPFp0L+ zbBmJm26HFqzrz|5jGo*?MI{sN12Z(j6$q)y6RCtqB-I|pGvYggH(qZ}CCrtGrO3b( zs7K2rt7K>W0*SG 65?Zsc&W}1tmPjU3{49PPM;8u`gT 2BsBj?o;{BKuECZgr!`|E34sBxw%3`Rr5xUoXjTQU2W2n6#Ir z`l~58WWI$b)kV#Kb8cP|Vsf9vuFfcB?|p%1n+*s4W0IXn_(2&b)_L0*B@=8E16@pJ zZleOWD}Q?dzsi4r)ji$1+c?^{sUtj96c}PCoZU#@8HWqxbuhoXgbjA SDzNSYqnA)|z7QPC| z{Wb#^X_LVr5|I*PXbFjhVV|Ajww;=0|CJO4>KoFoU=c=HX$Prfyh!GWBjuA9Af^sP zqHcqZ&%`N3s)X1UQW1lzcX^fljHP5*Yyl${sVuSZ2+v7#)+g27m2PwM-E&e4h>ML4 z(RR};93_vS)g`en99`?;Xj&$88AUIWZ=;t$@XVui$ X-*M&Xd;qu9#? zk~B6WiL8vVqC0PHQ`evDUB2vb5_+~M)LZI@@y#AbF8R1E%cIm4ow>{RFnZ(!u?0g# zs`4Y8keBS0acELLc;1Nz$%fNimUkmlkTv=*KM!b+natc_i&QrD7$=XCR|9Y{tgdNH zq63*zRW461Miz1p1!|jQXAzK(FUksD#LmLE%Jj8qLH9g^Yjq=%FYmnRDJ_niSt>;1 zJ}DaOS6;tZ{J0QxU~_4~%T4H@bL0{G%>7rQ1N^L7IfnxlE2Dhno@& ZuXB5&7Qa{NX8`uiZ zHS`KKI|qiu{vpvcAYH zF`%^x9b)NMe%jhs07EeROfXE^m=CutZKS-=jaVpv4oTze&k+Ut^NkG}?6L?wsJ(|- z*UBB8Q4C QrM@P=VQXFrHGTC3jH>cXsrBET3s6sKmWDbRe z_`H_)1sknKjz7z!Prdq_OY83Vx}?+_cE2RDOi$7-eVNy1;9V{<)ZtPf)%xp9-NN#{ z_!t%oX^x1tn~n0R8hMVt7sR$!j>{jif1PPaHWv$g)Hh9^eA`iYgXxogXkQk#UOv)g z uJZ4~&ZOqssFV&^@EIR}$@bxqa#8mXHk;fpFOlC;B&=;*V& znlUh;HRaI;bsNfNGpFLCSzZnQnXUKe+4Z3JxJ%mEm}DnAnq0g*5`?5Rj2zrAli%xF zDQj8C(T&*1hYn>{bxdsVDN-i$!VFPSx-4cT6nJ SW%nsZgcgcmAu~IT`_FuYu!0IfqDt>X>_1k(uDC6G zt@l1_J;5$rQg3eU? oP#jB$|W=htP(UQ&whbM2~C1j*gb6`^G!& z9dYaSNeX%7ah%)QBH*V6(soLJ{Z#7W+$C~E=VJzB^Eb0iNuGrwQpe_)f)3dAi3k3~ zEieA?cA@oT_TnGHjfd>lRM147QNqVywv)rhVW*L;1qV)Yb$@OY&~|@N<}!8X)T5SL z$>o32wp{2Ak{EZB72dD0A@+Zo#PX*Vt^{rKbSsN!NOD`;I|<#7yNW6ia2KaL7`BLE zdG{#nDdT_OWkp!8)m~b_Yi82ywBfM%NctzYZbhWOE{nxKRbqjmCgJV}%go`HdLMP| zw@jgkyChxza5Ds@1{Gq6@;eSoxo1dwpEsS@OKXo8)D$~bx8ySaYE8ho=gXMH)+9Vz z@|ZpAbY{9a=TQB9{O4McqwK}D91-OlLfzY3*j;5YN)0?A_0YiUVI;M=(S=p`Y2#Ik zPyJ0Hd(jw_m$BsRJICf55p2?E0{s)_VDZbwHa*$$S^3@t=)a3kt`3`Xl4hpX? zJv89WOL&9~b3YqtZoJfH8CX8~eau=#$!BrbJSE-BkjxnkaqaI|b#pZvg;KsQts%~F zTZlD#9cxRh?GGH^E$9uo84Y8-jE+woG2fCW_cT74>icQ`S!KUlqfuX0R<~&OSnxiq z!>JS=jvARwuUl-(_yX%NgdKe~@_rQ~!xy4sSgK!XbFM8>08T+*M(k$NnY}JnY`*?+ z*S&i>ZWvdLA>)fED7a7&be-n7zm&Jpb7Dogxj=m%zd?@pkqaHVzIdwuaY=GaEYK5m zI2!si!0y&vwj=j6ZK0j>`|n+IVI|E*&&3r}G8HK-b CK ~S0U z7W4uX6aDX3Y0IbsS5z00#oiM0v8Z)aKkU9LJ9kW^u|FfZcWG}>6&KV{9*KwADv9}o z@A |3L5T%XHtM4``I@r}_o zMS5~n9Ihlg)V6P~E9pt}4JiF{BB7xDzi(SBrHxzMkK2BNwcqr<8k}t{zl(+A64}~r z)#t)xCsOonZOJvPkBc?8@{Rd10vfvqR^;5G`a9>K>+`-SyL5{)bjlNapTrj!uMX^} z%zr-&?B1ez#|Z9Jbr|R8d-~)Lk0$6-VnshKgq*$7X=JM&S$JTb0`zKh(5f3}RN7O9 zc3ICj#%_Iv^+;Xf=?lZDTqa>n; sGrluSijS2o+ncmx&=%{kCXhZ 9K bQ4IRkGRM7NIR=y)u0dh{vjFeDl74AE&rYC>5orHeC1p7DT-MYcrG8LfFJbA?} z^Q4#b7WpWnm|USPMf3PRjLM(2&x@T%{Dor?iY|%ivwWM{VFS_a-gNM|CeUpOABhLn zDA{B-h*4*XO;xQgi1EF4SQtr{+jxVwyJr$6{#n!F9OOPTf!afKtsEGm-FdQ)vxi({ z)!K!#SGl_==OWT9v{~Ak_qvS8b~R4)dp9bW&Nm5w93)BU1nGqf(!{o)55}TDZMQa{ z?>uhn0%p^2lY4R@xFt7__7v5395zSGh&wQnBmc9{ER*oRg%8f)#3|yT7Lah;EDzfj zq9mC1tTu*;RItH< F@oPrQs|7vjVh10lR!(dI>&omr7 z;Vm1)`vKl%(w&e{HnsC M8&h+kr&S6Txd`U+8bR!)JiBCT7UBL7WPdpG zlBDcRicPBp1MQiOdqWa&{jqpTbN(o=SQ_dO6oVgu2X_AVPw0=YE8K#o+1;a=MBTq) zCh9*W4Q9tIv_R4cJZQpHtqa{Q`sXuDXy@h<`WmIrf^?+qxD>V`?_gl}`@ZdBwf*Qo zD9@*RhTU&hX({Ok|De{6!|Vey-ZurE-3l&rC}?k1@gH8u0PamlMbpuF=Z`@t#*`_e zpjoA`zV@AO&+mrU#zcHyz2%QMhxLL}m>xpq&*Q}xqH0}cd-Qr0c3)R1uhAMzHa;Q! z^_U}0Ro*fQf7}#nV^`YZWF}Z_#t~7hSL=c!JY7ymA?zo`>aj# B)Fh3)o)6QC>=&naO;yp& z^@i;9MVeZ~@oDmnt%V~^aBd2e(_U~9E4BEwakiF{;i)FhZFYiH%PfvLEsGy%d&eY9 zbo(e%PN-K|(HN=sS#8-%9yLZOCdj!5Dxf#|JX-Ul;{1@V5%6l=lf|dOtK$oOw!>~q zM9%6xNmGE%oI9ep#T($*6Qehy(aMjo2WXQAXba6B6)~10p_ngA>yalZFZYB5%6t-e zKm81Q^}|m()r;ivgV+5@@;+b0+3hmq(j+L`vdxF1RDC*TjAi+zZ|Mmy9cR9rM=HjK zr#Cp$S8lXlHobh`6`!m@f1lT)fE5M?=h$>xmMwlY5h0?yvM%=c3@`La%W&qF`%;77 z*i4ufKj(Q?tylejtZSUkQtgoBJ^-*&K{|+q`c%i+##ev(aLpdLdAHh@N^xUvNtlHb z_n1km`|>h#t1QQ>I404Kt?E7oo5X?c19QaP)vRWiEOii7dx^6{pk@EXtj4TY83HnE zL^XM~WOz;OHc@r*+K=LE2U>WR$kBdjtuu#Pq2eoEmx^#xS (faS6Ep+|T =IOJx@teALml>Agj{L0#B2y%xAySe8p9)H2*4)%C)6w7@RQ$*PkF1`m z`I@dkMnZPb_fiag<{Ot7Mb4Z(LXi|2IY~(YhN9s< {lXxF) Xyx0oUD*SwHKgbR5&vi9}!lnc;MY;NGU zg0Mx~biztL4C46}ili0@sr;7h`SZZVGm} qyoR@s__JqX@zu7gL4@qL*N9q0-evkF(*Ca^|qxZc>9I+5G#C5y9};oJB2 zItf|+Si0Z+ew9Kx9?1dKz24rGbvxbSWKL@Exzf6hH7Cs|4dJ8&H(?O(YA8P4>rA6R zUF~MOo(bgG2`X_6-q$V-Et|pySyzWDMlP-P3WYbGnO$9t3(hjp3zG%Op&IhO?W`|} zP Lx7l)MJ;wL1Qj90qEaCp*j6vH-43lJz{g*y3E*RyAlr+UV<3kF-b@| z-h><_&lgHd`Q)V{!<9m%oq+WeiDN)1`yr3!ii*Dh*&`2}`hF>|_g-ShEyWnk`clO3 z?f-o;CBHn!5+U|@Lv(9p)TT;3>S?>q1*p=4+c9Y0g1nqgzBvR%hy|D 11mf zxtD9$*ibS&(b38mD$iTglSH^8FZUo}iB69%1S6Uqe@~`c%YgYRiKvL}cIlg}ugLbz z)Ggg}UoI2pJH-b{XP6tuZnpGEwo9|KYNbpAtB&T;a90<2A+zr6SjWx4d*tX~?(hGT zPO`>ik7Ka5H&4AJsAWQ}i*vy@+D(92v4VdKs~%KHvjSw_N!=G+a1U^rZ578dsyj}% zC7z@`*FmW5jp|+ZEQH@0ZS3{){14DK)K!$eu!inVxLDu|1t{ljydC!7RiOx_=&i9n zruE4bPobmrMQGrK6$*&`NAx2-Tg2$do9pavB0BvqG`1>W*WnXzF32@+c&x;72R)zm zbaw)d3}13QEnFc+T;^udx_)VUc6)!ru9n6cfR{XSdaM69EGA!kL3g{UynyD&@I?+6 zCi `=bxY0eGih>)Zh2DrG^^I>PMe7eO}=0! zWQ!F)G!Xx` tIm++SnC*~%mFWLU9T7!*T2jZ@v66Au>lK|jowLVP#(xkGKvgT zyNJYs-a|-B?W>4-(pGk;v{Rm@RzkVskGC1avx;I0kgKjCH5t3b-cqZs7W&Zp%1NmH zLVy#FH+5vzu<|D3l|^0I-6JQAvc|?XWo=SlMtO~1XNgD|+51`_{dUQNRxlNRIPyq- za2Kl@nkb^%Z7f#t_$X98R4*Xl*fAXM 3&g%yd+@TKKtQ1Z&;2{ zv&l+$R^4`6S@iRb_s}<$#{Keyy*;?OE;BTFg_e_6OrLg;#5a7?=tRAgQYvg6{viqt z9FL0hp24dg^OhlXZ<^|Ni-=8}WxR!uYvh7YGM2U}D}^`rC=~=y*zPlH>AQu_f7x9f zOZCzWGC7lZJ(Zg@Ym?SekawVsy24mkbKRD)N>;Q^mSsxnik)2YOC1lRH>C4W^@q^| zcfJxkP0BQLEi#h*m+F6^>bj^WSA)Y;i)7Jkkiy6_VA1*E1ZUqMPfNRiawqi-b5Fwt zqeE;FuLRHdve{LTKB~=#bC9a&7nn$feaQ|{KC1 N*T3_TNDWwEouBu8}D=5V?>4 zg_mGS2(aM<>qwLPHug88oMzq8h9w$5R^XW!!A*;FB3q#W^xH=OZ!dL*(yS+_Eh`qv zM}QyN_ippDLX(5~%e6+fK6B!?e`8NV6qYD*j(*Ziws_!k5L!aHsl86~yn;x+l1EMN zJ+TMLQ*z^Sq@R%1b-iVrfwj+E6uezxhSxjcd_7?>(wA dAvaYiAlglmxQ;74q** z1vy}V8*1`e9foc)Mbu0yJf5O?T^cKt;5g2zMS2WxM10C_YJpEN9((t6e4?1X>aeyw zsaN^?cOTKNp}!Nv#0X(4>ByEqw;y}I9y6=f6LbG?8)TSTw4ypRkobSV=I#t$v#B}T z% 0d9C>c+qL|t510{){TwD$ULXYOi|>R5q&DMC7CVF!X(5}$_dz%+(a-Yf zt}`zWG)bnV@AVeBgZ9Il&-yTLu12Zgmcl$5&khVy$TO|_QPd?zn@f8ivQJ%0vV1y{ zl9w9{gShHTM)r!M-FceqPP!*$P4M4IdU9bHan~g57I4|EE{{CtjwO-4@y*p+;qmQ@ ze|qieFYyh2XNh< ol|gYhv(ptY-Sty(?Elg!}~ZxlzzPPR|p_E{MJAxK|?<3Ng17&-g* z*#t+&{ezEt){$G_+01jIkb<-4t!3rn#=SO?m 2$~ViE1ix*LxRRrglm`r8t0qNy zge?Au^{})^&Mq^GbEN&5GVN-RQG%*-Qwfx$vDNVW3!`kTZHkO7H{Gvv1*|DZ;A_7O zwyKCR+=Y!5wI2~K7=G-*d`)4z6cgZ5HnD{%iPDLkdmk*AsYb_&J#{t`4Hf6ZPj@09 z*H0&ETCxr8n)YJCktY4ya@*V2CFM1Eg(3ds_>qy>%;tx sxpz5 zEf!eG05slk=On#g&z-z6HrS89+2)t)$p*Q8eA^!*UWTV1zgBF-5%FoDeRXo8@0;D< zaxzEg{5{^vKWS0JX=jSp{=5WMtX|fUD4U?qb~2iKrE&qzOQonm AroH z1ryuVI&+(aCBiIuBs&eX;CPS^KHHd^#r>_iXcw{P|C-Iy_FI9h+{Sv6BrsJ5NW{uO zJn-s0*z)H1eev<-Mt|`w*$=zykYW9PTf+G_;X6uo7H1q+?Go}b{Zuc5#g6VVS1FSy ze8^&9F!MH{dPf~)e5>Aa?*E2g#cOPMRm#Th-&)+~3+_65Qwwr6Fbw_CYuIQf9sT_p z%=?>A&q9XIP^bgwe*CrTkF1}w=%2I9^}*tEKhS)PC-nLf`lsvmTMs|jm4vt}9O^@S zWH-X!5{5x6aru>xZdLuUd=tKu+q)&d-QOWu^(F!uc$eA>9*OF_OrV+`<1A$8J=@bX zX~}FLEL{Kf`CJOz9&!P{1)f`RxT!S(({czSuf`2?v+^y5r5t*Nd+#xOOP;nQMltvc zOjD}I-to@Xn7a}>a`YE#MGiLi0Sy`YB3pcZrc+zbzB#*E_{P2t!1<0Gt?*4aG>{^v z`K`c3*zDk5th7r|KsI;N9KjKCEs8G1mH|1luX>wPgthIg$wuDbAR2TsKLUWfpZTrZ z_f_^PisZaMcFC&1<+R*h>3L);2Q$R)_Q9RJ;sV+zY_~ai!GpJx`hN%>tikQhffW@g z->v$w0cd@xN&2+fr0E9Ve(iaz*0H0ImD>mXOJ(T*$>B#kkJ>04t1c5?0Aa3;DoX{S zng<6=DeW*^RcZ0DfB8>+Z1axm2ew1dCBBl+EuM=7`Uvxr*M|y^U)$$)!5K?X%#e`Q zz0vT|idclJ_ECNOeGT=D!5tA(0JR!}0)N}^#jix;6P-sl3vUe60P%Po={KST0v}(P z{q0K!j^ja^?>cyb2XmAKs&+D!Sct1qHb9u1d?a LbSe3)`_Hg+`h?ZI3> {p|jE+RpjY#_cuqso$wo_}s}KUYLOi*!F& zmPza0a<0xk1;N-o#(vP?h=@}GQqM+icOHJ?f3cN~14>U(xi$LFO}V`m2V!PsDl3>4 zR=)Y|Y}uI0jgyaVLmuBims>b*zYtl&&;*0{fgXlO<$j)-bl!B=rmyLCPh?3$IcLQv zl@mSw^mO>-2Wb5D`H6-rd `372W$8Gc%0GM{WeOh3{S5p1pQr=fAMP~s85Z$1 zWTlrYI82w5YwO|7a Ia7By5d@f!#`ylaYO)tGBR>R`AUYO}8&_=caj zmjs$ 86)PvF z_RU TD`9}Wv896+&i(KV;HN!^&4T@e@LHYggcCjF9 z+o>n!+nSe(j5@(OW7o3!8jRJ>zCNo+et&`}n0AVRn1EVNTRXeY?wAW^ubAdI>g0n( ztmJk(;0_E2`2vRiLDX5Fsd)8XaeF3LvXGYrP(%^7uy0G-_HLPZjMd?P?3^VkUEC!i z5r&nZ-#l=u&^076&dwX|G=e;Sz06L2+e^n}k-ZXPB>qn>vQyMqu?nV8n`6>TakRWa z%E*}bU)`TCe7o-z4v|iJl_hN!EjNby)tCUkdyN<3-{_E6UJHD7CZ)bn>iL4tRd%`y zN;Z)(d8$j+w_l|y*NSW6Nmxp33%w4QK=CtevX`q7VRy7=T=sZ7`6@#JKf%C(agq{L zFws$Je*!))&jgNQ+n|B0L3ES SZ(pktm1!+0rPbF`i+|kTD1EdizFeL z_tz&{&K8BE9jh4W%4s$0M0i)`@kZwmg5w |Tzk`_9+O4N`=bqtw6*5?!@#pad8 z|5gY3p}h>PuJR|~lI>o7nD%V2!sE-AA%z0kuZax*aExF|Jk#896#yZ#q_Sj&IhGGg z$k$ATdArwa1bfJwugy9MewvR?7g(}w*}3w;;)7=5q0_TJ48omE!tWdhj9SrLl@>HD zd9C>I`C5$L&hNibzQT^*laR2h56-x7I-6 i`c1 zkga*l{XZ8V8C1sv)lP5^jGPwITNG>O*{V#k+4=3Ey^T4|SZv;?fU{l2&ifA*f*cVs zbNvS4{;2E}hH*BB>WlXkBwC)(wKYS|Vdj0F14N=7eb^$$Mlxiw6TfzvLQT2>1Qa;i zgwU0{$Vh8R@>jmS!fB+OwEPXZ$?aw3N^XQ&0=_ofEbJS7X_xZl+-BTO@7u}`Tof>~ zMwJXvpNR6 Rx7U)%eiXzsd(GXjJ@uC{-=eE;GVYY>$&-d7vT$|UXJj3^$N zH*)fwL>cv0IfR4&r)3`pvn?Pf8_iblAAVl OfP0)|0Xi*2E%8AHa=-VO`-I< z%jat|t3`l(artm>BYkhVMBwJ*`zImUw!eK;niPQ@iu3ajXPfw~uupq@49vg9LGlPQ zWB$ULYRVLoE7tZ1OO_?P#40+L=5Hdy&|x5?MD$&{Tf(g~86mhIf0zkMchB44l2 ^f+kBMHX^IcHT`I+z~Pi+Gb{n_^R%_xH(tY=}kHb;cg=~THlVa>oY-< zl{EQ;!m9q3aOpU?DX@ZsBTSH$d#-7VJLxO24E?44Hl)rTRk_59q-ryA?^lr^rFovL zV=Vd~gP)4y8~ZuHASQ0zhVo_UEe0of3}C+*`w^#*R58Zw4J-SAswG(3E6-4NPDoZc zr!#^2vQn&>{3fV*Z WdBU#UKfIYp&_%DyIzTGR_pzpd9lX` z>X~EHjo0fpkx1%(cDEE;%kAesj5afEv(K %zdC{6rmG{>}rHX*Jfi;43Jy4^mi?fzJks zY~6s3=b{$37d&KhMKmQrS~4iv+IRMx+z3SN-r Jq-$i+)GQ!Mb$3t8=Q2VID z``|fW)vnd+hoLxP-e|`E_)~(tLx&+y*(GI-P5$yjuHp(}rB2jU$54AVT$-p7%@6VW zP*x8Jve7?INJ3$mwu|AHu(ph)j)v|<`;Kn0UNh~so;9(DT!+8Ac&5`59_*e0Qx@zd z$?A9ez(FqMYxb2nkx;&ws^qtR)j<+)=D(&rUYLeIC?Qmx1kW)zqhvvbU1x-o+ykO) z-2OKc`$8sQX#d!}{g?-J8BF#l+r=;ytnlCWYEW)82n0RPc^Dwes(BWyAE$heBcxW* z4pPq~x}XX5o~*!7zr<2#a_SB2(yVL|r~ORAsJrXdH8;84$Nv(d=WEk&SdOGqo->Fr zUY3qr@m!JelV>1)k6c-yY>|U$tAzW8ybycZE(M-Sc?e>wI2e`R%9$; R*(7K>L*jn=W+>+xPDAu#>Xf!81{2RAm^lGYjrsulIX zy%KsVI&7*)DY4i)0>y0^kW{wJkMtcCpte;w+B1x^cun4P9?|UFIN|>1dIDTlk9>4T zlaWp;3WxEIMA?p#%rz&%_AnsK(aB#{tyCcEvzt#N_S2;x;l7zJG h0;Ybe~~GH^E|PIFWH4?q9@eNa;~mGr&} z%;zf_Et1jvr&95=;&eJddK#t?b%35? ms4(n4KT8P2TlfsR1e|l &{L}zFg*Wb?2~pGi(0~QI;}g&|!5n9C@BVg4 z!gO(;VV8yijOy-!m8scQly#p-sd(! 9)!oR?MZrrGzDBB`U`RLJ@Y%}enW(lx*t+=H zR>h)y!xSy?!^$xGUuZ|FOJ*Xod!YB*w>-kB%pfm~P5(LwzgHsSdG|EL {-T$@Jn5`QK+Y(l2a* ZiH){7*ffhz12DzBGE?n%b; ztB}GkJ{Pa?jk}-Lu9tjdn!`*`chiHCgHJ(|L-^?)!YLOPn23wxY#O>sgAq7-MF_j_ zh5PfLi1L1B6H%0x#XpncVD=Uz;p9JgrmQfLveDSEZ||={136K>#fW{IPekUD^am5* zm_sGp?w2qtfCtdozcw>P=VnyrbzFv37MDQPVj4zZoYpQ&*X(lJJ*r3)-zvmsLIYN< zl4*O@Nlzm7@1F+koQXKRx*UqPBn4M>kt0G!F4V@P)HfK^QR2cuN}zAS0^3n;yIPe< zYG;5S1fxkyDCw)da5KMV&j2sP >EM*iDjj z;NbJN-BSd*2E`1ttGMyI&;gPc|03>kHEY}Tv@l0x*1Qs^r+k$+<^CLE=Wk=B9;_mg z ygpDM`I^jqNXmXETyMEN0?1LMgTXF~S^})T(7^RcdEd_+wb-fMbTQDmDi11PYcS zP{OfTFrBY`$9f3jN;fE@jolCGxNZumqlsnu%ei<5Kq3|RDn9(fGC2!W|6Vl3H-7To z3CPM+&-Sv qq1{;V`kmEG4;#^71 jQVO#TDKQE8kL{@P+->-9G4oCj`iX zxoH FDE0hjOd-|9Wc)euP;{d _9pB;Zh3>diK@q>Z=n$xqEK450` zo41iIBZgo!qUW;HK_%Zcts{tpC}+@PWdVX)atkpwwwmU#_DInj63p9(d>HKY4`h*4 zARK&A@=1i*_>rSfdbK;rH`LSJ>toSBQ*T#iOi^CGWq|R7UKNFX74g^>sm==?Gw8Oq z1L6EGy{X(b`)$GAMjY!V75Q}7yX8rTXERi-%l4ZdeaD&&LWvIT}1^6OH?y?gd@% zI|&&(;zrZeXEm4rW1m+%k#Nfqs34w9 D$A|E(pUboWQTWG6;Xtn%f~ z&^OLDvWDjopx_9(ebUeGU#`UAE&_STiCXvg5m)>a_WRa$SP)WkSc5UxL`@>7ww_0v z9Z=Cs?JxSPtn?(!MH-3ZKB*aV3(AG%odzLb2N2}mL{fm2GN26VuKkb6 OVE4GVeebTZzM}m*vyKd-5=JPw^6)x?0{S_>CsWy$;_PZK|(;@ZDNlY zMWaq>KmnZ`5dxLJSK(85CNSQg9_Qh->e!>No_JrGHQxDM3^J(7mJg0`)KzM0S;`C& zgwHPiWY!86FD-v@^i`S@=wlQZ6&8={jh|wODvbmwtV{hS7>ZP2s~ymHnCVrZ_u~+m zh2H02D2-VYyJo-nH=8_Wi#JyS>J|Zbu~J4yU}n$WMsEKBF SR5<3!$aMV6p&f&X$HDgnVjR`8@8!7&lSJzK&og1%(`{n9$12=?!n?P4Q z6SY_T#WSRlm%{__E|#Dc+(B}hJ?%AdBtkLpSq~SWou@A%ne7#cq}n_Y$m&ivStPcx zn6*t!o~nY(`egznq;^2Ri(|%h#!Z>Fx=SOB+Ec?WeEF-szqEU+y^39NUdShRPH2rU zybkajzaP);1km!0v-lxu%0fuH6VSWZ(Ks=R)z}$OBWk;Sm8~^DQ>=}@F3-&ji#WYM zr`V&4^qk;`h%^WdMM SQ%P+;Nc^i@9_UR$gGcHp!$F z{8hv`TC~_1uZH7*LHu{zQcBEfq(OR|puR?h6zKn7=f$`1I+MNPO6EKLG~!`UmYcS` zZ}APXH0zNW=4^ZN2=((npcKA}xH%s!4pJlvZ&q RV*`g?uCrZ%PkxghJ{ zkyz2=3 4|DUN!x!UawiDSO&>2HCA zT)I}3x<;AK4|yhL%VeEB&;Qq04 U3$ zplZh(HphC{9AzoKk1^elbO{FHY;mNlm{EbDs_FV0uX>d0U7-QtDtZK*D69n7m|sCr z?Fubf|4&?M9^kmLfIa}l`BZ^TX5@}hD<>2o?w7KtFn3cH67J6`1cyAO7&-xD5|Vfi zEg~;-EkCnH2!a#}7h{Z?-NyPmX*HP6@a(M>>r0Sp!a{3X*NQ493uL7rHz`0(h@l#$ zJ~;f_yxt5r@k&qlvxH#{U!|faKtqn8$}Csc>;DA_SC0Ax&hxm4(WOya9JZO|W%+&E zsV2Lh$RIv tG(jrubrsolIm8d&L1PcMyG*wy!~Z~Xs+R=VYx(9s7Wxt&%_ z2TrAj!D3hCB7^3hO|XOM-0A)~GA#q@GO$mNCKSmW1`6ErjEJM}Sf*$MyYNZDY-1u9 z$kcsBc4lR*yL 3Ce?1(BN7TgFB>J(T-$xwax8Xn=C-k zn%~+=s-3S|_!Y1(H=Ld9*r?CQX?T@XIcJ3IoH`rtkw{;oe(-*N( dePzp!hcMnnyN%W6Gfd0e3UEk?ZHPBWDB!w}4|@2Sugs zK CDrl&nbAVAt!-ccY@n&y;f|Fo88tD7ExhyYlO z8B}p&y8<}KjkG!EBU2aJIv^`8$pP}7DC6pV#_Ol_?7T0Lo^wQOk;?Y}X=et7nw)=8 zyPEg0>oE>h$Yekjg_ 4OhVy#==>AU>L?)v!9wGcG z^lCUj9idDfxd^2Y_#UtWkQ&{i9kEvbAB(B|vKe?YeFVTNOUwr-h4JcZYTkcTyQp$7 zXwoBZh1IZIZJlWje7ko8g-f~mzdYt~? 36z5k&oSJR>?|X#s^1<0geziS z?d ~ zwg+@@++g4vcchO!(bp*OD qzbCVZ)CXHGDU%O$IDp64N;IgWejn*|%TgO#uTkmL^7W@yL3%87(jzU_w zC7UWG;~Irbb8TchAoc%c5-sOkWj+MO)eOd1Lf|7hu=Vp6 FCUP zgKLmIC3aQeJiCQvC!?|${4!xGA+n ;B@Zp{|L zEx+IG@){&k`AUat;A;woqm;h;Ts=gvPT5X}9b$ywH>JqO_7q>E;6<<|8Bex3p?U%t zKDBV@@8(W^?44^+PocS~a}dZ4+v=N)7Ulwt_8;{$q$5wh!N>4N4WJq6*8Yb$VaW9s zU-lZ}N7&Tw{r!&gkAR!F_$S;Xh0B?8V@w$)`7nv4j{X*Q< <$pMeQ2zdQx;I0gly@SxPI0rF#*Pvj7jg}+l+q8w;YK-FV< zcDL Ox??77NS+9aDhAR%h?x8|u-*I*O zg>gXB{Eu?gcA7bN!#E<0ARz40V26s~5)8&&re-cY4v&gZxAg^X2Ok!T`3bTBIU4j| zXwB@-wg_E=N5GhTxgM07-Q%JdKczW#v)?KTW5#>j=a?ecY%JZoo2l*1ry*s>?PEx7 z!rx>)eS)dH(rrj(-jW64vO)xR BdxH&HBLbIIU#{~$4*2ikE%t<#T6$O+Ya7aq4Rj{{ZA5|y3&d1q-2_%P z>8{5?#n{}N;4!`mmNTyRz3=k?gMY8@gNg%(Tr(jcYPsrk+*DUE5U0X#_4GBd$crE_ z4f}G}*Wh!;lAy!$UI)&Xd *xod-%E!F$wj4RHT;?jzqNQ} Me`(H3@Dewg@%>B6+}=W}JNsWS0_w zq*XNNqJT=un8^Q-nTu}(&D#2op|tjL_M~_O=r8_!k*NNWc6px%;vcaAa~{b0Yg(@5 z-V(K7io`)w0zEa|7z5g`#Z4r(NRJ#1r%_o6C Rg|ro;A^cVF<&N?@3*`@lVHe#&PYnb#Pxrakq`SoQF35=TT} z`D O55$~Su*@gLh4Xas zAk*C7DmWPbIt0itVAJ%wNpdT^C&8?+rmc$2Yq<_@680mTD`64aS0NTx%d|iG9FXf1 z!7J%Knq-{FC1~4J_5^4p6jm9*j=H8Y)>H5{A!BuC5PUMs47va#X>xUJlXn+2azPsZ z?5pX=mcs=05V63yJq#ITnXSs~{a0ly1N v)n3pxvr{A&whL5wLJWG?fdt}%`qEDZ%w z@t<3bP=fuD{)7|G%uLWF;4fEOzoUmB1vkQ`Q>ur)rYduJt-kpG0`Ux5MLro+`wo~2 z3|51+&2!o4EijiL#Kg(WfK>)tB(0Q?D-Zqkov1wY?7lsiYIRXTSP1O$Ur?!@VEf*7 z^cL`t(syzNlRen!1P%B?0}Ccj&h{#|_9_l2-6L0DvxeRNGdpm0k-X 3Y;{F+{O*e)_D=ES*!igimUO`|@4$R9H*Gvcy zXUDG(;-RMi)I1H|dK8x-Yke*@DtG<{b&~@fVgE1N86yxI;!&q0PRmS ^7#wL3C4o;fE zeo3nN9wbf^r5GRu1q~9?4VgLLwlHS?Z-EEtB!jq3_yE3N{YqOnX%D$p#gRB`d{OPr zw;`=auFs6u{=d53GAhdMiyIzVr3^YmWdM=x5&;opNCl-!LAtw#P{9CX5Re8Xq&uVr zloSx88 YD`h_Ef=zWbi;%;TSoF^Ksn=o7#BggE z`X7hSv0a*ob|r8C&8 %=~m0^0`G;kC+kCt m;vk= z#<%MAJc 3f~^5LW(;l?1U?LKco5;HO9j#ZNU62&0tR<+N++&-v{VMxCv8IH z6X|P}(f_yyx0V^E0F #16B$TL4HhzX9>zr{pSv(l~t86JCdNSPCI6WY9E6px+kcwSxykSI#=Ax#3( z*Kc%!f!YAXpxhjHkizy~2QSI|zb{!~!FWIp=6_!UkOT6us(BsKVqx<@mkx#ux>tg4 z`dLN#SrN#;BhBlO346~1ln;Efk6E2a(Xtg##&D>&bNg2oMDZ+XYe7ni-y+=*9R{Y% zT^cHGo)!{RO9@6aY2k8MH{gd}fJFncv(9xh`8@V3GLt1GpH+p0F{XtO2Wl6LQPH zD}#-$9Oxh+1d&D$AnZm32(pqKv!l7X9vZIxAS4JTO}6g_)c7w`Jsdid_QtC kj zK(_GXJbbQE@L zz-%7pg+;Rx4pcy9-qvNLkSQb3QytQ>p)M{KLgDiWR+#8A11a=m@{-IKHXhh!Cto;< zq7~%nkP%d16)|E2U;8{d?brQh!6H0(FO~&G4)Xoyhia=0A!7ZdP6*|@xj>YEx27(h z?4kTG1s~RG0Pg|qUxS)&9S<6F?$jU`((g%s{@S$>3VgXfDMe)ulvwB-*BY8F&*Kyz zzbg6(d~sqC21?~mj>qiGAdz$hE90vGa?Qm0aBA{DLg| 2QqRy0wA`C&q`kavxxE*VQZ#c<|9{SG8Cp!(yPZHyp?{GmWq3b zTZ}baJ9!3f@h8pgEhU)H;ZjE30?Ac>FB@I}gmJtp0gs?l6C5|7#YWz>G!0-2c(9q# z_!_O-Fsgei)C9redqC_BSq# cp|mu4q)Ls$|G(l&V!UxyofpV8%9ySdhuTuJiL_{WIX9B zoJ0>D2_5sU1xW$5tg8sv{T<7OXS?T1-TZN3c99rX6j_b|z1)>M`b-;e6DZsy4g7f% z4bIZdBrgIc49Pvqq3n;Ub9! vhi$w NT`n;y!H4H!tz1xAUCGg%rs{B1VNE7HaLWiB1btE;*SQRakL1#Sq0O-1{fnB z<_GFfl%-Jm C*)Z%p>9jmi7ZP zp0Radn~hFu-XK+pP4q#g5L3W 5w!mz&F^am262`>r z(dQ-n$#sXbG_;Px6H1_&_F5n?rurJWe^Y(*jfzfycr%YHU?FiL`pd-TKv#TE1F>C! zbg*u0z!g}j8?a(=Pey%73FKoPJxDRNC35xYgmVBD1!B|lEy}`_7Qen5U Co23U<6VW$xZQ(!O4BvD@E~nviLspFV `vD*zVJ3&I z9&nNom-J2m7L|P(jUfFCGI8MQcypnk3B(kAn(xmBiLlw=NvAHpj@SVCG_byw6(>^b z`cPQBDL11-Ddslly9i81uT)!5? 7!CIRiE2~y>~=TPx5_dw0>p<@p;m%o%2???%{O5- zB{9F`KCTUd8z-a=F^0HwOM(npaw @@eH&AXuD=nMw~I%U*1N ^SAY)%(bDd<-LRUpHM4umgmW|N$=qFX-9U$! zQ~JCH NYo?o_4eMQ+|D4|Yc;q)cvqhc)j2ClMbCm1Pl)+db&TfTp>I zOTjYk|2(v3Z(4(*(}#PL2z+fIEJVo?Dw^qZp&_gT>2!gW6nudP&JYw0uY+&5{dW~1 zg%Obk)kytVG>sUja{ti;f%7&fra@jF|2F{rw}CvkkpgFil6nTt)Bx4#JZ+vqFaEuL zRQGE(6+@ruP2eI;_KVZEqJbcztmVXk3p@WM6vm$hE%GVSD6P?XDFFS|{btD%ZQT7C zAeqN9pap<`#=HW$LrH93gMP;|mE6A!N<&0#{(wBnW&6a46VfK8k2}lYD*Y4KRGQ38 z+QNr1P*^4RexG}wF-gGh=2A8+a1CTY;iJ=acr$?oasii%E~E%t$rQM)$}EMH!g$Kv z(hctE_5hq{net$l7f&eo7kFgoai5`zEFIsv9*mfO%Di9^jM`=S{i&)Y=Z8f>;+rIj zo}FW@bqVYSoqPz-4-zK-MonD^TmS%^SRRH>4kjw@BPWEyad#gElRr`=O@>55Ow4zA zi2MLk-(P|;UU-LY;Q+y#Bqc-b<*;50#Hhl3& 2+d#oiP|1&GPv7(T!sfR{!0JCYpiqQCuf((ki5q>{PqL^ z-H<5)Q!JzaTgFW>U~)7gp_bO&T!8jq)+13n#?hRY2c0v7Egc&CBulAp8F|y%`V3~H z$wyyvCSmZBa88AD=96X1B6w5JtT;FET*`jUDQLw7{)Ybx(zR@M;WK%#k^Al&xU-im zI96#nTXFL1;9VyArBGv8+6EP|Q 7Q_! #7pD5cL$n3zVr7Rr^RsAi0 z+c~DTohq|m0#VWp;NuQER=^T+G?D$L1TFx+&Kq_34a^_Lzmn+?`6N ack67L4@vZnFRQKYIn4~waxKBnCo<~gEtyV7U8o>TWSL1;Y6za(KaL}*?`4Meuf zwz;{HQ6C3RZmWNX)qRa!r>lb1vXkLBx_bGqL0oM1S#5aH+|0G=eArC@XwS`dK00XD z *bz0 pa9SdlPhe^t7hYpS#K1dS%ArST=zQoHT($ ze*0 rb-a2w)od*(0O8!xGThZZ%7- zEVr{47SzNVe^>y&e1*7BDciEt fSkMURKP66wVk7F9VxXsKF =c|l)sRfP-dcnuPyj|-H{={5LH?WT6&9z5IBf;RA+R&q9+mkT+ E7MA2_1^ys_*Bg2dVQl8_0QWbSH`)rZ%AV6H^QM z(7H#$$mAdL<{D=WCCt6%*stJpK!{^84kQurC!X;u7fM^YO~5Ha^o! I~P +5_q7!_-*>B?U_ZN%wNJmx5I%? z30t~n2^s~g!W^&VSzN*bjn#&_4je#*tsN=XWuOOKoA6zJI?OPLAHEzX;Zj*(cxbVJbWh_otZWdTo_S8|wZzu8d-TQ8-i&%%S zS+`ffy;iV+ph@=&jzb5L3%UT9bn5rByN~_44PjG>GPr6u#w`)p=-nDkE5S*?U`~z| zGdt+0V@w5Yy_!$tZ2C*jI3z7d3_3p7IpuI?6D7Z_8`~29=Ks?U*0U2g^inx!Zd@`; zT=)o@LL3vZ&2?En33SP!zB5E_hyS$_(@lDl1IVP_iyNBtZUmpi>aZuGE$)Lxl%X=G zlXK~#Jeh`onBq^B^eijVlXljMC4etH2(+STvFk^Bm}o;HTEys~yA(VHdSo^Mjvd^$ zpc}NSB+g32w5$~0F#i;nh0K$cCCF$IKPg%(uA6t{*&g8WnljVCYUqK9Se@8$(E57e zM 5ua;H~Ns>!+XH5PZMdszPdnJp(a((VlbM8dZu(o*t%f;UR_-9iO$# z3GS7oAbzcbtVuTk$2TQWmP*vECZOsJsaO|V9W_ufa ^< kYM)g$54AQBP=QmkWa-Zl1fbG<-s z lwTn~IQADesi8!;Rb}Z=;{qYmlaBfo%qK8TC7ScG!C`*)fX#Lh z>ydPc>-ZQ>?sN?(U5|f{U?|;w?kGpwy;RUa_iBReOk2(QYu^7zi>cQFp7MGR&`nlW zTH?wqqXF~~Vj5VV+2jBmYfbguYw02m0A`#ACpx?Y7{4?teu02#AlWoQdg2Nwoo9QI zrl#9(Xo!tkjDf%>c|mJh0Bqu$5$B+s)U69P3f$-YIKu!dv=5D)HS{-275|YhHy;nm z3w|OZ_?$Ty-#;_yIO!3n5TB!itnR8A{+m3JNQ6vS=-p%jdsq+85tjV&55|)Zmxc7D zP5Hz*w^+L0QnuiahT?gXCWWfiOwksMClBp@$8*3f0HltLl}6om)v#JwvY8JHW>8aP z{5aAqp`|d4%>0Ei9m2Wf)?M&HP7Dj$3t3@pC_3pcfGFxxn*yPa{&J3<@Tn=u1^tV_ zz~-$fgVy^ZfJK&_Ref@hgxkjgbd?`a|3z=2FXm*(w*vO;+y0@`W#EQ#oBVf10+CZY zG7fdiL4CZ<=`QS`pTs2P6>9vj u=}d-glGBp5&qYCjQUxg={v z@Lik1A-U5$Y#a&eH)gB#3i8mm!gDA-fvKaw=ED)V-;UsjGST<&gu<$q@TJmI=;Mz0 z_`ANnO>) x(^$tEU7W u?H~hUH0J(B~Os!&8nML;RV7sG^k$)G-jQ-2ph-g!t^)n zN-URVX?V?r_PjN-i_dj%Z8!d`U$6<22@=b`rW(#gttl@^mJUn0=hXEsyF8ZN`wLpC zZ64( $&lKjA?_qFmt}ISX2eZ#fHH6{Y>_nHrGR-`;Lqr+9gm| zIOsMn`i7lFofQLp2kXqt+l$h#yFd@=Vb40qUiu3 6D8aAVn+m#77Y8sDk8Er-YM@N6mq^*IZ9!^^?|`sl-@ zXEdDq{6NHJuZqp?DxjVb?qPdId* fL;?hPm0Y@P@G z%?-yYQUpTzZTg)&{4^FimS<({o$A#I4R(Jt8kvJ0>?4Od$>nqbR>6&VO3g(pk-N z)SK1N;dl||D77oVtmAJb+CpUD)7jn{4J^r0AOH_;2oMYS@boc^7a_oSR(c9`+euFL zuAh!vB;3R-TkiUh8gT(~MRJD)AR(CHf W8+c06wTD2d9T_Q9 z1OM2a$QR_F$HCd0=#6_|SfZ!FIq;-|R%-5=hs=se(_>KXPuY3vIm&XBFueChciJx{ z=@py0+xOl}Fb%PODXeZc%b)rE>kT(Odv<()g_e@i|A(s?KFHHGiM9aXPa?pslme-F zCDShAy_R+31|pRS;XFYg1w>YR=d&lM+IHBT8W-&7MFFU_1hpOh8a^;^-XrIzx {_V@&*b}=m%Yt%X2~1J=zwKbb6u&$~b~pD!%{A7X(|gR i+@ZH;ZqjgPl8U4$EO_DvrF=qM{;Iftm*tG!HId<`0vAK1bUtzQK6bj8%lR) z1Bv&NQ)18e7FUJRoS|(eKYs}jQBCZ|#_F*(ya2;IzwFSV6)R^BsO0HxunH09>5osO zO1<{3*Kw~%AAyPZ-OM+_C%Xk$#p09mQbiv3>`D+AZrY2Av|5s-B7Ww`;E<|8t)l z_u>PFTW?mlenQULn$H+aqaL=yOI(e>Dt Q`cZPfMq(HITwnmErg8y zA_`2)XrbnvoWL+`;AULPad>a2`O`Ik?Be;og$=mLYhi{>$fAHTF&z*D8d1d$vAH6l z%^hl4;&j#64N_O@e(xO^u2MnGE7ZmH2M0vfZH+$B^~YMh2}< zU@^w_Z2lU>RV&tiPEb>Si^-r7_dPi$&HUR8L5<;#s;pIotYDmRw>7}DoKEg2X+6#u zCDRB0CjOcM!1&C>{O)NO4Y^2B13VS5gTPZwXb*PP#6wZrJGP)+oS~cl0sg7BlL!8s z)PWW!xyr;XF01jpcb`{)(=u7KnC~zSZCt<>q*0>w&uaY?HMMCC19Ifgk&6$ixWS-G z4jK}rGlMB%ky3(2%19eNveKOYlJ}$?#~`Zz!ab2woM)){R|@gyTx8xU9T*j{!yfSI z&AJ8fS(h$(bIv3NB9j(|gTN>GtZ}}v+07Ku(Y#o`&mbdeaQh2zYsyCyT|^B~Wgjt! zRRsh H) zEL1fm_`V!u7Dk2!j(>sHIPWJ{F9owzfxH>sWe?pewcD30EICL^>{z}>4>Q~+)6v76 zvI|XV5Nyr!W(8TJWWZe;U&%RgXBw0)SB@hCwv^RCPAkUY&Fit78VXH{MvJ5ph0EmW zapVmEhy&g!p|o)%7`oPAbYRj#9zs^z$PV$%3JUVBv;j=dAe5uj)-obU4UCJ@sfF08 z*2KQz=~0JPsT~yfcQw%YV=I?7tbrc8*CfzI1{Of+xwIrBwU4h(%GJ6?cfE<*^S%NY zYu(N4s&JQszt+lz`3Ud>Ts_n;2@Zn~VCvf9PjOjKgMSzpvIST~E0}UP5SzgQ?%5|z zyZyG00VrwnX(@XR-W?I73swQtdG^E1A0dU(TdO`2jSrpZKwvtml92wX&T3Zf()rA9 zwBtB35QRj6E0&MkRx#CC2k&_Gy~v}dP|}~tDPervU1;?^FYHVBX7Wroc2>So^F)s$ z@f?c>`5bONTmASlZ^6vWKBEI8)Ooe2ZWpKtY+SW#J=>*VYI7s1Ca$hSRcP3FcV-_X zJvT4JE15_n%`CqC1!aIHXlo!B82VN);e3}&rW`L3d)5R^IOonbaD*{VGsf$4C!(LL z4V103z>@4f$Bt^4`p=Of?h48-xr?HHI}3F2p#XnC J zJUcrMm6W&?ylkW9BsHUjU4qNn0=ZjqPVZbN8@U+DAv7i(Gn2Lt@`>ub)r=sWZ<|Zk zKA%7FOpmHTs_Pxcxj>C*tgwnHzH58hQEyQDTcwF>JzD)7R_dv!vXmV0v@^gAFaWr>GDJB*MK$ z-RfXAm$*fV5m;bMIVF@4CH>R>={{-#aKIm@$dNRYSF)ety%9mG=hA?$9S;gNE|nhX z{mw1{8hXLNezzKD@ywyJ0zd+8epkwOYW5@+4Inc_ha}b$Qcjpp3EZC1U9aNsEQCgG zy3I7e+OG;3OM;spp;~S@P6OQBl* zvyJz#CI@doH7EuAeutS!)A84dpSJ)|hb1WP1agEex7`J)@XvAN^oMUoTqFu8%TiZf za_Yx4q@d=QWGovr?1-Uj`wJc*1P?^3?OX#gU7ZrN8^0GFec^dgG;e#IfzRGZmW7N1 zK+=fe7f6F(Qi;osXkZDQ)$8~&xbr#Na*c0G9gj|G)6)cv6l#}m{VU3wH!*<8t6?h_ zv^bq+51%7=DM^~MSB*HsEH|YPzR{2 zZVM1KGFhbp@-4T-s7MIT%e^rmV!7PP1b_(RaC_1azcoDv@T*WY u(w-J}zzCznu2l^sEd>+J&RT>y-Tw)IZ= zR%!1F#_Jy$Of>r=^`RYx`&@<@x;rSEUsMa7Mnj_FrVi-`$i7o48s6>+Bx-~AFMW(n z9XNJtLoepSY6+{Cn@>?YPZ3MmU_p`~E*J6c&bsk>3RFLVPcVS2z$=ecy=XJf$$F)- zGa8s)XVm&>GJKXDf?ZgVaCQ~mx?G^c{-1p0GJ|OMII64Q0H4ir4%IUegGDDUAR!6? zch7})Ga|LF`_52pFEP@4W>J$HwfYx8Q$QGGAgN0LhV36~QR&7wJ`iEb2folT=ODo~ zQz`3ds%LBCp+ Z0molS?$7Gw}jwD`Wti3vXv{ zH>*8xAoGM{H+m+i#ZRq qILt|mmL?QUy; zi1ctjiD|Q!|E` ufNmXWAjhfCuD05I!N~DS8qp znyjGEjz$Uma0N3kvpDHIJuY!DJ{_NeJMA^7byvU4;{eM3VE1-rpq5 ?dp=7O~bvp@{HH};2L`(a;kdhv57v|PFJ+LaU&*y lSk$(?{F22$ONO+OO`$$a_|K>~W?EvcS z2epnimGwytY9|1q0EFkc*A_mISm}sC9lTPONkpC<40* e?UvS(hrdX42Dp-CE0EfUI(mrJX4#8 g)sFLjAKeyZ^u^|1ChS(=0MQ@#wW%px 4lH}q8iko z1&&i|aub? e=k%kWn5uMkBsyL-&K3&EAtf z>6{wR>x~1i!ksjcH4xxh_7V~H*T2D0=ocZLQFsEtBX4W3%~i`iJg4tR$eLfHmV?k@ zjV~|vvzz#QN(3G@1Iae@Yq ?(`UXy z_h(HCGu(CDIrg5q^Y)K5b@S8bMhBR+900PBe11QumIHs!sW6p{;=St;3zk*6Y}JMy zRw8hr9Zw>v8Gaw6sXfCE!kUgA|Iy_hIc~zB@|i{E!P!PrV9-!W)I&jO#YZ)D5Rjsb zdv{CL>3cW^!pX8&l3jCON~a}=g>$UPTIv7 #Q8+oUh}{r`eB zUW*0@xmr?9UjEP6Ob+aq0G*Z^!(PP*7<*3_c}F~d>eZrO6t!H=N4|nLKyjU$0^Em+ z@vR{X`w}i)6!7;5Jc=6vk{o`3wg}3+=RWUAMx|ykY-*ufagKaQ?ySB;1F6Hg2LNbK z9;*{a&HoqXv<+l+9~aD)>U~Grq2F$ad>WW)un`4jI>-%< v&G(DS`g zsw0eC9HFSzto;W}e2qHqdnDpK_SB!IfsICljaL=N{+7Fw*N1}0vWNQSaQ2;@o4ug& z!Wds78d!0ob`uZ`bmLRMx| |f}{L{Bcd(cc{KlW$+xFzXi@Z2zs9#(8Kh7V4QreJrZ z#Zbo`j#{jkx=#>H)``e9Q02LaC>&nvOY#DMHjSKUrV0guj8v+LqZ`cVITbLjOFevg z-GQb1yG3<&)T%B3h_ov@p2@R6#G`JHxZt&kS$?K1!}oLGBP%d@p47^iB+7JeQHy%( z@V{89Y7I-=Z==|#O%9L(HN~Ga f-Ov0n)!MXb zwD3Q=Mf*Wn`#z%oVhEKStEyhhTrdn9eOq~l)>dId>QTRVhS+@-&R9#gXZKZ>PBxd% zt~@D}R}qf&wO%?k;CUBEV#zssSdK(nAJo^t^IorCcsnY=XLP8c)A=+h=ovG4RH60^ z6>sTlIHJm8;IYgnk3I0q8;wt8as+)kJ@n#G@L`m>BCTd}xd)c0y?-
q>T|NMQuuG6NiQOW=%}2huuPGJ03fk4W$dYuOwa9`IpB6 zTeZc0Y>O26SATtn*IotnL}qoFLU2FZh&$=$ gaqkt{KfLzu+t~fdJjB$c9*C%7pH*_w`W5Fh>y`JqpDb%U-#Qk# zVJxi*KIrwJl}(&)qhXq6;+meT-> pi*hNlZS7QF8qJ{`N4x#GSt#5kCb@PPjr_epo$973r!4 zZ;HoI4pXKI?Wbr==k&WTDj8Sm %_$uU! zwaghH=fTvN=! tbKl5TG+H02OWy$^P&(2pkxa%#v=v}QC<8OS0iZ7|X z|Gx9VO@wyjv8}?sSY)^OJ)27#)MUX-bjgXbv`J2(0g>nI-giGu^!q9PHfP5cA2>ow zab4)0o7I;xAPIamhe}vxYkreKi%S~<;7Rd|WpPo59KPJ9^p8+kNoA*X!A5!ZjAz3Z zhYNnBQ7KB|!;A=27Sn_&nXl6PMDbyVo2t8wq$F&pbW;6vrMb7+1CmbmcTK9oi%PPh z*XzI=UZ`Co0#!-rgfM7}T*C8H&=$LBm`18HE{a~QE}QGTv#1x`_MeCa#VG2S)ooaK zK8zt!Gn`RWXnYD*$|%S8_9tWHa zp&P-& z%$LO+J7|;wu1L0uqTrFmFOmPEPbB;s }w<*p6N*73oW zsRN#lm1Jv;H8z{3dw;0a;fR5+3_l~NMbjsJm56Prpl79T)Y-~#M+m?i!S_~zyWk}@ z*=yLAL9+*UWB;Ku=Qk34Ip(J2;RtD$5$hP|PaaOAvN`=K?y#>!Rz$moJVVng3p|B4 z5d#sE+8>-9GS`gy7Ueb@i{~wG _h$%L@** j0@*Zq}wbeN-ieOfRD`7dg1scPi$w<|tzZ#WPWT#A+fm9}=v56?PF zlw*nHhhOq}oB{kuGO9B0A^) e^JW~ngkt=>TF(Jr(T02CS>d@I^}lw(fK4) zu%{w^`jYMutHT#ds-Q>qDhOwWzMrtML +o^5~mRsN#CwS?JV)i zE(Clkg|9L_cFWeh94Lj~1j$qp?W#aZS5g|$vFGl@xX$V4ZPmH^Y$OO&ny&MMGvC31 zUuf}Hb`IFv!)Zl5GM}?{4CeHKaPN^%Ugb~vaUu}4BvH0jcQ8s)2(vo=04})uI$ued zuB}|_sD4z$t)5{x^u3+Tx&r4NdL&}re+vcQP9= i{& z6uOk}-^lj6t@=@~`e<1OG1zR~{0NU+F0y@K+Fx0@wwBYc{|9_olism{IYNu8VTK8n zwaulc(DW^i@-VUu6SPdZ8_n~x_R8}&(b;g@hKseH=7O`*8=s5$M*122H&rbLttPa{ z?uA(ssiNA$iHonpXNQ$Xi-oZC-+~_NAgOq@{x-_Dh3le3sT@>&CbM3AL5lF(ngOHp z=|FOW54)w;oD39;=|_+;YPmOi&3}GHplYqI`dVl$on%kAK1$SzBb~L=XL)Z|riM|` zB92Htl6=~u;Z7%QGa=w;`-e=pTy^a0MY4( ?AiiutUOno^B3>N{C z$hQ KeaC9Ckp{_3!Vhgy^Vk0KFwi$VlN{GI(;N>;j(OPm*o=gUwcC& zuc5N`&&KI>4c9S&`CG8$9}Cr}pE6732hViY>rM1(ydSh=zqH;^L%r4zVAK<(^-O3R z5DQ%De=rYwbZtU+LPoWgMvjgbF(FqF;$2;iW6oh{Po1FL5cu+5>)Z $CFKH+SKaV#)ZEh%vpJ@l(c=kTK&3!;Fv2j(vnnrdDZd*(3s))(6wU2ctQ zP6X83XgPSPmPEFU)iCy$&5(kV1rL<0SpB}s(7@}3 A1jq*<_5bh8`fLNO1>>LM*|ieOnJH6deGNV zewgJ8SM0yWOsr>&@kQRs2>8X?3f^7W*gj0%EX_cPJM8vG3*Ce!-y1ETKzT$`sbB1w z<*Oz&qp^cpDZ7WoHpxSikIrl@gJ7SYUqK{AkP+c{$nOc-uACS}-jo#qYj&5;0sBqV zKvEoM2GhM$86fsO<&rZCkxN$^HFO^;o*pGz5RRxYo>d)qS;irpAVJlO{<(IB@LwWC zOps4kYF=cTCHEETx4eR2s@df3dbd2_8O_}ug|nw)G2r`&z92cxgc5b4gdZp3Y>xVS zvhDqPZpunf!LkEO-@FQ^p$I(c5}|B(908AHJEUJouL4MNI`2&aN2?n{Bf76f0eOsM z=Gc M&8E}N)FvZ ziRMf{jz7NVymd2K{b&XTqmn~BP MNRmzZ9wC)l2P~ zS?0BhjR*SC?x#k=yGVi}x|l4X#b4^U(X8DOBp^4=6?U8Q3twew5>0}_b!$pQzU}0V zdrwQ(=4ZyepLZrNX>OK`q^Boh$d>dUpzJ1)mRnaa>pYZffX*(?f;YqmadpAeMBxVD zqTR}_ `dIuXG`tKadNjg6=SVn3ayd3@G;BqGBwKAcW`LG zrZv&@ogPz+UgE{9n7Bs{nH!Xk0$@8A0HX=2uIWF1@z0G6=_jpaENks#@)+Ml!B5C( z^Z-Tm&&l@b_lHTNUeiq7+#5F|S-=)Tq$@YB6E`vay*kGLo{#Xm)wzZ`={EHB2$QPh ziY~E9HZjv{;A5Y?BKQL^;B)<#r +` )f=7;IQok*##F`?ES+?$j?*@&d zw)ANI `WMi3I1d>6|a%cBAjL#kAWyJ2}}VW)iPO>sUlp z#4Ooa(FQm1TrPBvtgj&a+DUqlFuiI)%x+6y7~Ss(%(DcYJ+`5PRrPxpwh6)VMDAR3 z>f_~444A3&@4Y$Pb7G)fG~V2xv`>Rk{TpD8Qi8A0Z-z7kh?~@q1ie)G^5t-%I#&4a z-{8Tbn+SBjR=M!oBNY(oq$erngJJk=rs@#iBF`r{1|M?4*;^>iubIIm!~qSj_T>b_ z?b?dhq=UFRy@`;))|+ZcUqdP3>DNEkJzp)4Os2dwysGw8yH_n<)FEg2FvOdrp%Xmc zDZIFy(U5sRD1ejsdR4gH@Gn}jUV+to`YXrc8ExQ(*2hen;YaEgL(}K^>Vy2_(ZZ}U zOOf5^u)nN6sq%>V(LMly+%+e*J61W!!o;(4qNEYHIG6aqn8Np^5 UuM`b1+F!Z8VF=S~Fwa(PU~&7DQpS)V29#;0$@2D>=P1LNwm257i#YC3ijG z=9aQ~xe|Q16d4Y*V2e&}so>2Gxo@>)-gX#_QkTpHq&Zh!&OS*1>&_jyC7wt&zzWxY zLUg?hmj8McOo>^Xu7DI;;@Jy@vuOuud@oDVS1*&n?a9XrMj;|0R_|2uW44>a2zdOy zZ000_ynjrQ$-2bln##Q1eTU3>%eniVBEg&mDoiB!>kC!1O!p+NNze@R$$DWwGxk!P zU1412V6ne~_>w`r)BVVJxS?>D-(6)s0a(7!^I(UffnbNFK{q2SriS&1@S|Q;`Ja34 zDt*OJL|M)vJ!wy(DlPvdm`tSB)+VFDYeLDyX#J)}uwLWEtT)!@wH1Dg!z#jM{Rabr z+#$$|wZ#cXe+i}iHEwOB8jt^;su3}JSWe+{@sYmLfZ$5h!qV3##rAi-H}1HrTzdyr zam!gaqZ|ZK_l-YoF=fo$K^?SwLEr+lzxna61zAzq`mER0HHOvsSbY5Ue(snqrjk0p zIhE0P_^u$P!1Z@v7-tM8Cs{BGHr6>M<@w|n?;E*GKA9M5;BAe*&+5%p@D<`iq_SeF zp!`AG&5Ia$p{G0|%Q~j{FzoEi+{ANn$X(ns`2mVK0D-mwzY)s+Rfb%WXHMmvil4R_ z5I@&$3(>%N-@;9aHy**>`%sLsIfh&P+$mw@#x$d(KOlhR+LHQwatuk=C&d9BDcHxo z!s>Dt1mf7QQ-UDe@IjIbSTaF6r5}3Ydv%A#t>M=YVbB$K P;G}N zW@;k9baZ;@!=5^bAN-t>DI%OEG;c?Y5+Gr`m2ZLX BpfT%RuUdT*n?llqfi$2tm7`am^N^c9(hhXITtY%; zq{Os)5`vKr@QuhU>9wA>idC@~JWuA7rtLfL68SKuG2V_OD+oK&7Q17X ;#;-tvl7nOB3tgxTiq^7o_H8c09c(c1R- zNOn!0`IKb+nS(tVD4n=J`K%ek(YEq|3r1U@QnfFvaipveRF&{Inf%|n*c(xyg`ZJN zCNkZ6bd1)pT!M N=P!6w#JFZhVbIPCg52`czYFd~ zw<6z$hc!?h`H`E A8!*0%L-%7P Yp!56V%LWVUoD 4eORz$1SWm^)eKd;@?3YDbVahaWe@+1GUTu6h=T-u$u`el$m zRH!gTdzsc}6lp(+W|tBY(Yz&j-KO-tolio;&Dhh3TA80aX*r+&%;?wU^a-Nc4~&w5 zZ<>^}^h3;UYXvzRNzM_Usi2hmNayZFoMtqXq}A110|l*6Ns8FX`4)Rh%G2@SF-yXW z>kp5@WFqsqRDwRm9A0ttt`hbbJvTo}13vQ#x&y6a4uIVUZ5JOZUN>s~jbI__DT{i2 z+<&5?eGlg9{OSxzySnK)#)arBh7>>f %Sg^g7&}^Eqq@*R|De*xs7#2^GH`jgYiDeDvW g K(;5XX;L 9h|ZCr{u zPizo mDexcP|d@ zvrPr5NYSX>+7X gmG2Ogp?~;b85ql !Wo5|=f#4XdSpZeM&so_9-u^V z3%wON8>{xxqIb$9QEivs-J~X=BAf{E 2!A;>JD*^d9)}A0up%$GlFHw3$KfUz}$>PLIPmaQ( zM}@YT?uv6tO&ka `-H2lnDK2iq zo6CyT_j^dK1cms6o5;sb7E1V< +z?mrQoz0*zdONNA0CW?Qx+H_UW{6R zpee{D=oJ{`_(r_J*p_m;;+45q^ZH9V@PksK1m$}~vLB3Yh$}j%l*^cl#4r {(~G_(>_6Cy##3)PbY3lwv+k7*u}d9--w=* zwMM<{$T(}msFmkZRd3#^=5Ou|h1;%o#j*A_PF7?WXJj)8v3KTiNL6KgG9(pYceg|7 zgneQX + + + +
•••• •••• •••• {lastFour}
+Expires {details.expirationMonth}/{details.expirationYear} {details.bank}
+{details.owner}
+ + ) +} + +export default CreditCard diff --git a/src/components/Random.jsx b/src/components/Random.jsx index b1cdf9f0b..b9c6cf8d1 100644 --- a/src/components/Random.jsx +++ b/src/components/Random.jsx @@ -1,7 +1,7 @@ function Random(props) { - const result = Math.floor(Math.random() * (props.max - props.min) + props.min);; + const result = Math.floor(Math.random() * (props.max - props.min) + props.min); return (+Random value between {props.min} and {props.max} is {result}
From 81c295549da21765c5881c18b1d602ded543cf43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CZuzana?= <“zuzana@getyourguide.com”> Date: Sun, 28 May 2023 21:58:05 +0200 Subject: [PATCH 06/26] Iteration 6 --- src/App.js | 9 +++++++++ src/components/Rating.jsx | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/components/Rating.jsx diff --git a/src/App.js b/src/App.js index b9da200db..82eead71e 100644 --- a/src/App.js +++ b/src/App.js @@ -4,6 +4,7 @@ import Greetings from './components/Greetings'; import Random from './components/Random'; import Boxcolor from './components/Boxcolor'; import CreditCard from './components/CreditCard'; +import Rating from './components/Rating'; function App() { const cardArray = [ { @@ -80,6 +81,14 @@ function App() { color="white" />+); } diff --git a/src/components/Rating.jsx b/src/components/Rating.jsx new file mode 100644 index 000000000..79c13e3a2 --- /dev/null +++ b/src/components/Rating.jsx @@ -0,0 +1,21 @@ + + +function Rating(stars) { + let averaged = Math.round(stars.children); + let starsdisplay = ""; + + if (averaged===0) {starsdisplay = "☆☆☆☆☆"} + if (averaged===1) {starsdisplay = "★☆☆☆☆"} + if (averaged===2) {starsdisplay = "★★☆☆☆"} + if (averaged===3) {starsdisplay = "★★★☆☆"} + if (averaged===4) {starsdisplay ="★★★★☆"} + if (averaged===5) {starsdisplay ="★★★★★"} + + return ( +0 +1.49 +1.5 +3 +4 +5 +++ ) +} + +export default Rating From 5cbd61f08cd0b6492a86c72d86602b1095e63a55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CZuzana?= <“zuzana@getyourguide.com”> Date: Mon, 29 May 2023 15:19:07 +0200 Subject: [PATCH 07/26] Iteration 7 --- src/App.css | 38 +++++++++++++++++++++++++++++++++++ src/App.js | 27 +++++++++++++++++++++++++ src/components/DriverCard.jsx | 22 ++++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 src/components/DriverCard.jsx diff --git a/src/App.css b/src/App.css index f1a2a6859..d8f483ed5 100644 --- a/src/App.css +++ b/src/App.css @@ -89,4 +89,42 @@ .smallercard{ font-size: 20px; margin: 0px; +} + +.driverdiv{ + background-color: #485cb4; + width: 650px; + height: 100px; + margin: 1%; + padding: 1%; + border-radius: 15px; + display: flex; + color: white; + flex-direction: row; + + +} + + +.imgcrop{ + width: 100px; + height: 100px; + /* position: relative; */ + overflow: hidden; + border-radius: 50%; + margin-left: 20%; +} + +.driverimg{ + /* display: inline; */ + height: 100%; +} + +.driveinfo{ + +} + +.driveinfo > p,h3{ + margin: 0; + padding: 0; } \ No newline at end of file diff --git a/src/App.js b/src/App.js index 82eead71e..62f0ed889 100644 --- a/src/App.js +++ b/src/App.js @@ -5,6 +5,7 @@ import Random from './components/Random'; import Boxcolor from './components/Boxcolor'; import CreditCard from './components/CreditCard'; import Rating from './components/Rating'; +import DriverCard from './components/DriverCard'; function App() { const cardArray = [ { @@ -88,6 +89,32 @@ function App() {{starsdisplay}
+3 4 5 + ++); diff --git a/src/components/DriverCard.jsx b/src/components/DriverCard.jsx new file mode 100644 index 000000000..2d477089e --- /dev/null +++ b/src/components/DriverCard.jsx @@ -0,0 +1,22 @@ +import React from 'react' +import Rating from './Rating' + +function DriverCard(drivercard) { + return ( ++ + + + + + + + ++ ) +} + +export default DriverCard From 231191b12a68ec1119da7f02e00463de1165d73b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CZuzana?= <“zuzana@getyourguide.com”> Date: Sat, 3 Jun 2023 13:30:25 +0200 Subject: [PATCH 08/26] Iteration 8 --- src/App.js | 7 +++---- src/components/LikeButton.jsx | 24 ++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 src/components/LikeButton.jsx diff --git a/src/App.js b/src/App.js index 62f0ed889..4be5a4c6e 100644 --- a/src/App.js +++ b/src/App.js @@ -6,10 +6,10 @@ import Boxcolor from './components/Boxcolor'; import CreditCard from './components/CreditCard'; import Rating from './components/Rating'; import DriverCard from './components/DriverCard'; +import LikeButton from "./components/LikeButton" function App() { const cardArray = [ { - // id: 1, lastName: "Delores", firstName:'Obrien', gender: 'female', @@ -18,7 +18,6 @@ function App() { picture: "https://randomuser.me/api/portraits/women/44.jpg"} , { - // id: 2, lastName: "Doe", firstName:'John', gender: 'male', @@ -111,8 +110,8 @@ function App() { }} /> - - + {/* Iteration 8 - Like Button */} ++++
++ + +{drivercard.name}
+{drivercard.rating} +{drivercard.car.model} - {drivercard.car.licensePlate}
+diff --git a/src/components/LikeButton.jsx b/src/components/LikeButton.jsx new file mode 100644 index 000000000..84ce365a7 --- /dev/null +++ b/src/components/LikeButton.jsx @@ -0,0 +1,24 @@ +import {useState} from "react"; + + + +function LikeButton() { + const [count, setCount] = useState(0); + + const colorsArray = ['purple','blue','green','yellow','orange','red']; + + const buttonCounter = () => { + return setCount(count+1); + } + + return ( + + ++ ) +} + +export default LikeButton From 7bfa12c3c70f25f97a9b7542421f56c37a2c1b5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CZuzana?= <“zuzana@getyourguide.com”> Date: Sat, 3 Jun 2023 13:52:47 +0200 Subject: [PATCH 09/26] Iteration 9 - Clickable Picture --- src/App.js | 7 +++++++ src/components/ClickablePicture.jsx | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 src/components/ClickablePicture.jsx diff --git a/src/App.js b/src/App.js index 4be5a4c6e..be76188b2 100644 --- a/src/App.js +++ b/src/App.js @@ -7,6 +7,7 @@ import CreditCard from './components/CreditCard'; import Rating from './components/Rating'; import DriverCard from './components/DriverCard'; import LikeButton from "./components/LikeButton" +import ClickablePicture from "./components/ClickablePicture" function App() { const cardArray = [ { @@ -113,6 +114,12 @@ function App() { {/* Iteration 8 - Like Button */}+ {/* Iteration 9 - Clickable image */} + + diff --git a/src/components/ClickablePicture.jsx b/src/components/ClickablePicture.jsx new file mode 100644 index 000000000..afee48ef1 --- /dev/null +++ b/src/components/ClickablePicture.jsx @@ -0,0 +1,16 @@ +import {useState} from "react"; + +function ClickablePicture({img, imgClicked}) { + const [isImageToggled,setIsImageToggled] = useState(false); + + const toggleImg = () => { + return setIsImageToggled(!isImageToggled); + } + return ( + ++ ) +} + +export default ClickablePicture From e5dad539ab5362d51ad2dbe6a388b2b5348d0862 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CZuzana?= <“zuzana@getyourguide.com”> Date: Sat, 3 Jun 2023 14:44:04 +0200 Subject: [PATCH 10/26] iteration 10 - dice --- src/App.js | 4 ++++ src/components/Dice.jsx | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/components/Dice.jsx diff --git a/src/App.js b/src/App.js index be76188b2..990d47dab 100644 --- a/src/App.js +++ b/src/App.js @@ -8,6 +8,7 @@ import Rating from './components/Rating'; import DriverCard from './components/DriverCard'; import LikeButton from "./components/LikeButton" import ClickablePicture from "./components/ClickablePicture" +import Dice from "./components/Dice" function App() { const cardArray = [ { @@ -120,6 +121,9 @@ function App() { imgClicked='https://www.akc.org/wp-content/uploads/2018/05/samoyed-mother-dog-with-puppy-outdoors.jpg' /> + {/* Iteration 10 - Dice */} ++
+ diff --git a/src/components/Dice.jsx b/src/components/Dice.jsx new file mode 100644 index 000000000..33593f94f --- /dev/null +++ b/src/components/Dice.jsx @@ -0,0 +1,33 @@ + +import {useState} from "react"; +import diceEmpty from "../assets/images/dice-empty.png"; +import dice1 from "../assets/images/dice1.png"; +import dice2 from "../assets/images/dice2.png"; +import dice3 from "../assets/images/dice3.png"; +import dice4 from "../assets/images/dice4.png"; +import dice5 from "../assets/images/dice5.png"; +import dice6 from "../assets/images/dice6.png"; + + +function Dice() { + const diceArray = [dice1, dice2, dice3, dice4, dice5, dice6]; + const [displayedDice, setDisplayedDice] = useState(dice1); + const [isDiceClicked, setIsDiceClicked] = useState(false); + + const isClicked = () => { + setIsDiceClicked(!isDiceClicked) + setDisplayedDice(diceEmpty); + setTimeout(() => { + setDisplayedDice(diceArray[Math.floor(Math.random() * diceArray.length)]) + }, 1000); + return displayedDice} + + return ( + ++ ) +} + +export default Dice + From 4536f24deb08b1c635bccc58061fa4f06df2b6ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CZuzana?= <“zuzana@getyourguide.com”> Date: Sat, 3 Jun 2023 15:08:55 +0200 Subject: [PATCH 11/26] iteration 10 - carousel --- src/App.js | 11 +++++++++++ src/components/Carousel.jsx | 17 +++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 src/components/Carousel.jsx diff --git a/src/App.js b/src/App.js index 990d47dab..9de5651e4 100644 --- a/src/App.js +++ b/src/App.js @@ -9,6 +9,7 @@ import DriverCard from './components/DriverCard'; import LikeButton from "./components/LikeButton" import ClickablePicture from "./components/ClickablePicture" import Dice from "./components/Dice" +import Carousel from "./components/Carousel" function App() { const cardArray = [ { @@ -124,6 +125,16 @@ function App() { {/* Iteration 10 - Dice */}+
+ {/* Iteration 11 - Carousel */} + + diff --git a/src/components/Carousel.jsx b/src/components/Carousel.jsx new file mode 100644 index 000000000..5878b8eb7 --- /dev/null +++ b/src/components/Carousel.jsx @@ -0,0 +1,17 @@ +import {useState} from "react"; + +function Carousel({images}) { + const [index, setIndex] = useState(0); + const goRight = () => {setIndex( (index + 1) % images.length-1) }; + const goLeft = () => { setIndex ( (index - 1 + images.length ) % images.length )}; + + return ( + + ++ ) +} + +export default Carousel From 00a2a5add3888edd10316c941a5a5c26b024c9e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CZuzana?= <“zuzana@getyourguide.com”> Date: Sat, 3 Jun 2023 15:41:18 +0200 Subject: [PATCH 12/26] Iteration 12 - NumbersTable --- src/App.css | 15 +++++++++++++++ src/App.js | 4 +++- src/components/NumbersTable.jsx | 19 +++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/components/NumbersTable.jsx diff --git a/src/App.css b/src/App.css index d8f483ed5..c70e3e48b 100644 --- a/src/App.css +++ b/src/App.css @@ -127,4 +127,19 @@ .driveinfo > p,h3{ margin: 0; padding: 0; +} + +.number{ + height: 100px; + width: 100px; + border: 2px black solid; + font-size: 30px; + text-align: center; + +} + +.numbersDiv{ + display: flex; + flex-wrap: wrap; + max-width: 550px; } \ No newline at end of file diff --git a/src/App.js b/src/App.js index 9de5651e4..8af127dda 100644 --- a/src/App.js +++ b/src/App.js @@ -10,6 +10,7 @@ import LikeButton from "./components/LikeButton" import ClickablePicture from "./components/ClickablePicture" import Dice from "./components/Dice" import Carousel from "./components/Carousel" +import NumbersTable from "./components/NumbersTable" function App() { const cardArray = [ { @@ -134,7 +135,8 @@ function App() { 'https://randomuser.me/api/portraits/men/2.jpg' ]} /> - + {/* Iteration 12 - NumbersTable */} ++ +
diff --git a/src/components/NumbersTable.jsx b/src/components/NumbersTable.jsx new file mode 100644 index 000000000..91f055b75 --- /dev/null +++ b/src/components/NumbersTable.jsx @@ -0,0 +1,19 @@ +import "../App.css" + +function NumbersTable({limit}) { + const numberArray = []; + for (let i = 1; i < limit; i++) { + numberArray.push(i); + } + + + return ( + + {numberArray.map((number) => ( ++ ); +}; + +export default NumbersTable From 72360fafa934b6fce5283fdd92e36d4ef1de8828 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CZuzana?= <“zuzana@getyourguide.com”> Date: Sat, 3 Jun 2023 16:25:44 +0200 Subject: [PATCH 13/26] Iteration 14 - Facebook --- src/App.css | 8 ++++++++ src/App.js | 10 +++++++++- src/components/Carousel.jsx | 2 +- src/components/FaceBook.jsx | 20 ++++++++++++++++++++ 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 src/components/FaceBook.jsx diff --git a/src/App.css b/src/App.css index c70e3e48b..43ed60380 100644 --- a/src/App.css +++ b/src/App.css @@ -142,4 +142,12 @@ display: flex; flex-wrap: wrap; max-width: 550px; +} + +.facebookdiv{ + border: 1px black solid; + display: flex; + flex-direction: row; + width: 500px; + height: 180px; } \ No newline at end of file diff --git a/src/App.js b/src/App.js index 8af127dda..931ffbbd6 100644 --- a/src/App.js +++ b/src/App.js @@ -11,6 +11,8 @@ import ClickablePicture from "./components/ClickablePicture" import Dice from "./components/Dice" import Carousel from "./components/Carousel" import NumbersTable from "./components/NumbersTable" +import FaceBook from "./components/FaceBook" +import profiles from "./data/berlin.json" function App() { const cardArray = [ { @@ -137,7 +139,13 @@ function App() { /> {/* Iteration 12 - NumbersTable */}{number}+ ))} +- + + {/* Iteration 13 - Facebook */} + {profiles.map(elem => { + return })} + + + ); diff --git a/src/components/Carousel.jsx b/src/components/Carousel.jsx index 5878b8eb7..cf8bdbe7a 100644 --- a/src/components/Carousel.jsx +++ b/src/components/Carousel.jsx @@ -2,7 +2,7 @@ import {useState} from "react"; function Carousel({images}) { const [index, setIndex] = useState(0); - const goRight = () => {setIndex( (index + 1) % images.length-1) }; + const goRight = () => {setIndex( (index + 1) % images.length) }; const goLeft = () => { setIndex ( (index - 1 + images.length ) % images.length )}; return ( diff --git a/src/components/FaceBook.jsx b/src/components/FaceBook.jsx new file mode 100644 index 000000000..a3d3a5548 --- /dev/null +++ b/src/components/FaceBook.jsx @@ -0,0 +1,20 @@ + + +function FaceBook({profile}) { + return ( + ++ ) +} + +export default FaceBook From 956eb746c4d5bbbf393f8aab9341a0518fb71958 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CZuzana?= <“zuzana@getyourguide.com”> Date: Sun, 4 Jun 2023 10:32:35 +0200 Subject: [PATCH 14/26] Iteration 14 - not yet finished --- src/App.js | 6 +++--- src/components/FaceBook.jsx | 36 +++++++++++++++++++-------------- src/components/FaceBookCard.jsx | 20 ++++++++++++++++++ 3 files changed, 44 insertions(+), 18 deletions(-) create mode 100644 src/components/FaceBookCard.jsx diff --git a/src/App.js b/src/App.js index 931ffbbd6..bd4e2a53a 100644 --- a/src/App.js +++ b/src/App.js @@ -12,7 +12,7 @@ import Dice from "./components/Dice" import Carousel from "./components/Carousel" import NumbersTable from "./components/NumbersTable" import FaceBook from "./components/FaceBook" -import profiles from "./data/berlin.json" + function App() { const cardArray = [ { @@ -141,8 +141,8 @@ function App() {+++
++ +First name: {profile.firstName}
+Last name: {profile.lastName}
+Country: {profile.country}
+Type: {profile.isStudent ? "Student" : "Teacher"}
+{/* Iteration 13 - Facebook */} - {profiles.map(elem => { - return })} + + diff --git a/src/components/FaceBook.jsx b/src/components/FaceBook.jsx index a3d3a5548..5032fe077 100644 --- a/src/components/FaceBook.jsx +++ b/src/components/FaceBook.jsx @@ -1,20 +1,26 @@ +import profiles from "../data/berlin.json" +import {useState} from "react"; +import FaceBookCard from "./FaceBookCard"; +function FaceBook() { + const [bgColor, setBgColor] = useState("#ff0000"); + + const uniqueCountries = profiles.filter((item, index) => { + return profiles.findIndex(obj => obj.country === item.country) === index; + }).map(item => item.country); -function FaceBook({profile}) { - return ( - -- ) + // const countryPicker = (country) => { + // if (country === profiles[i].country) { + // return setBgColor("#ff0000") + // }}; + + + return ( + <> + {/* {uniqueCountries.map(country => {return })} */} + {profiles.map (elem => {return---
--First name: {profile.firstName}
-Last name: {profile.lastName}
-Country: {profile.country}
-Type: {profile.isStudent ? "Student" : "Teacher"}
-})} + >) } -export default FaceBook +export default FaceBook \ No newline at end of file diff --git a/src/components/FaceBookCard.jsx b/src/components/FaceBookCard.jsx new file mode 100644 index 000000000..3e53f20c2 --- /dev/null +++ b/src/components/FaceBookCard.jsx @@ -0,0 +1,20 @@ + +function FaceBookCard({profile, bgColor}) { + return ( + ++ ) +} + +export default FaceBookCard From 4448f268e042b39bd76907c7059ffa8ce01e0615 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CZuzana?= <“zuzana@getyourguide.com”> Date: Sun, 4 Jun 2023 12:55:38 +0200 Subject: [PATCH 15/26] Iteration 15 - sign up page --- src/App.js | 6 +++-- src/components/FaceBook.jsx | 9 ++++--- src/components/SignupPage.jsx | 46 +++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 6 deletions(-) create mode 100644 src/components/SignupPage.jsx diff --git a/src/App.js b/src/App.js index bd4e2a53a..812133119 100644 --- a/src/App.js +++ b/src/App.js @@ -12,6 +12,7 @@ import Dice from "./components/Dice" import Carousel from "./components/Carousel" import NumbersTable from "./components/NumbersTable" import FaceBook from "./components/FaceBook" +import SignupPage from "./components/SignupPage" function App() { @@ -141,9 +142,10 @@ function App() {+++++
++First name: {profile.firstName}
+Last name: {profile.lastName}
+Country: {profile.country}
+Type: {profile.isStudent ? "Student" : "Teacher"}
+{/* Iteration 13 - Facebook */} - + {/* */} - + {/* Iteration 15 - Sign up page */} + diff --git a/src/components/FaceBook.jsx b/src/components/FaceBook.jsx index 5032fe077..60334fdca 100644 --- a/src/components/FaceBook.jsx +++ b/src/components/FaceBook.jsx @@ -5,9 +5,9 @@ import FaceBookCard from "./FaceBookCard"; function FaceBook() { const [bgColor, setBgColor] = useState("#ff0000"); - const uniqueCountries = profiles.filter((item, index) => { - return profiles.findIndex(obj => obj.country === item.country) === index; - }).map(item => item.country); + // const uniqueCountries = profiles.filter((item, index) => { + // return profiles.findIndex(obj => obj.country === item.country) === index; + // }).map(item => item.country); // const countryPicker = (country) => { @@ -18,8 +18,9 @@ function FaceBook() { return ( <> + Hi
{/* {uniqueCountries.map(country => {return })} */} - {profiles.map (elem => {return})} + {/* {profiles.map (elem => {return })} */} >) } diff --git a/src/components/SignupPage.jsx b/src/components/SignupPage.jsx new file mode 100644 index 000000000..47f796a50 --- /dev/null +++ b/src/components/SignupPage.jsx @@ -0,0 +1,46 @@ +import { useState } from "react" + + +function SignupPage() { + const [email, setEmail ] = useState(""); + const [password, setPassword ] = useState(""); + const [nationality, setNationality ] = useState(""); + const [newItem, setNewItem] = useState(""); + + + const handleSubmit = (event) => { + event.preventDefault(); + const newEntry = { + email: email, + password: password, + nationality: nationality + }; + setNewItem(newEntry); + // setEmail(""); + // setPassword(""); + // setNationality(""); + // setNewItem(""); + } + + return ( + <> + + + + {(newItem.nationality==="fr") ? "Bonjour" : (newItem.nationality==="de" ? "Hallo" : "Hello")}!
+Your email is {newItem.email}
+ + > + ) +} + +export default SignupPage From b5ef37a86c8916f95b9e3e3a89346225ab9ce29c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CZuzana?= <“zuzana@getyourguide.com”> Date: Sun, 4 Jun 2023 13:42:34 +0200 Subject: [PATCH 16/26] Iteration 16 - RGBColorPicker, almost finished --- src/App.js | 7 ++++- src/components/RGBColorPicker.jsx | 42 ++++++++++++++++++++++++++++ src/components/SignupPage.jsx | 16 +++++++---- src/components/SingleColorPicker.jsx | 21 ++++++++++++++ 4 files changed, 80 insertions(+), 6 deletions(-) create mode 100644 src/components/RGBColorPicker.jsx create mode 100644 src/components/SingleColorPicker.jsx diff --git a/src/App.js b/src/App.js index 812133119..ae5d50c5e 100644 --- a/src/App.js +++ b/src/App.js @@ -13,6 +13,8 @@ import Carousel from "./components/Carousel" import NumbersTable from "./components/NumbersTable" import FaceBook from "./components/FaceBook" import SignupPage from "./components/SignupPage" +import RGBColorPicker from "./components/RGBColorPicker" + function App() { @@ -38,7 +40,7 @@ function App() {diff --git a/src/components/RGBColorPicker.jsx b/src/components/RGBColorPicker.jsx new file mode 100644 index 000000000..f5331d28a --- /dev/null +++ b/src/components/RGBColorPicker.jsx @@ -0,0 +1,42 @@ + +import SingleColorPicker from "./SingleColorPicker" +import {useState} from "react"; + +function RGBColorPicker() { + const [rValue, setRValue] = useState(""); + const [gValue, setGValue] = useState(""); + const [bValue, setBValue] = useState(""); + + return ( + <> +{cardArray.map (card => { - return@@ -146,6 +148,9 @@ function App() { {/* Iteration 15 - Sign up page */}+ return } )} + + {/* Iteration 16 - RGBColorPicker */} + ++ + > + ) +} + +export default RGBColorPicker diff --git a/src/components/SignupPage.jsx b/src/components/SignupPage.jsx index 47f796a50..764676c81 100644 --- a/src/components/SignupPage.jsx +++ b/src/components/SignupPage.jsx @@ -26,18 +26,24 @@ function SignupPage() { <>{ setRValue(event.target.value)} } + /> + + { setGValue(event.target.value) } } + /> + + { setBValue(event.target.value) } } + /> + + + +++rgb({rValue},{gValue},{bValue})
{(newItem.nationality==="fr") ? "Bonjour" : (newItem.nationality==="de" ? "Hallo" : "Hello")}!
-Your email is {newItem.email}
+Your email is: {newItem.email}
+Your email is correct
> ) diff --git a/src/components/SingleColorPicker.jsx b/src/components/SingleColorPicker.jsx new file mode 100644 index 000000000..344b672d6 --- /dev/null +++ b/src/components/SingleColorPicker.jsx @@ -0,0 +1,21 @@ +import {useState} from "react"; + +function SingleColorPicker({color, value, onChange}) { +// const [backgroundColor, setBackgroundColor] = useState(""); +// if (color==="r") {setBackgroundColor("red")} + + return ( ++ + ++ ) +} + +export default SingleColorPicker From 400c4139079b9b151cafe609b765b3d7a0c3e2d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CZuzana?= <“zuzana@getyourguide.com”> Date: Mon, 5 Jun 2023 21:37:43 +0200 Subject: [PATCH 17/26] Fixed Facebook iteration and its color picker --- src/App.css | 48 +++-- src/App.js | 303 +++++++++++++++++--------------- src/components/Boxcolor.jsx | 4 +- src/components/FaceBook.jsx | 43 ++--- src/components/FaceBookCard.jsx | 29 +-- src/components/Greetings.jsx | 10 +- src/components/LikeButton.jsx | 29 +-- src/components/NumbersTable.jsx | 25 +-- src/components/Random.jsx | 4 +- 9 files changed, 258 insertions(+), 237 deletions(-) diff --git a/src/App.css b/src/App.css index 43ed60380..a79ed56ea 100644 --- a/src/App.css +++ b/src/App.css @@ -1,5 +1,6 @@ .App { /* text-align: center; */ + margin: 20px; } .App-logo { @@ -37,36 +38,34 @@ } } - -.cardDiv{ +.cardDiv { display: flex; flex-direction: row; padding: 20px; border: 1px solid black; - width: 400px; + width: 600px; margin: 20px; } -.cardImage{ +.cardImage { padding: 20px; } -.cardTextDiv{ +.cardTextDiv { text-align: left; padding: 5px; } -.langdiv{ +.langdiv { display: flex; flex-direction: row; padding: 20px; border: 1px solid black; width: 400px; margin: 20px; - } -.ccdiv{ +.ccdiv { width: 500px; height: 250px; margin: 14px; @@ -76,22 +75,22 @@ flex-direction: column; } -.cardlogo{ +.cardlogo { max-height: 60px; max-width: 60px; align-self: flex-end; } -.cardnumbers{ +.cardnumbers { font-size: 50px; } -.smallercard{ +.smallercard { font-size: 20px; margin: 0px; } -.driverdiv{ +.driverdiv { background-color: #485cb4; width: 650px; height: 100px; @@ -101,12 +100,9 @@ display: flex; color: white; flex-direction: row; - - } - -.imgcrop{ +.imgcrop { width: 100px; height: 100px; /* position: relative; */ @@ -115,39 +111,39 @@ margin-left: 20%; } -.driverimg{ +.driverimg { /* display: inline; */ height: 100%; } -.driveinfo{ - +.driveinfo { } -.driveinfo > p,h3{ +.driveinfo > p, +h3 { margin: 0; padding: 0; } -.number{ +.number { height: 100px; width: 100px; - border: 2px black solid; + border: 3px black solid; font-size: 30px; text-align: center; - } -.numbersDiv{ +.numbersDiv { display: flex; flex-wrap: wrap; max-width: 550px; + } -.facebookdiv{ +.facebookdiv { border: 1px black solid; display: flex; flex-direction: row; width: 500px; height: 180px; -} \ No newline at end of file +} diff --git a/src/App.js b/src/App.js index ae5d50c5e..2144649a7 100644 --- a/src/App.js +++ b/src/App.js @@ -6,155 +6,168 @@ import Boxcolor from './components/Boxcolor'; import CreditCard from './components/CreditCard'; import Rating from './components/Rating'; import DriverCard from './components/DriverCard'; -import LikeButton from "./components/LikeButton" -import ClickablePicture from "./components/ClickablePicture" -import Dice from "./components/Dice" -import Carousel from "./components/Carousel" -import NumbersTable from "./components/NumbersTable" -import FaceBook from "./components/FaceBook" -import SignupPage from "./components/SignupPage" -import RGBColorPicker from "./components/RGBColorPicker" +import LikeButton from './components/LikeButton'; +import ClickablePicture from './components/ClickablePicture'; +import Dice from './components/Dice'; +import Carousel from './components/Carousel'; +import NumbersTable from './components/NumbersTable'; +import FaceBook from './components/FaceBook'; +import SignupPage from './components/SignupPage'; +import RGBColorPicker from './components/RGBColorPicker'; +function App() { + const cardArray = [ + { + lastName: 'Delores', + firstName: 'Obrien', + gender: 'female', + height: 172, + birth: Date('1988-05-11'), + picture: 'https://randomuser.me/api/portraits/women/44.jpg', + }, + { + lastName: 'Doe', + firstName: 'John', + gender: 'male', + height: 178, + birth: Date('1992-07-14'), + picture: 'https://randomuser.me/api/portraits/men/44.jpg', + }, + ]; -function App() { - const cardArray = [ { - lastName: "Delores", - firstName:'Obrien', - gender: 'female', - height: 172, - birth: Date("1988-05-11"), - picture: "https://randomuser.me/api/portraits/women/44.jpg"} - -, { - lastName: "Doe", - firstName:'John', - gender: 'male', - height: 178, - birth: Date("1992-07-14"), - picture: "https://randomuser.me/api/portraits/men/44.jpg" -} ]; - - return ( -+ + ++ +-+- {cardArray.map (card => { - return-- } - )} - --Ludwig -François ---- - --- - --- - - - - --0 -1.49 -1.5 -3 -4 -5 ---- - - - {/* Iteration 8 - Like Button */} - - - {/* Iteration 9 - Clickable image */} - - - {/* Iteration 10 - Dice */} - - - {/* Iteration 11 - Carousel */} - - {/* Iteration 12 - NumbersTable */} - - - {/* Iteration 13 - Facebook */} - {/* */} - - {/* Iteration 15 - Sign up page */} - - - {/* Iteration 16 - RGBColorPicker */} - - - - + {/* Iteration 1 - IdCard */} +); } diff --git a/src/components/Boxcolor.jsx b/src/components/Boxcolor.jsx index d6cbe4a68..956fa198d 100644 --- a/src/components/Boxcolor.jsx +++ b/src/components/Boxcolor.jsx @@ -1,12 +1,10 @@ - - function Boxcolor(colors) { const color =`rgb(${colors.r},${colors.g},${colors.b})`; return (Iteration 1 - IdCard:
+ {cardArray.map((card) => { + return; + })} + + {/* Iteration 2 - Greetings */} + Iteration 2 - Greetings:
+Ludwig +François + + {/* Iteration 3 - Random */} +Iteration 3 - Random:
++ + + {/* Iteration 4 - Boxcolor */} + Iteration 4 - Boxcolor:
++ + + {/* Iteration 5 - CreditCard*/} + Iteration 5 - CreditCard:
++ + + + + + {/* Iteration 6 - Rating */} + Iteration 6 - Rating:
+0 +1.49 +1.5 +3 +4 +5 + + {/* Iteration 7 - DriverCard */} +Iteration 7 - DriverCard:
++ + + + {/* Iteration 8 - Like Button */} + Iteration 8 - Like Button:
++ + + {/* Iteration 9 - Clickable image */} + Iteration 9 - Clickable image:
++ + {/* Iteration 10 - Dice */} + Iteration 10 - Dice:
++ + {/* Iteration 11 - Carousel */} + Iteration 11 - Carousel:
++ + {/* Iteration 12 - NumbersTable */} + Iteration 12 - NumbersTable:
++ + {/* Iteration 13 - Facebook */} + Iteration 13 - Facebook:
++ + {/* Iteration 15 - Sign up page */} + Iteration 15 - Sign up page:
++ + {/* Iteration 16 - RGBColorPicker */} + IIteration 16 - RGBColorPicker:
++ ) } diff --git a/src/components/FaceBook.jsx b/src/components/FaceBook.jsx index 60334fdca..a16ed023b 100644 --- a/src/components/FaceBook.jsx +++ b/src/components/FaceBook.jsx @@ -1,27 +1,30 @@ -import profiles from "../data/berlin.json" -import {useState} from "react"; -import FaceBookCard from "./FaceBookCard"; +import profiles from '../data/berlin.json'; +import { useState } from 'react'; +import FaceBookCard from './FaceBookCard'; function FaceBook() { - const [bgColor, setBgColor] = useState("#ff0000"); - - // const uniqueCountries = profiles.filter((item, index) => { - // return profiles.findIndex(obj => obj.country === item.country) === index; - // }).map(item => item.country); + const [pickedCountry, setPickedCountry] = useState(""); + const uniqueCountries = profiles.filter((item, index) => { + return profiles.findIndex(obj => obj.country === item.country) === index; + }).map(item => item.country); - // const countryPicker = (country) => { - // if (country === profiles[i].country) { - // return setBgColor("#ff0000") - // }}; - + const countryPicker = (country)=>{ + setPickedCountry(country); + } - return ( - <> -Hello World!; + }}>Hello World!Hi
- {/* {uniqueCountries.map(country => {return })} */} - {/* {profiles.map (elem => {return})} */} - >) + return ( + <> + {/* */} + {uniqueCountries + .map(country => {return })} + {console.log(pickedCountry)} + {profiles + .map((elem) => { + return ; + })} + > + ); } -export default FaceBook \ No newline at end of file +export default FaceBook; \ No newline at end of file diff --git a/src/components/FaceBookCard.jsx b/src/components/FaceBookCard.jsx index 3e53f20c2..39d398e35 100644 --- a/src/components/FaceBookCard.jsx +++ b/src/components/FaceBookCard.jsx @@ -1,20 +1,21 @@ +function FaceBookCard({ profile, pickedCountry }) { + const bgColor = "lightblue" -function FaceBookCard({profile, bgColor}) { return ( -- ) + ); } -export default FaceBookCard +export default FaceBookCard; diff --git a/src/components/Greetings.jsx b/src/components/Greetings.jsx index 084b8af61..bed39ad4d 100644 --- a/src/components/Greetings.jsx +++ b/src/components/Greetings.jsx @@ -1,14 +1,16 @@ - function Greetings(props) { let language = props.lang let children = props.children let greeting = "" if(language === "de"){ greeting = "Hallo" - }else if(language === "fr"){ + } if(language === "fr"){ greeting = "Bonjour" + } if(language === "es"){ + greeting = "Hola" + } if(language === "en"){ + greeting = "Hello" } - return (-+---
--First name: {profile.firstName}
-Last name: {profile.lastName}
-Country: {profile.country}
-Type: {profile.isStudent ? "Student" : "Teacher"}
-++++
++First name: {profile.firstName}
+Last name: {profile.lastName}
+Country: {profile.country}
+Type: {profile.isStudent ? 'Student' : 'Teacher'}
+@@ -17,4 +19,4 @@ function Greetings(props) { ) } -export default Greetings +export default Greetings \ No newline at end of file diff --git a/src/components/LikeButton.jsx b/src/components/LikeButton.jsx index 84ce365a7..2407932b5 100644 --- a/src/components/LikeButton.jsx +++ b/src/components/LikeButton.jsx @@ -1,24 +1,29 @@ -import {useState} from "react"; - - +import { useState } from 'react'; function LikeButton() { const [count, setCount] = useState(0); - const colorsArray = ['purple','blue','green','yellow','orange','red']; + const colorsArray = ['purple', 'blue', 'green', 'yellow', 'orange', 'red']; const buttonCounter = () => { - return setCount(count+1); - } + return setCount(count + 1); + }; return ( --