From 0c3a3537b60a96d52b3e1bf6fc8f6a95527a2d7e Mon Sep 17 00:00:00 2001 From: tonyfages Date: Tue, 6 Feb 2024 13:17:20 +0100 Subject: [PATCH] tp3 --- JokesApp/App.tsx | 8 +- JokesApp/Theme.ts | 6 +- JokesApp/assets/add_icon.png | Bin 0 -> 604 bytes JokesApp/assets/eye_icon.png | Bin 0 -> 603 bytes JokesApp/assets/eye_off_icon.png | Bin 0 -> 744 bytes JokesApp/assets/favorite_icon.png | Bin 0 -> 1101 bytes JokesApp/assets/fire_icon.png | Bin 0 -> 502 bytes JokesApp/assets/home_icon.png | Bin 0 -> 705 bytes JokesApp/assets/list_icon.png | Bin 0 -> 265 bytes JokesApp/assets/logo.png | Bin 0 -> 15262 bytes JokesApp/assets/plain_favorite_icon.png | Bin 0 -> 805 bytes JokesApp/assets/settings_icon.png | Bin 0 -> 1425 bytes JokesApp/model/JokeStub.ts | 4 +- JokesApp/navigation/Navigation.tsx | 105 ++++++++ JokesApp/package-lock.json | 314 ++++++++++++++++++++++++ JokesApp/package.json | 4 + JokesApp/screens/ListJokeScreen.tsx | 9 +- 17 files changed, 438 insertions(+), 12 deletions(-) create mode 100644 JokesApp/assets/add_icon.png create mode 100644 JokesApp/assets/eye_icon.png create mode 100644 JokesApp/assets/eye_off_icon.png create mode 100644 JokesApp/assets/favorite_icon.png create mode 100644 JokesApp/assets/fire_icon.png create mode 100644 JokesApp/assets/home_icon.png create mode 100644 JokesApp/assets/list_icon.png create mode 100644 JokesApp/assets/logo.png create mode 100644 JokesApp/assets/plain_favorite_icon.png create mode 100644 JokesApp/assets/settings_icon.png create mode 100644 JokesApp/navigation/Navigation.tsx diff --git a/JokesApp/App.tsx b/JokesApp/App.tsx index a285936..2e66510 100644 --- a/JokesApp/App.tsx +++ b/JokesApp/App.tsx @@ -1,13 +1,15 @@ import {SafeAreaView, StatusBar, StyleSheet} from 'react-native'; import React from "react"; import {ListJokeScreen} from "./screens/ListJokeScreen"; +import {Navigation} from "./navigation/Navigation"; +import {darksalmonColor, indigo, purpleColor} from "./Theme"; export default function App() { return ( - + ); } @@ -19,7 +21,7 @@ const styles = StyleSheet.create({ title: { fontSize: 24, - color: 'darksalmon', + color: darksalmonColor, textAlign: 'center', marginVertical: 20, }, @@ -30,7 +32,7 @@ const styles = StyleSheet.create({ }, container: { flex: 1, - backgroundColor: 'rgba(14, 14, 44, 1)', + backgroundColor: indigo, }, }); diff --git a/JokesApp/Theme.ts b/JokesApp/Theme.ts index f8b1ad3..752b5c1 100644 --- a/JokesApp/Theme.ts +++ b/JokesApp/Theme.ts @@ -1 +1,5 @@ -export const indigo = "rgba(74, 74, 104, 1)" \ No newline at end of file +export const indigo = "rgba(14, 14, 44, 1)"; +export const purpleColor = "rgba(74, 74, 104, 1)"; +export const darksalmonColor = "rgba(233, 150, 122, 1)"; +export const greyColor = "rgba(140, 140, 161, 1)"; +export const whiteColor = "rgba(239, 239, 253, 1)"; \ No newline at end of file diff --git a/JokesApp/assets/add_icon.png b/JokesApp/assets/add_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a6a5adbcd548322d6d27a11ca9d5d73a6a4ca372 GIT binary patch literal 604 zcmV-i0;BzjP)93e{{ia%y(9#kp` zZRv(jieiuL`Nkgm8=?h+CmFZ){2;O1V74w3J7o?)hyfEZ)6L+ndsRxHj;*B&X}Sc& zG8}^_qS6Q@0EU-#BMGea6c$7|!TRpO@ju`a;82`4hyCsiO@W$s*Z|ve@#spB^?3M|3i4&ra3V>8pLe4krOaJlNwenuI=nMH{`3DCy9?4)-4DO9Eh=MA+cOtj3TRG zh>%`yLkq^j3I3N2>Y3}YWPLy$lw9oEu791`5}-Z2zdfIcAhAaLBkzkG=!GC#n6wX? zbqB++tC8i=Y2@nsvEQrH5AjEm3@Z<#P{ePMB;4k)3`~XyrX%yBf`C<$5mYTqbMgbg z1DlSvMp|UiR$b2oY96G*Nygfa{tLO@_McTQ-my}jORmjJUoY;U|3$79ax#@{x#+g>7bT|~!^4*9M%Ucs+6LAAYmiXjrHJn)VwftFw qKqVIyMW40kvx%gpTuobMe+3_km*0ee+#J3D0000u{QQL79Jg;H*JcW6fuJ0|l z-5~J8V)5<>>>a3_Sv%EX=F4<834qjkXJ`0<&wSbm>3eV}lR-ep)tbC42#6dD5&74# z0>K}%!6DT+ILhXoo!xxOQ!L(yEs1WDU8*FC?P)AZ0O0Io)19)ZPW93gSDGyknqR`6 zJFy{Cb`G*DBmgok1|w=VpW0Ja*YjE~$=kB5j>%Ukaua|k;?QIyeW4Xnulu1{!?^@t zL7HGUv?qGy&$+X%%6fi2DTP7rCje+x0FYYNC{7deT}Bz34v>gU78ZAwIrRqv>mVM}wGNsv!o1hy?uqXv1j1BNVK(@Z zgO&lBJ3y;M`V^NfEn6nzUhloVzkgUm4=@Rw2M>$PVR6~%3NpC@>t~b2%IjK0?jE$$ pMx)207e%TM@P2$Z(MJBYd;?yE?GaCLP;3AI002ovPDHLkV1m*40%-sM literal 0 HcmV?d00001 diff --git a/JokesApp/assets/eye_off_icon.png b/JokesApp/assets/eye_off_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..83d9b235327d4c28fc6e7a82317c006b6fd52044 GIT binary patch literal 744 zcmVP)Qr~M?Gn+45rAc@Oow3j4~XY6!mr(rypAeSq~Zf>r709^Hx zY;0`RIOj!SFykZiZ6kSgf4^ad5`>YUx+bc758+nrbQ+c5N6EjjEGy>APMx2>?rB;v zwzt>F1K2OFu9P@}FeKN|r5V5~>-yG7CR0cX6%f$Ef^~w+83$2MTtl$3Bta$2-&26# zwIFy<3GJyTy8e-T0qb7n9E_m?EW_DSFb-R|cf(WsmbDxscWDJF^(MHz@<@lupM0>|OP!6LAByFQ}pc$b8f z0MI!IjmJEKzsSVwEOmO$>VGnu?FkK`5S~kumFK~`R%lJl?R37zqfsRu zZ2Yt*(7LULiStr&F(U3_I6StNmQr18xQ5$=k4IZsNhR0TQoqj5`eq{WN|9yzCj!0m zD>*#e{)T=;P{Q@4mm~;GG(ce%HjEKb0M`8o)wD1}s(X^^4q|9}>@Lx7-Bn_m$ClrN z!2=B6m^XNtRV?4+<~R;B5!A%2Ph}7gdLxnb73_cG zrjLCEe6|k{cMH%9QPTo9Nm>NFq10$V==gZIWD;CM%a82?7_%PrQ`gtZhMR?%8_8g> zn(tzfCXDj!Z6h>3PL`7LhQTJg(l%JJQke)jk(Hbjg29_lc9OVt1sonlA64nWNi`Iw zP+qzp#U{tcrF=U{qm1q3y}mwY{)ZI52Kw)8AW+$N;?!nQ@+th;7Z;JD+3e1l(*)u0 zx++Nqz8H%-_0tPhDoV_4OHp5wW#fQZ%utJllfAF4v0kF z9<-A+(wWR&tdlO0#VC+(Y2nLdv%4XFjAT<#MUs&6LXz<4QD7CfuFNflhl_1^(ZvH; z0L~5Y0Be!RyC>jAbZm^-{F0@>Bhu+4x`-Si-=&8!J!VA!FTjW)gg3?-8s8oh2OCfM zwwqtNA(Q#+$@)%E6s1_J-L%@cvnt;&!H|G<mKQS;=|4P=7C1jRTQ zFeohI&x+N?ZBN@Th_=IoM7Q}ilHG&>gAeviNwRH>T|mLtZdJTiw_reM&aGN)vZhm5 zbPP{ORJdgjn+pqZ$GhAQ78md4Xd2zhWWGCUp#gFpz^vfz*Gi=E)bcI#*S?==k z=O5?;$S*M&$>N?VmQ2^-eJ;0`1FuAzWWUeMyr9_j%9JogmZk92)bnrjBH)vx>6h%W zC8IPD-EP}Wr(-FyxVWAtKjlP1Cf_?r-Y?s;B|AD^p%W8IjOrpzbhl75r1XPiiSpG> zx}K^~S^%v|mQ^`%SC(}niI1l_JeSLU$oeHo@SHu-gfy{OBbjb6KfmUh6HqmZr~BLw zNrGpKT5z_kS$&?Kiq(MmO+c)NdLc>ZIv=$xD;_YaKIQXpINtgOKt&?DMP4LH<*+i> zOT_5fq82EBtkoQAe=8OWIl@CVyBG9K)B?uYRHv^gXxS86aTR<(2A{xNDvh@l*e-<@ znm0}ye8M+T0+Ky*B8!&XLXsb#59kX~f}O0c8wpG>KEkj9!`BLb`bQXHgdxK}P$KkO T&8!ZG00000NkvXXu0mjfv~&EW literal 0 HcmV?d00001 diff --git a/JokesApp/assets/fire_icon.png b/JokesApp/assets/fire_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d40a2ddb0668fe0049e7742ee96c0bcfa415020f GIT binary patch literal 502 zcmV2|y=AZYnPv-nsL? z*71i>4$*KZ?=wU-1_*edb+)2CM(ORonH!*Q@_qrSuLN*#1qdTib@jeK*)LV^I1A~_ zdJUgS0Q_D@AXR_t2yb#I7oY@Cj0?TJT9Se}10mHJe+N!do@~07*qoM6N<$f-hIfqyPW_ literal 0 HcmV?d00001 diff --git a/JokesApp/assets/home_icon.png b/JokesApp/assets/home_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..86617ecafcdb5a454b529b1a1a0b0a97333c8f21 GIT binary patch literal 705 zcmV;y0zUnTP)xK~#7F?Upf2 z+dvdR|F=PMGG*-6RDguU&>+#FQU^02g}~5`o$7@uof@W&O{cCIDg~)S-LYF)LIxy< z9f>f*kdZMH1R?wQ2QeHc2gmjS0`5ttIREbKm%HzO0nlhPN-#k&l}go_ntJp4@Njn@ z6rxmgW#w}X0Go*Ler9F?4-R%apa^B6w32m_{3(QNm9k1iNwPs7-y*t{$s%OHwrho4 zZqT5u{uDFRJwCS9JDo-!Qj%JfOXl;Z9snzeao=Y(L@XEv)WtYs*kz1;Xty_dkb+dA z<#M%1A|we#L8TuAMy=g${vD2SXv`mJYA*<2F^z0u(NU5B!D6fRyDN^ZRMtv}hDWPe zfQ+(6lEM7Jrpfk1NyhktabA|>@R;x8JRc*3FMjCK(pm`;Ft#W!4S``1z2d^)B2)6)x^^pe^1^~Gfrtt1CS ztY}0b2g)&bFt9!*DK}hpZtmSb-#?qB`^^enW7S%Wk>rK^s~Dq|Y;0{c*C7MT%T+g` z_Wo$KHtM71Ohg64LQa=aIrJYgVw&L6uE_WPP7CvL)WKjxN%BHI#%XgGIJw-Z$4j8x zaYK|3$ma)p@@aFQAhHrKU$X3ttsj<|S7K~+wQAEgc~LjLtxtw>+os&!N!k~ZsNg>& zk4AI?)Z$X>4X=yT98iQ(QOY$p%(Y?uI-m%hqpH!Os(HHQiHGZx^prwfgF}}M_)$E)e-c@N{CS=(jv*C{Z?A0RJ!Bxz`p~-DQ9@BUKutD> zajCi|_hgmi3Kq4GiOLH*PK1hxd;VMh@#VSJ(rNQJ7#MCC>zdyFR#$fJSIqGhbu#nc z-(T}uu6CAbkY|rr+ry{N{|3L@R6I+*^6b`CPam6|U1K=8J0$qdT#K6>kK8W*s=ak* zyV>QN<`EvYE8UwJgdb&EKFZ8JBK%Ll|Focgw(>j%28%`fyQmdK II;Vst08}GmZ2$lO literal 0 HcmV?d00001 diff --git a/JokesApp/assets/logo.png b/JokesApp/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7128e7b7d44aa0bf2686ee3f49f7ecacea16a582 GIT binary patch literal 15262 zcmV;PJ7L6$P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O?Z$mRq-Wh5us|83OtP3}QHi?!No_58^__c(ab{O3=9e+Qr6-=9nM>v!Sj z>#ohOUqmh?p3~=_Hoo3JxL$tyz_;%R^XKcXef=i3uN!^+;@b_AzB%$@|2Rml$ItbU zzi!me=SA(!ejMtIpXc@U#y6C&pJeaW-*2LSyB{xPBTBpQt`y@*A$k6e>1zZ@KRFGa z1AoU9;^*o}DP{LA`LB@>ke{aa?b-Vu1N2jnzrAw5kN(+z9{f1I-jRM6%dadtUi|4V zLizLHzYzcM#p(Nq;?KW`E%ZN3=j-R*-R?b~*^OL@X#J`v@4iJxpW%&ERZj0?m51?D zcx~^|c{D%#B01YHKY6UsLnJHLg&cMm;fC{`S6B=&#}kd`7#GRWwU#XQxL(Gx9^pny zJ?+#;){4g|bt!%yOL*Vg-}kN1_~spWYYf~h@R7fKxPSM{zw>bSE`=y4n4~^@5*$^z z3`3dI-@J>2g!`4Z@&f$r@s)o6Lt#;>WU#z2Hzqjz{M=%e@LO%Am*>R$3eTUe2+sD` z4G0n6T^LMAWWd*uN~pnGj1~fMq%O#YZ}dr=WFV9hH-n5hr5c^Z7WLhH#=?7VEU`vi z2AfDkNi`X{>1mLxoD211xlu!-q>@W1wODDc^fGFyxt3b1Re{{FWZ8;UGi%muwA6Ad ztu|||^)`C!2@EW~cI&P8K1OtdFB;ry@czM-8E2Y#mRYCGHv1fl@>zM6RhO-{`Wid# zw1J6Tx9zt39w)d1Qk;CssmD$`{ftYk-E{LUw_dyL_B+03?JKK)c>Im5g|Do|mnpr^ zzGscA&g|PQg5abmXJjnqK*miOprE62=3B@)Ds#%2?~$e`kwF&a#_gbtk-~gJEH`}5 z-EW!urM$V)ekpJ9KV{A-b^jNcbENK%dHa*BZSmZC8T)jhV(Js!$L~)YF18_99RKwB z|LI11U*B%Cbz8SZ=av=>h|CsuOlL=HKBac+I=+o-W7_q~N8E1gkpSp6sU6>Tj%2Cs z9eO)y_Q)-4pBe87{j_;^FDH<`V>1OpI8*04W(e-4G!7-P`nf9*_E~o8p%3C6V2M#k zOo*g#gmX@yDY&yo-eXB4nC&URnK$fdKJ-=Sg%j&-nLdoG zTcUM(Cm_Yo+E%WoCPYL&H)enOV)*6E-B#f_XZWI=M#b3eDUMOY;61rg4`ti~bIiQv z($sDY4m4y6D@8(dmUF_!W;rciLEE^DX)FXJ zHRCkz2ru?pR;PQ&#G*17?NIfPXt{<41ZENFX(T0VUy{Hv5tU7f;>d;ck95?u^DOG1 z<$5!L8tBlz`L`dy4c)a*7~A)r8x!SM>jH%XxGFXjS67JW8rG+#$FJMwu6NkBK1x9MD3eda)jdv{ zOR?y!{XR775}J%UPGvQe_I4$%>d6enR&xPB(T0i1&&J440nd6D!ec$FOOQX+b##dSCB0H8zL=?1Btn$T)+z z##v)o2RdnJt8=Z|7mdP@GOhxN1AVm*NYlo<1XocZyPtk5Q-v+}9N9c^^94#l#n&|Y zVX9O{LY?$F*RCgBC2SPc8mT&K}-33O@b<iYz1 zkahWvRxcwNK$ssCa{`+vqg335ze`)N8-+vGsp=*2vxQj-#t(IW=!>*FJm42lT2@Nf zI|FA{NbMZn>grV?qFmY-Xn}&O1Oh6>21;gS>uDHi1{f_t;*4qtd4a4u3EHfOGIV$t zU~Vpy_T@g7Z<;X4KGYB+ttPv92vf~eS=!-bCd@~0RVU7Th&;hN#3&V!KMRF-Rq>7D`jnp$GMaKmD598?T@mfK8a;tEh#X@2Lb+p9l-AniJR@wT;Pc*#E2|cqgs=9+**;G zm42AF5*u66U5KxCv?@@Cu$SVl08sLy(T5-@86Oizaa_C0)QV{Q0~%*)V8@#KP?_wB z!(Fl=1z^X1P4!9v#rcHCgn%ue_$E%SsP{e*nkoHNnSU>L2=BIZDH?*XVNVDcr0jUw zo0$sMWg!vKzDsLmNr-Cz7ip#lf!fqDW@H#ON^}-D)0aq7ve{1!CjmDxPbDG(lcZ+td0Mu9r`Rg#HaoF0vt7N3ym=ODUxpV(Gfla z=rJ7FU?i8IqVYubP0R<*B*>_%02lxZfZ&{-0tyC_p)9n{K%VQ#!0#(2C+RDN9bU~&GsI@ehEdYQR zOt{4a^FnU$prjVEqDjxL{U)uYgxNk?6n=N#Ui|rUzyLxVc^()63r@!1Sh!*!Z~#9H zGR*C zDe{AqH;t3!N4ZJLg833DJ=-0?-!n*)`K@(ZB;FXo+mh!#)ddo|zOH~61)RG|$_h}8_zU#{{CG)* zSdyw6>?h%nSQ;r%P|P4Xj6Cim=dftDLc<~w$Wy};BY_e1Hj2?~Jz6x>?+Jm)BiK-x zjXr_LV~r&`yh}b=Y9&*l+mjLKD4mN%>lwLj$VIrvMp~JS8KP?VjhLz}0rCYE27xYz z+Q=w$3VfIrwiG3Nem706Y60thM%76O__t(O58u*a*AQAbNgCE++{lZ}8IVq7Bg{}2 zVqZ<(RqN2U06dogAQ50hfuB;^S$Y)UhMmEqswP1138!dgd`_%nls8)`%z}mkK3iM9 z?F}Nr23kWVvk{X3Lmx0AcS|rMrA3%$rm+!UWP&)WnqgYuUsjQc%jsJ-xYtj~OJzTp+-aeiSx( zBV)-437`b5zcm&L7c~mCp&fA$RKysJ5DIJ?bqpg>tDx+aUxLVxeq2VR?=}%p2Y$yM z46GP<2e)#qbMPS@z>5TkSLUK#p18g-nG}Me* z9-{v*LtapA0J%=YaO|wGYFmVShe|Muk4Fekn1PcErY=-1&tQ&tqn>+lBoHbVQ;tnd zifPy51n!6YgRtmo>Ip8YOPA3e7$HQ&rZyIGi&mgFa6JUNpr`;~s(K<*=w(t@C`aT! zMFnN%3^-D$F`<|mMteC!1jXl^(PJP9Nr%lSOi}^O#3RH_T2F*TaW5!CP)X|)G5c6h zlIU!R+tn#rqG*d>uZp%v7l(sbK@fai9n>BQjP&E;eD0`g^f(?BPCpp8VZjjv?289m zf$)lJK+UKnVHLiaM%^H!0eHAfMtvuWh>Lgbl6M&q?}{U{Q)uBIP`ha%0zV3b6T4_vh1e)xUR3l0gvd=R!}bU*?0D5WEubgAfEAaN z!!6KI6w_PRCGZ=vZ0MnwwR4V73f;fD)xu5bPOEL%gMtMK0}?_li#GuQXj?2o956H= z(kd^CS*0DP1K8M9L5jL;|s!0U&c{O!!u}W1x`o}Rd`^2_|vNU zz|6?=SMdnfj=Uiv2;DKYaAMY5#vNT~>2|H%*q$=NT1`6^Ja$aB6cuBy4d5yIg&7dL2s>bDFrMM86KX>_ z=k4g&QeiFarNQ~g#)Jw^O`97s@ED=Ji-=Zy!JB%u{f1$gA%rUZ z8^Ja$@D%Az{=i~R@UkE*7!k5KfB^(UaIkdRMZ=`#nAT)$e4v2Oqb&sj8G&1&+OBBe z2A3sW0YtvTb|Y%a&GzWKf%L#O+X2D`-t(69RQwb=N04}R$ranyfre|H7>(ijfZ ze;XLlC{ewFFt~)fENDHMK-w6&2F->6r64yJLn2O~sNdR*#dgxPC{vFt;}iYfKw_B= zm_coVZ-gc;(%%rMU{j^^8bI$}r?tPmyS4GXBl zEnF?#4ec1CN;;?n=yYUl6Wq`t!)a-_doExt<+k`7{li4aGX|jHCsOsF9hIC=Qm_BZ z0b#-7-DxEQyEic+23T{6jf45tMj*|B0wI`W$Oo+tfMJRs?KnyDXF=n>Yll8~+Zl&1 zhtAQ58&jbrr(qM=0thO=a7X&SQwBXGEK3oJ9{sCWW_`Gt*atp{qF=E5Ct_jmM zgKuEtSt62+2>Xl-BESq7)p?DvXiE@AMMY_Us#PS7+xziKLX2;%IpGNiX6_yMt7eEf zlmk)LAqc!qDx^evaV3iRJZ6*bWOVNGF<{{Xq;stGzuefMX^|TMKQpNfhAd!D2m{i} z+UCV$L1N4e-+N&@1V7z{S{XzYgMjG881{S|XnC^N){rVApyKc=LET9qJ!`%369cp! zkZTaUGZUo;77uR zDkv0e19PfwdYP6%oxvLj8pMV+sv5+`D7DFkD1&ZkvW)#f=9B+}KGpGpiXAwuXobgp z_Cv#xEu!xcW)xu$9(%A?oXHCHZIHMJAP`?2V2#LUt;4+?KYR}~UEQKOFn`?4l1?As zzPX{=5&eLVXZTf$nR{;(&em=>OauJBx<<%~gBsTC< zkHAR&CtGz82*kvox|tDL5qAD=qPT~hL>?D+;eO3UmKGB$P!|l0D_RH z06IgPgL1^tqoN{`urG%;N}sORe#f3V6^Baj+Lyux@F^O~v>=cB8+3-Lk+47r%%s)+ ztpjCkQIP8>MfhNT!X5@&YiUwvAkNWFN(r)XRUDJng(vnzzgLmzcq=^I6oQ=cpcVSF zNeLff6{XDahlD7QmyI(+I8yX@lPmzobIMOL|EyJTZ4%-jgNIOjAr#nC5~gJoY|O-~ z>Fr_q^&NXIAC+GG)9wM)qK!*I;%$h11MdR5XCyD$vNcqC4BkRI|EjJVA$)BEfmwjkELGLV^^)wqvg8phVQF7~Pl{oHq$) z&@9N6;RzuRK4JA}F`uH&6CSC1h5mLhHkt+B=9n@p3265oLk-db`gj{$KWi06Z()afkB6HoN~$=1n^#;*~dN?mbO ze_URRk*5e*MR#)hQ`>C|fC0<8K*XQ^j^3ij8oCFIQ@~&x3cyQxfZCu<%BOxCmgGqD zPdQ|w3k>5%{gk;#$oiqpHPC4o+M|zVH7${8fU^4pk9NTYzOw^ICnu~VuPS{Tyhtph zoRD4XgtAOUcEvy%yvW-|Z-B6Sr_P?N?DQ>$=;cF)`)D+yFQ_1hSO>7G?CfE9QXh$N zqHQZ$2-KU?X}KHop?Ol)ld$MOhE~XyOew<9=OX0L*4D!P=*T!tp)E+H>3pEg;IN|C zWN+_0LIi^`QV2Q|1%hgm2wmMWeO_3begTGYkWqV|v~AH^h5kUVcAs%ILk7f4@2QE6?ujq8*(^1=Y%|h+xQ|(?o(I9X~^f!j(Sg;_!AEE+T$7Jei;^V~i|;>;WVMV~)bsQT7&&?HVZ_lurPRqSil=@5luQ4{#3v z7kX8_q3SLj-WUrQQntVfVTprIta3P6u$0teI_y@M@=t)MT)R zZ^X_Z2chBSu?9L{3y{E9%vAa*>ogbQA~cH7&8)NYBW?X(HJNGY|D<@Ng@vK2uwYB# zg!gNmZ|m?8@~uHZK;f{Sn}Ofc^|HQB8_|dK+`QCkvwKlx&==Q(c13jL64^+P%{63B zs&*it8J(A0Xbh*tNF9%$M+tAmCNTzTjuytcV-^BBXGQ57CA%!0?G%L<44GDL)J@cn z4xggie{~V^ubWu2(E`t-2VVXz7uEOLRLip00D(*LqkwWLqi~Na&Km7Y-Iod zc$|HaJxIe)6opSyMUjd_D~LEmtWFk0MI5DyMX*rX3avVryz~#6G$bi5j)H5!!Joyd zgNw7S4z7YA_ygkX;H2mxCEk}5TEuwa@jlMG=kVTrfKV?p)$Eu6RLwGyv8b5Iu8Li+ z@Sz_;3}ZxMrXEi%rr}v%_tZ^w7vWjneScQ3k~10L6N%@TZdk+{#50?g&Uv3W#EOza zd`>)W&;^Mfxh}i>#<}3Iz%xTeIyp}qA{Gm6EVnT$8Y=NLaad6`$`>*&E1b7DtK}+d z-jlyDkkeLDT&FdJ7?u!60wQEoQ9>COBD8Cym`Kuj)WbjM_!H!k$yEX)#{w!)Avu2V zKlnXcGe0%yCIzBE=ZkHBi~?P|K%-{c-^aGyI05|6z?IhWSL(p*C+W487Cr*{wt6z{xM!JWopP%`BaHguds?WEc^PJ~A=Q-fYl`B`ST)A@P z%9Sfuu3Wit<;s;SSFT*S>OYBrbhAwl%&iu>`VWaX6BG(sLA@vp?a{KY{_O*|IbE=_ zR>#8^PfA$UTL?;19-!DHP(O=?@{7)On|%;>h3fZzo=L*LI^8YC&E15GR-t4hL%>w0 z!ukA=d4FH+Hvb^BSdOKAGZXI3_;CEe8CkqZA|R0u?_N50xZC`L46H48UGG6@7iD_9 zCpHRS=ge#j^%$R2OWfukWMGYw(~g%ISy>cccoIgeCL1ThxvhufpVsEHvk&8k9OV3NLkkk5lt{ESW z9Oes1`B1D_4!nx@X4t}hv*2?i}VyA3=_lSNB5-cCVl&V08w>lKZy{@sYwM4 zZI7s}_r42i8_3sD)=P|Euw4kDT#Ql~hkWGft_QcFjIr6kqzYnKRqZ$>A(YoT_<%y7 zdjja5es`tfz#5eO2&Vpo7hkQ$cB~OCD38_4QwdCO0L}F0@|$&VSdOiJC?;QB z>xLV0tObAHz1J5+#?Yp9ZzOCq=wU944G?_I2R zJW%agtQ_cvZ`Dn4l=_KO%mHD1{CkgWGpVDQ85OIkG4`gtj%Io>eZ~3sUALq7cb0y% zL@Zk5xL_Rt-THdnTn%*}LX`A&T$O0%BJ&l>L`Uk_iRs7i73TRjF5V{*`WBJ&Yr7Wcnia?wJOa^84(0FmB_z=`)A)J?$ zssE$=D=T)pU;#gVv*AHUIrFkT&nIHcH=d$gwqyDW(To8)m#kQw2=2QoxM}5NN2znA zP?v)6_OUVJC{`hP!jlk73$9pEKWM@F;Tv_20T=b<+|ja*`GHq4d_@D=A5pdy?fCEw zuO02rWsssp!9!L;{iJICV~v9@+#nF|_x0SJPBpc1%)obaHQie{=_HKOs{X{aOrWmS z4YjI$`2{BqILDT+mA0TMV`1Y7IG(L#ISiNOKZp4GScHNgUvMGmH>d#N_VTvz@Y8)8)q z)q_;)M;}-KW=R#^$}z+mcA>{B@kB>s#H$f1y-z8W1UzV#2hA$MR^eTP#$uHyeV$T` z&+3NFWbDusHphAQ^z78vck{t;8~?U;oK8i#cq z$86g$Xuv|qg;~aXkh+=nxW`}nh$T;L!LkmT!Zn*(c;@XoZk<1k>aqdklL>)1CJw7~ zaQYa}7EZIF^dmayowHG4>&v&52sk0Dx4=k0)3I@9JAeFpSExSL*4-W4@#hav18w<3 zg$1MHhjWFE;=1dOXm!J!SuDLsJ2&0uTbAPf7aG{r6s5Y{!?bZjIBufGkPFa%~U@3ZVOMXN*3Z*lRX(Pd!6kPSiWCa=FDPqfq3EqCKmG@eksO@a;a%@{X#=7<qWwn@?9nT z>)c5^{nj3)jw$B2@udSdxHT*RwIEl`nz2isb&AC}T zn-j2XD`r6EX~aT^WMstW9Ox0o28tOQDCYd(#3cvKhX)s&J+MHzH$b`QY4 z6@cLWaGvQvsSTADR3(zI<)cdNZr?-Kcg3-Vie4`+dBh%6U`3T^%`SsV5Q^Hg1>-c( zK}UlkVp~{_147`_bWX1v-X-kN&FKxK0C}tTAXETx343MI8m#jryPT>7)FiU9W|5f9 z+RZKOZH-{)lJUa|nLMg*349^PL&z}+J0_a2DUwkN^f-FJhFI$6Q!09syz#1)xnw^# z&U@3ot)7bXR%Tm$gjd(Kvtd_=#&(NP#KP$zZ2nr)9&SH&b`Nj31qGh~O96GgbSDaE z(vv?Myvfnnm>Bqa2W)#?kUQ^RPu;$7m#+L@PO0I#xs&#H>%A-N7;K1E@j<--6rCkn5*qY0?!>F-VLac)_%owm-* zocsdasW}cOH#Klt!)^)_36zXHBlOTW#kJQq<{GS=1xS_R9U(Zc zr@!xQO=Jv}6oN}er3j0aS#Vqg{3*J@J$=X)hzr=^fjuUi*4gd44?bVpBUAt{z1zU~ zvxhTwSob(uOzA9Zo5{9#<}(7el)PD4!>)ot=57CAWzjWPoR=?!;Bp3*Q0iHP=nCKrEV8xWq|7$swW~*;W zp1T8u{OZ`*h`tQT*jKjaiuL~*u{R+AVxq!iejYp`;<#9nQ=ttirAen19W@@l#Vvp?3`MJ2p=n3K?> zVleF!MP3pT-Y7`siKS3SB92efG35TgkBhgVVb*_=C#9-#s#GR%WeLDKoJHG6sE6*GK$xW4?= zj2DXt)O+~=RnEZz@Ri5^sD%38Ox{P^iXZ+5n$F=pb+Mf~il4@BduZn-u6XllZdv;p zPww8v?r<=fv={9CW{R~a^GjDzqqn8AR!Zvfm*k1^qDooEsyk2BrFuPWci3NLAm1r~ zeSLHSy!>thu|&^v#sL}Qn({X|&A*+Y`$v!p6hgeJkeBMGRezs6 zQr^^6RO@dGM54x%2ysSl#~HpN^uw*)ZVPzV4~*h6G}s|PmqoR3}~3GwKz z&8%tJOJg*340B9%fEzEK!o-p3Yf&VW=6ocFmyH{DPCI$1yeilkdiR$#LRl+;VLh5y z%}CZ7JzOOOyj=ht8HOHe5^#LD=Wi?_;GczEy2G}3jGz@`xUcX)SEqoj!B(E$Q_Cxj z9}%;=Td7}OJCo_-O47NU>&1ktrjw`2t2*xmGj6W49loegJx-!Jb^<%=LK&${pMq06 zlOw!zDKTSX$>|%B=6c754_s?=u$Ajqzr-~wU*xXMYl&Fafj4UQwGwXe_|>pHhsGhO4FuaD>6TV`|i ziPado;F!_HoIWF?6zUcE3|8LOt`4pJ`H4cQhf!*D%BVp>37Vd#1=k{y&Fe#a|IxQe z*aw~Zkp+b;I`&j5hj?IkB54T^?M*EQL(kw{SIR=FsrkHDPu}igUvR>$t8Arx2|>#8 z(urti{=Tk0hlwZp_`lcBqO|ZJ{JTOyZdvy#?Z>xvg9^wDDgYtYasQsJuEjbGg;)M; z1k%}v(7Mgu8s5TBV;{nPRef`WMN8gi*WS>9-;Em<;1}1-?0e-KsTPW{S1-=z=a%_= zb87W%ep^L;Y+EtE<8+T7S+NkxvGW?N>T(}Hz4~~n%MZQ)+xB$wv%h?RW%tETRJ$>X zAINuukQWxK{!d>Vt#tc(lsH{T3WQRdvBbUpDYHH!5Vsz@TZz;>U82;Q;lcEmIy3yPvscd zb-F_!Gy^FQb|a>*=*Vw)*#~Xe9pp!g*U}MAT3@fJvE&D{DG6klLZxUXX3r4Q7VgUT zXU%C>xO3@Q$4DU_NCg!@BDhb+8f&|KyULE^*zp6?JBe5)O6C7fZ4-tUvhbpb=vwkc z(WJm@W|bRu%Rqn%a-8U=JK7)871T_0?88$w4DpG%Hsx3-$3{pUp>$%QR=k0-ydRHz zenu5uLu37pR?eDPojF*FHH^RVKDcTiaFx4OXjuBC>5fW#kjb&$$}t#4LwbD-p_!Pz zB8+~nkDec+7_kSF&xui2ZXYPOoU^XbCXsRdQ6~{k`#LK-Ml95f6%QS4SUD*B{DA~j z&cISi2?6J4e3M3I5q2pg0tY)0#<3IqlVX!wwPA~E#KZ;f4YV82iI3I%(D{>5>GRwn zxjbF>7iDyu=`Tw5?#e;gF_aTWNF(_(5O!YeYJ@wH&UeJ51%DlgZ$wVOO2p%1GWG8C zf>J~VCAc-y-+hNwl^j7TI}TDqN&_MFfdJL}NO6@Iw_x=^HMKeE3WXFIS3uJ<$i0$M z!|vdC6~&H+_J=C+G(4fypJ)z$PK>*9z(SR~aD#)$)M91gB_&6KB4cxKz={ch z5c>Y^Qsi!sEU7IhqeM9Y%TjWao?%gxM0*o@L1~YhLmJ+G+AZx+$ddha z5-zDDKK^(As1wBVNarb9R^2aVEk0^s$~jmgyu};pqir1sGTOm1Qnv-^EkO4cV3t-N zaOO3`?C!Alo3G;}{V>Nm*d0r`-z^o%|D@>RrV6QTLMVk2ohX6`Iza70YMX%u5^4(* zulzs=6i2yoHU{7Gz}bHmh;L*)+AvIf!zLpQFP?%@q?SLUJSDZWjLFx(gsa>|-gT+p z(nqD4&Z|j=`$D?Af;ztm~6yuoKwf+-!d7#G^zScMz<7kB)6? z2{&xRiY6D3+EVE*Qn?H_d`z{{Zc)PeM^DAqdQ-fk34i6-BYMA)#vMc&wsk3~l;~(A zy0;eJ&@p%`$9K3$<=A2YRL_6*X#v0MljZ1-wT0P$+}23AZga{yUCOZuH*BS2(?7?$ zNaX=o0G20o6YzSr=V|7VT|^OX*qU}NqaBU>MBR3V+a2ZuSR*cZD{{})=T8@izh!ft zx2)#K!5`_wj-)T;s9<=*IO9|ot2|kyvuF{{o^bPgA-Ekx+9FuGH-K4KaReRqNakOt zlp|fN@@VxZw=`r&H? zYv0ET^PII_2vaNQOTo!XAa!o=J6;w>MBuWB4J#fIjw_RMR=YRay6vC0#$cKqS2 z&p0@L0V*6jLAY@@1yv)F#Y5?aP#>poqWg9cuIr)Hfl@^G?IzYzkH2Ojok<3F=!r`6D`Ok%1ta9vQb*#9kTrVhoNZ0g|uFi6tP{YoY!~4FZv0ITKDvP+6 zvf@~wHmq=aR(bPEsz+R;@&GJ5Dt?1tve(;viY?Zt+>}cc=}I|R$u8l)@_Sy}UPCWL&5-_C{j+H<&GB3I&O)t{p!-+*cl_yb(uxTf5&Gx+T zn?D<-1xmgpHT@i=#4v$+KOS$tzF@}9bpsu&oaAFQKRo9gY@X|en&S}c>_`EIhmvtq zm1cScfTo+6{_N_#$J_T3tbPAe=@upGyF)H}Hsf7Qn^(;LOwq*8+$p4SMz{HQ$L>sY z?3wQS%%UA`SD3YP#kDDKMoN4s{4F~cT@w$sogoq10Bk#vb$4hMSK_ap@M&19hbo%I z?=w4AiI(MaZXpqTIwe%eemkHCs;_f>tZWA~ai9^w?MEo19XKWXTB z_r2;bA37DqBPf*&oMtIsS-w@o~j%cxm?`vOxhvm`iCzzTb9p#N-2Jh zLrHI83?W6i3s$z>Ac^A@RQGm_$MoPay&yzLmtvk+w8#Mv6K;qFjFFcK!8a4JNS)(k zztx=PDWGV=ObSL!O&Mj+a0nPyin}W>d-?+L`B&23MD3r>@K!nYqrkr$2!RBfdcM5v z)Vg40>(n`%mi8DS@Or)YyxvDfUH$T!E`OV~FcCQUj=zXVY^EKLE6_wx0eTYub*&*<@CXzSTVLhR5?| z2l{~tmQux;q__)3W69G-#wjS#V9R%%j%I>;wj-p587RgqEX6D+LHGL6JRT4lLV$9d zWSOHxqRnyawbJALn+y~^<(+cF&ZgJTI!8l2n=%w5IKvR0Dnoo$bvH`Y$5zai)` z)l~|9)7G;4ha=AZuL#`8(WE0D$7)_ScRi@784&nR`Mk$Z$>f?l?)gHsL!uUXFFTnm zWh782K>Xem_Roi3{mSl7gbzgR;xnIsu0D~bX?Q$d4BbE>=2y&H(PK&M*2gX?aiZcW zV0JIh_guZU`GRSed>H2_)R7N2ptfar=*G;S!unD=sP@N^P|86lapTwpFJAXasFLuZ z6!KT>cg&?o#?}G_g&6x&X$0#2mgRHq-o140@a`|pS7xiISlt^`0@f!I;kidER5|Gi zgL^dIIpP-UMX9e4@Xs{xJy7zs6)$9Z zO`p$OSr{n7@AqSx=Kdlcslkz&xIGgmdDNAs{<~oq>(kt)AHk^z@gC*7Wd&lQc(vPAPSGt8b+GY5CV4|1pC^ z;%In?=4Er91J237WLV|%9?v>Ct6{~Qp+<~lz?prxy>_A0on@Ck{woHNsQTvtg&q4vFCtVh+tD@Z>&fF%M8svd9Xp1lTqQP6T%?l^;uH#4f?R{ z?f!}I#p>aU?`yXcXDFEGAg3wRXrKfE0<~8;Vw05eB@vH5R5t&~S_Y|(60qc(BE!`? zO7YplvW}NLVgoPk|8aFRcZKD_@~04FH2ot4ZmA&`tPHKl!o>+t_ho3Y-g2AW1uOGD zz0>$9X|fKKQelL1x7+M4SQ)GMsz+Lc;+OQYR9Xmr-Iq9-t3LE1N81DK`|Fp_7E=5I z#LPpy`wykEeo%VZlTWx!?t*n#YJd2`@s84Kl(1XNE;;(==3KdQ<;s;SSFT*Sa^=dE kD_5>uxpL*oRi5bo1BTQ$zw#@uY5)KL07*qoM6N<$f)HwS00000 literal 0 HcmV?d00001 diff --git a/JokesApp/assets/plain_favorite_icon.png b/JokesApp/assets/plain_favorite_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c8d8d80e4208834f6455bbbecbe8539fa6abb2cf GIT binary patch literal 805 zcmV+=1KRwFP)kKxGWJx4Z5@uuo6fXzUz*!UY^PlzA+k4ge_u_54|t6 zU=^Xl0=|K_0(=p$Mu(vi3!RlZqR^{eMhKw}^Bph&5gLQ>FnyBNw=f!t9Qm477x@oC ze+tu>8(d=QCL#H4jR$HEC!?62SV^z@v$3yiTciNN?*dnIHIcIkB0i6|u0Qnx;+v8l zw#+f^;XeK{`T1I1w`5Tn@dG%FO!ATjjYYe)k70@A8`uNfZVVs2E!@t_8jDKgvj1If ziRm3g)n)D0BYOpV0zZslby9R{v}lBKPjU-;f{fHwmo-A&6S)O@ z!r#g0r@E{WdX&!h5vc_ZLqOMyZglA|DZujJFg#kTEY>Xv<eNvjHL9w&=G7VCAd zCuPhMNVxMG0D1I96PDI%(-j&@mw0Ts`%i#@k`rs|wHaRc!DO)_B6rvk2viBCN?(lI zP3YA!O`a}9VTvSV~_PQb)l}YJI?=28@2{@Mt7sQSuaze;%-$YN?c3`8;3e< z!eT~wk{ZkDa<|N5RgWanj4*732a!gHXA#Rn1)CFVPo%(>P{I0Q?TZxHjz?#AEMI7~ z12#*CU)vQaux-&ff67_^)H7|8<+R#3XSc%2Lg)PYnrWE5rXaCKAa#|1HCQ_pdGW5u z-vL<8s9kuRbwvs`k~1BjUFCJf63YdW#WZYywYOf)@7hI{k(3j^iInrle7ECts~4xe jZyBpEfCmm7*fswE;ME{~3f5Dw00000NkvXXu0mjflsaF+ literal 0 HcmV?d00001 diff --git a/JokesApp/assets/settings_icon.png b/JokesApp/assets/settings_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..db5181043491295d5bf98276edf19f3aa5bf18d8 GIT binary patch literal 1425 zcmV;C1#bF@P)R0-jo+JMK^P(toOKwb zadC0j(T!*{YF#W-hgR1`0xV1vn##i5SrF((jfD$fjLhb8<*Zl`p{Az~N-19%hO^Ga zq%<0D-yWRs-M4T3vLYc{A_8!aYxuHQS?N{qbC=KZ`BD+HUqF7=wq+ag_rols4W_40 zcM67KAH)9u1Agd0d&2TGNNs{Z6~gyK4B(?HAX}ZB&mhEY2Xb?G(gooy$ZN$W>PGVw zNvc3mUyA2NXkd*|jD_mw=Lgqf4(R5q_2emZZ{6OmthQRUZY-iO3-e+T8e0uB$1;)6 z|AJskeT3y|=jTVe{`V>W1Lc>Zj$3^3;fc5-eERg^>!U|MGuXLA~}z0GVy$@3~P#s~s= zsxB~sC+rlUrN2O;D#A$?aj{0DR52*0Hk)tGMkBe!F_8BvLRJ+dz1+R+e;-KHG}A2% zrf*eXwwz8lw^xj7U0%L9(~aRy!!iH)?krr_pzG9oz05{XAO{j<^rh38vLfTGY2?$7 z))6o*5drKvZM9A6-iw#+?Vip(w87Nx_p^$q46S&$XNw4^>PZh2JzceCMmsK$C<6%^ zsPZ1>IMEZJHlyoIY7=C&)%|cN|Kt^Z{90EE&Jgv|4TQgRtD}z46KIh{m>)AR>7U37 zHQgBcG1tOvF`e!`7IBEOy-<-Sb5SMS{rj1HrV^O$G@t+V#VpAZ2#!m|4qBDa#Lu;m z!X92;9t8&GR37!3HPnU0D8Z9+pw%l?s|q*5WmXm2)TGx_CEJpxG-{e^SMYa}VITn{ z=T(?)+YKxh$7SwPG^Z}z%nNgxXr_%8gDEK|CidBwgzLD}MMBWuVbScnchfb;ltxwc zGLGbOl16M%xUP3>n$C>B&jb_p=3RD-ZX*eXKx(`#qUhM4kX;vZ zq_c%v5vDSBjB%d6zr200000NkvXXu0mjfNMp3$ literal 0 HcmV?d00001 diff --git a/JokesApp/model/JokeStub.ts b/JokesApp/model/JokeStub.ts index f2cdf4a..e5ce36e 100644 --- a/JokesApp/model/JokeStub.ts +++ b/JokesApp/model/JokeStub.ts @@ -3,9 +3,9 @@ import {SampleJoke} from "./SampleJoke"; // Stub permettant de stocker les différentes blagues de différents types export class JokeStub { // Données JSON pour les CustomJokes - public static customJokes = '[{"type":"custom", "setup":"Quel jour les poules ont-elles l anus dilaté au maximum ?", "punchline":"Le jour où elles passent du coq à l âne.", "image":"http://placekitten.com/200/300", "id":"id1"}, {"type":"custom", "setup":"Savez-vous comment on appelle le sexe de Michael Jackson ???", "punchline":"Vérité ! Car la vérité sort toujours de la bouche des enfants .", "image":"http://placekitten.com/200/300", "id":"id2"}]'; + public static customJokes = `[{"type":"custom", "setup":"Comment est-ce qu'on appelle un boomerang qui ne revient pas ?", "punchline":"Un chat disparu.", "image":"http://placekitten.com/200/300", "id":"id3"}, {"type":"custom", "setup":"Que dit un aveugle lorsqu'on lui donne du papier de verre ?", "punchline":"C'est écrit tout petit.", "image":"http://placekitten.com/200/300", "id":"id4"}, {"type":"custom", "setup":"Pourquoi la petite fille tombe-t-elle de la balançoire ?", "punchline":"Parce qu'elle n'a pas de bras.", "image":"http://placekitten.com/200/300", "id":"id5"}, {"type":"custom", "setup":"Qu'est-ce qui est pire qu'un bébé dans une poubelle ?", "punchline":"Un bébé dans deux poubelles.", "image":"http://placekitten.com/200/300", "id":"id6"}, {"type":"custom", "setup":"Grâce à quoi peut-on enlever le chewing-gum dans les cheveux ?", "punchline":"Le cancer.", "image":"http://placekitten.com/200/300", "id":"id7"}, {"type":"custom", "setup":"Qu'est-ce qui est mieux que gagner une médaille d'or aux Jeux Paralympiques ?", "punchline":"Marcher.", "image":"http://placekitten.com/200/300", "id":"id8"}, {"type":"custom", "setup":"Quelle partie du légume ne passe pas dans le mixeur ?", "punchline":"La chaise roulante.", "image":"http://placekitten.com/200/300", "id":"id9"}, {"type":"custom", "setup":"Comment reconnaît-on une lettre envoyée par un lépreux ?", "punchline":"La langue est collée au timbre.", "image":"http://placekitten.com/200/300", "id":"id10"}, {"type":"custom", "setup":"Que faire quand on trouve un épileptique en crise dans une baignoire ?", "punchline":"Ajouter de la lessive et y jeter son linge sale.", "image":"http://placekitten.com/200/300", "id":"id11"}, {"type":"custom", "setup":"Comment sortir un bébé d'un mixeur ?", "punchline":"Avec une paille.", "image":"http://placekitten.com/200/300", "id":"id12"}, {"type":"custom", "setup":"Qu'est-ce qui a deux pattes et qui saigne ?", "punchline":"Un demi-chien.", "image":"http://placekitten.com/200/300", "id":"id13"}]`; // Données JSON pour les SampleJokes - public static sampleJokes = '[{"type":"sample", "setup":"Que dit un escargot quand il croise une limace ?", "punchline":"Oh la belle décapotable ", "image":"http://placekitten.com/200/300", "id":"id1"}, {"type":"sample", "setup":"Qu est ce qui n est pas un steak ?", "punchline":"Une pastèque.", "image":"http://placekitten.com/200/300", "id":"id2"}]'; + public static sampleJokes = `[{"type":"sample", "setup":"Que dit un escargot quand il croise une limace ?", "punchline":"Oh la belle décapotable", "image":"http://placekitten.com/200/300", "id":"id1"}, {"type":"sample", "setup":"Qu'est-ce qui est vert et qui porte une cape ?", "punchline":"Un concombre imitant Super Tomate.", "image":"http://placekitten.com/200/300", "id":"id2"}, {"type":"sample", "setup":"Vous connaissez l’histoire du petit-déjeuner ?", "punchline":"Pas de bol !", "image":"http://placekitten.com/200/300", "id":"id3"}, {"type":"sample", "setup":"Connaissez-vous l’histoire du pingouin qui respirait par les fesses ?", "punchline":"Un beau jour, il s’assoit sur une chaise et meurt.", "image":"http://placekitten.com/200/300", "id":"id4"}, {"type":"sample", "setup":"Est-ce que vous connaissez l’histoire du poil ?", "punchline":"Avant, il était bien. Maintenant, il est pubien.", "image":"http://placekitten.com/200/300", "id":"id5"}, {"type":"sample", "setup":"Comment appelle-t-on un bébé éléphant né prématurément ?", "punchline":"Un éléphant tôt.", "image":"http://placekitten.com/200/300", "id":"id6"}, {"type":"sample", "setup":"Les vaches ferment les yeux pendant la traite de lait. Pourquoi ?", "punchline":"Pour faire du lait concentré.", "image":"http://placekitten.com/200/300", "id":"id7"}, {"type":"sample", "setup":"Quelle est l’histoire du lit superposé ?", "punchline":"C’est une histoire à dormir debout.", "image":"http://placekitten.com/200/300", "id":"id8"}, {"type":"sample", "setup":"Qu’est-ce qui est jaune et qui attend ?", "punchline":"Jonathan.", "image":"http://placekitten.com/200/300", "id":"id9"}, {"type":"sample", "setup":"Connais-tu l’histoire d’un panda qui en a eu marre de la vie ?", "punchline":"Il se panda.", "image":"http://placekitten.com/200/300", "id":"id10"}, {"type":"sample", "setup":"Qu’est-ce qui est vert et qui pousse dans le jardin ?", "punchline":"Un extraterrestre qui fait caca.", "image":"http://placekitten.com/200/300", "id":"id11"}, {"type":"sample", "setup":"Avez-vous déjà entendu l’histoire de l’homme qui a giflé un aveugle ?", "punchline":"Vous ne l’avez pas vu venir celle-là.", "image":"http://placekitten.com/200/300", "id":"id12"}, {"type":"sample", "setup":"Que dit un chien après avoir fait caca dans la maison ?", "punchline":"Le chat fait la même chose, mais vous ne vous fâchez jamais.", "image":"http://placekitten.com/200/300", "id":"id13"}]`; } diff --git a/JokesApp/navigation/Navigation.tsx b/JokesApp/navigation/Navigation.tsx new file mode 100644 index 0000000..4681ec8 --- /dev/null +++ b/JokesApp/navigation/Navigation.tsx @@ -0,0 +1,105 @@ +import React from "react"; +import {NavigationContainer} from "@react-navigation/native"; +import {createBottomTabNavigator} from "@react-navigation/bottom-tabs"; +import {ListJokeScreen} from "../screens/ListJokeScreen"; +import {Image, StyleSheet, View} from "react-native"; +import {darksalmonColor, greyColor, indigo, purpleColor} from "../Theme"; +const homeIcon = require("../assets/home_icon.png"); +const listIcon = require("../assets/list_icon.png"); +const addIcon = require("../assets/add_icon.png"); +const favIcon = require("../assets/favorite_icon.png"); +const setIcon = require("../assets/settings_icon.png"); + + +export function Navigation(){ + const BottomTabNavigator = createBottomTabNavigator(); + return ( + + + ( + + ) + }}/> + ( + + ) + }}/> + ( + + + + ) + }}/> + + ( + + ) + }}/> + ( + + ) + }}/> + + + + ) +} + +const styles = StyleSheet.create({ + + title: { + fontSize: 24, + color: 'darksalmon', + textAlign: 'center', + fontWeight: 'bold', + marginVertical: 20, + }, + top: { + backgroundColor : "rgba(14, 14, 44, 1)" + }, + addJoke: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + backgroundColor: greyColor, + width: '70%', + height: '100%', + borderRadius: 4, + marginTop: 4, + }, + + +}); diff --git a/JokesApp/package-lock.json b/JokesApp/package-lock.json index 7b8a35c..0ef945d 100644 --- a/JokesApp/package-lock.json +++ b/JokesApp/package-lock.json @@ -9,11 +9,15 @@ "version": "1.0.0", "dependencies": { "@expo/ngrok": "^2.5.0", + "@react-navigation/bottom-tabs": "^6.5.11", + "@react-navigation/native": "^6.1.9", + "@react-navigation/stack": "^6.3.20", "@types/react": "~18.2.45", "expo": "~50.0.3", "expo-status-bar": "~1.11.1", "react": "18.2.0", "react-native": "0.73.2", + "react-native-gesture-handler": "^2.15.0", "typescript": "^5.3.0" }, "devDependencies": { @@ -2010,6 +2014,17 @@ "node": ">=6.9.0" } }, + "node_modules/@egjs/hammerjs": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", + "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==", + "dependencies": { + "@types/hammerjs": "^2.0.36" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/@expo/bunyan": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz", @@ -6117,6 +6132,118 @@ "react-native": "*" } }, + "node_modules/@react-navigation/bottom-tabs": { + "version": "6.5.11", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.11.tgz", + "integrity": "sha512-CBN/NOdxnMvmjw+AJQI1kltOYaClTZmGec5pQ3ZNTPX86ytbIOylDIITKMfTgHZcIEFQDymx1SHeS++PIL3Szw==", + "dependencies": { + "@react-navigation/elements": "^1.3.21", + "color": "^4.2.3", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0", + "react-native-screens": ">= 3.0.0" + } + }, + "node_modules/@react-navigation/core": { + "version": "6.4.10", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.10.tgz", + "integrity": "sha512-oYhqxETRHNHKsipm/BtGL0LI43Hs2VSFoWMbBdHK9OqgQPjTVUitslgLcPpo4zApCcmBWoOLX2qPxhsBda644A==", + "dependencies": { + "@react-navigation/routers": "^6.1.9", + "escape-string-regexp": "^4.0.0", + "nanoid": "^3.1.23", + "query-string": "^7.1.3", + "react-is": "^16.13.0", + "use-latest-callback": "^0.1.7" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@react-navigation/core/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-navigation/core/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/@react-navigation/elements": { + "version": "1.3.21", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.21.tgz", + "integrity": "sha512-eyS2C6McNR8ihUoYfc166O1D8VYVh9KIl0UQPI8/ZJVsStlfSTgeEEh+WXge6+7SFPnZ4ewzEJdSAHH+jzcEfg==", + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0" + } + }, + "node_modules/@react-navigation/native": { + "version": "6.1.9", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.9.tgz", + "integrity": "sha512-AMuJDpwXE7UlfyhIXaUCCynXmv69Kb8NzKgKJO7v0k0L+u6xUTbt6xvshmJ79vsvaFyaEH9Jg5FMzek5/S5qNw==", + "dependencies": { + "@react-navigation/core": "^6.4.10", + "escape-string-regexp": "^4.0.0", + "fast-deep-equal": "^3.1.3", + "nanoid": "^3.1.23" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/@react-navigation/native/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-navigation/routers": { + "version": "6.1.9", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.9.tgz", + "integrity": "sha512-lTM8gSFHSfkJvQkxacGM6VJtBt61ip2XO54aNfswD+KMw6eeZ4oehl7m0me3CR9hnDE4+60iAZR8sAhvCiI3NA==", + "dependencies": { + "nanoid": "^3.1.23" + } + }, + "node_modules/@react-navigation/stack": { + "version": "6.3.20", + "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-6.3.20.tgz", + "integrity": "sha512-vE6mgZzOgoa5Uy7ayT97Cj+ZIK7DK+JBYVuKUViILlWZy6IWK7HFDuqoChSbZ1ajTIfAxj/acVGg1jkbAKsToA==", + "dependencies": { + "@react-navigation/elements": "^1.3.21", + "color": "^4.2.3", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-gesture-handler": ">= 1.0.0", + "react-native-safe-area-context": ">= 3.0.0", + "react-native-screens": ">= 3.0.0" + } + }, "node_modules/@segment/loosely-validate-event": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", @@ -6201,6 +6328,11 @@ "@types/responselike": "^1.0.0" } }, + "node_modules/@types/hammerjs": { + "version": "2.0.45", + "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.45.tgz", + "integrity": "sha512-qkcUlZmX6c4J8q45taBKTL3p+LbITgyx7qhlPYOdOHZB7B31K0mXbP5YA7i7SgDeEGuI9MnumiKPEMrxg8j3KQ==" + }, "node_modules/@types/http-cache-semantics": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", @@ -7232,6 +7364,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -7245,6 +7389,31 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/colorette": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", @@ -7482,6 +7651,14 @@ "node": ">=0.10.0" } }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } + }, "node_modules/decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -8053,6 +8230,11 @@ "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.11.1.tgz", "integrity": "sha512-ddQEtCOgYHTLlFUe/yH67dDBIoct5VIULthyT3LRJbEwdpzAgueKsX2FYK02ldh440V87PWKCamh7R9evk1rrg==" }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -8148,6 +8330,14 @@ "node": ">=8" } }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -8506,6 +8696,19 @@ "node": ">=8" } }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/hosted-git-info": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", @@ -11610,6 +11813,23 @@ "qrcode-terminal": "bin/qrcode-terminal.js" } }, + "node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "dependencies": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/queue": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", @@ -11711,6 +11931,18 @@ } } }, + "node_modules/react-freeze": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.3.tgz", + "integrity": "sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g==", + "peer": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=17.0.0" + } + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -11769,6 +12001,46 @@ "react": "18.2.0" } }, + "node_modules/react-native-gesture-handler": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.15.0.tgz", + "integrity": "sha512-cmMGW8k86o/xgVTBZZOPohvR5re4Vh65PUxH4HbBBJAYTog4aN4wTVTUlnoky01HuSN8/X4h3tI/K3XLPoDnsg==", + "dependencies": { + "@egjs/hammerjs": "^2.0.17", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.2.4", + "lodash": "^4.17.21", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-safe-area-context": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.9.0.tgz", + "integrity": "sha512-/OJD9Pb8IURyvn+1tWTszWPJqsbZ4hyHBU9P0xhOmk7h5owSuqL0zkfagU0pg7Vh0G2NKQkaPpUKUMMCUMDh/w==", + "peer": true, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-screens": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.29.0.tgz", + "integrity": "sha512-yB1GoAMamFAcYf4ku94uBPn0/ani9QG7NdI98beJ5cet2YFESYYzuEIuU+kt+CNRcO8qqKeugxlfgAa3HyTqlg==", + "peer": true, + "dependencies": { + "react-freeze": "^1.0.0", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, "node_modules/react-native/node_modules/promise": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", @@ -12270,6 +12542,19 @@ "node": ">= 5.10.0" } }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -12348,6 +12633,14 @@ "node": "*" } }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "engines": { + "node": ">=6" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -12423,6 +12716,14 @@ "node": ">= 0.10.0" } }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "engines": { + "node": ">=4" + } + }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -13052,6 +13353,14 @@ "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", "integrity": "sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA==" }, + "node_modules/use-latest-callback": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.9.tgz", + "integrity": "sha512-CL/29uS74AwreI/f2oz2hLTW7ZqVeV5+gxFeGudzQrgkCytrHw33G4KbnQOrRlAEzzAFXi7dDLMC9zhWcVpzmw==", + "peerDependencies": { + "react": ">=16.8" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -13107,6 +13416,11 @@ "makeerror": "1.0.12" } }, + "node_modules/warn-once": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz", + "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==" + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", diff --git a/JokesApp/package.json b/JokesApp/package.json index 6dd7b0f..5b6e36d 100644 --- a/JokesApp/package.json +++ b/JokesApp/package.json @@ -10,11 +10,15 @@ }, "dependencies": { "@expo/ngrok": "^2.5.0", + "@react-navigation/bottom-tabs": "^6.5.11", + "@react-navigation/native": "^6.1.9", + "@react-navigation/stack": "^6.3.20", "@types/react": "~18.2.45", "expo": "~50.0.3", "expo-status-bar": "~1.11.1", "react": "18.2.0", "react-native": "0.73.2", + "react-native-gesture-handler": "^2.15.0", "typescript": "^5.3.0" }, "devDependencies": { diff --git a/JokesApp/screens/ListJokeScreen.tsx b/JokesApp/screens/ListJokeScreen.tsx index f8a60a9..369e8aa 100644 --- a/JokesApp/screens/ListJokeScreen.tsx +++ b/JokesApp/screens/ListJokeScreen.tsx @@ -4,7 +4,7 @@ import {JokeListItems} from "../components/ListeJokeComponent"; import {Joke} from "../model/Joke"; import {JokeFactory} from "../model/JokeFactory"; import {JokeStub} from "../model/JokeStub"; -import {indigo} from "../Theme"; +import {indigo, purpleColor} from "../Theme"; const DATACUSTOM = JokeFactory.createCustomJokes(JokeStub.customJokes) @@ -16,9 +16,6 @@ let DataGen = DATACUSTOM.concat(DATASAMPLE); export function ListJokeScreen() { return ( - - Liste des Blagues -