From ba099d901ea6f610d55d3c9ded948947fd68b4c2 Mon Sep 17 00:00:00 2001 From: Jeffrey Date: Tue, 16 Jul 2024 22:49:57 -0400 Subject: [PATCH] first commit --- public/VicLogo90.png | Bin 0 -> 10180 bytes src/assets/icons/VicLogo90.png | Bin 0 -> 10180 bytes src/assets/icons/VicLogo90.svg | 57 ++++ .../QuestionScreen/Question/index.tsx | 164 ++++++++--- .../QuestionScreen/Question/indexCopy.txt | 76 +++++ src/components/QuestionScreen/index.tsx | 9 +- src/components/QuizDetailsScreen/index.tsx | 6 +- src/components/QuizTopicsScreen/index.tsx | 15 +- src/config/icons.ts | 2 +- src/context/QuizContext.ts | 1 + src/context/QuizProvider.tsx | 2 + src/data/QuizQuestions/generalKnowledge.ts | 1 + src/data/QuizQuestions/index.ts | 3 + src/data/QuizQuestions/java8.ts | 272 ++++++++++++++++++ src/data/QuizQuestions/javascript.ts | 1 + src/data/QuizQuestions/python.ts | 1 + src/data/QuizQuestions/react.ts | 1 + src/data/QuizQuestions/sql.ts | 272 ++++++++++++++++++ src/data/quizTopics.tsx | 56 +--- src/types/index.ts | 1 + 20 files changed, 831 insertions(+), 109 deletions(-) create mode 100644 public/VicLogo90.png create mode 100644 src/assets/icons/VicLogo90.png create mode 100644 src/assets/icons/VicLogo90.svg create mode 100644 src/components/QuestionScreen/Question/indexCopy.txt create mode 100644 src/data/QuizQuestions/java8.ts create mode 100644 src/data/QuizQuestions/sql.ts diff --git a/public/VicLogo90.png b/public/VicLogo90.png new file mode 100644 index 0000000000000000000000000000000000000000..71fe88c70a3e786b08c5aae4bc233e3de27643f0 GIT binary patch literal 10180 zcmV;#Cp*}QP)+Gum{4sD zP8<>gNhkqAhk&sicUfJUQJGPj-fnNF@9&RuHJZ`fnURa+JV}+&XWxC+-DmB! z-u13^g_KhAe{#x2d94@lzeThYU--ZM{pyGi(|@0#XvaBSOZlHIx<38)NkvQPE4er} z#K>d6MwU!aPLE{~fa_QU>Kj;k`|XHX#!0|4Ehcts$CwzW(AS5e>NB^`%N5T>=mE5* zCY)pfuTVs2Gxp-FA^=ZHqRY>qb^WDi+VQ2$n8h0Cr~kpPV5br<=}lgl2%Kz&_PgGO zxc&AyMnV4Q5ypT1GcsGZk=nfzEgF5*?44&>XjO5l&N+`lcNfO+5bB)sm$m4*{=bTX z^dzk}-AwEHOQ(&Tp-BZ0QX-^>klw3u1M`X}Q8bl~Ti!J9(DbfdIGGHkzCJWn_1E|+ zDOyMuAw3j%f(~YxUzGn?#R9kztty7_Bx(h{&9P+#%=!?&ilPYIe2&=awbY+?{+vUt zQiW0o=bB4{%4=tb6v1q>Nj48UKJoC%$qe zPdxq@PBv5V%y`WeElmflriRvQubp>ne(zqKTpnX|1SJqSrAj{bL0YL4(lkLRCl0_f zO4#`#*4QXsTPt&IlGjwxLQybNW7J)}iTJ{W$6l>CwwO#}4Gm+Aj^Y*zD3fO6)QI#v zr1S{3w4&+(r0Y&!yHN1V5>~E&5{)A*YtHq&wmVu%9Lu8p=9^IF@o;iod$4k8-)tz# zDOEB;!7CPV9FKGV_I_$suB`C%2#_A0CkeH-Q0O@T(wo(!zjlfi3QjgdWYH2D-f;1p zzOV!ehmK%Rq_C2w!R?e1AwYN@j$nZl$dvE1Kw``-We1SK7?+3(|FPU?*yf%s! z0?)J%p)f7iUW*zG&N)2W+l!N!z!(`u3gI7Ar&uH)g}^fnq&JJ#VHkLYB6uD`)&Be0 zXdwhC|bE#RocFwW3XdXwtlK6QP!tIfoVw9>N$Nq&PB+v>k+cnvvbI;@n~pXI^b#*cP^Pdr@t|HLXgizFqCgij$S_pxaPSJGz zO;n$`V$QKaca&whn6d^qUM4NdExdqliRipy}G92e5X~>LQ$~O86t}p z)9{8j%sE!NF2y59utr8OQ%V2&)3~EO!^CqXEC2k@iFS6d=aZkL@9Y1FolN*~iIm7- zfJN_qH)r4XDOUc)U$fOp`!Y$2&TAI+LOV4LMP5+O6 zOw$`KBD!oj(s8Mj@1CJ(RS4v%h;N0!Ef&#ZF`BQuV&0IuI50qIU=S;jK-wlk)#n`l zYKj0H+eT|_M2*ErKlL=auA|k}_`#AQKvfB~wxgkt+_nvXV0}GEQ85aiq3B>^Bf*+l zJllTN4S^ODThR7h?E4XswnK=Pj*ii3va!JmRsJ8ozLTB^SFgPPAWrjbd=UR?_|+i-^Rq2 zE#wa$0!2MJJleG^^ww7Ncs0_t;MKqtgupXR0=2a?U3t~KH<>?t1bbuzBQb$=U4$As z?TS_+5iku7eBp~kANUgIf9-4Z-*5wo|9TQLokovDXxMNm9k;v*uUMq#fiGjHQv_l$ zPAXtgYpMx0HxX)XCV#LORo7qnO-hNh9Af9LrQxEvy$!oqB-7oEoyqut!erLv^on#n zf-Nm19)FDOAHIi`AN?q;S6)fyb;o^a*EGrY>}T(N_mTMd&(UjYW<~I3C^}SKO>E_v zq@Ha;IeHX42gEBo@ulM+1vFfKDOzyuL(NDeDIGeDl}_R0v#7E7YsBjDVbE|(6Ukrx zg6E!lmc~mjC%S4if$D19e3AU#J&gYLH@Jxe!R8iF)me!#741URsx^e#7NFPlVvdia z#-dOO!8+L`I}TcXJ+0TxjI5@O^E|TMdvVeUtdU_5Q*edTEJ7#(8y^x+yaL`p<3gcb;JhU@1Yn%#c@Cz+%;JmhDS zPb2O;t4N6&4x`0l=&=}Dyb7g^xoE*4flv@V8udAM$C9(N$eec*X>B38Vg-TPIv+Wk z18iv}4C1*Sp8GOP2Y_B%N7d@Jq&L4nX=D)3vQUD7lhc6!H(#LP%Bu-RB6AKc zO(ZY|2C>G+a0@wunGZY5~ zk*7N+SV@GyD-^IDo7E3INYjernV{T}BlLdrn=HBQHm>@wrvS+I^>g^)hmp348jV%l zB=Z6p;g)8qR;(nyeJ55Tg>=376QqiQotU8RlFO+%WA1d7l#<+m{WzI4=J?pF6Y{@e z5lA7><1zAkc2n5717mywOpDQ9{fgAnPmz88dD?Gz6UE^{4nFu*j6(+r)YZT&)^%P* zYmo@i70U@O=tMty7`s$JsB`l$1Om5c(tOiR<*e}RQXCk>86T%GG>Wt=lu+Qcx6aZ- ziAGS1IriOqFIHm0N99-iIEd_o0W-1cX}}2{tq!r3ccjIORz}bCHD$h%8+~ zzH1NGK*8T}vz@SIzH_L(gO*D!oj3iI>FUDGX0ZnQ5SsehEBTlR1t+(Yw~ZzNb-JvqcG zl^Fl+1quWU@X|b)pD?XIn@`rS19~=8f)h zhYn&-OkfNQAzg`3PcI8;E>ScMYjlLj+Os(4s}ECu);e;B4l?r7pJJtxsL?3(>o?GT z-L+J&UCWDizk_1;9<+GXDo_d`=*Or(YaRQ(_+^g#{lj?aB#!H%AW#B23*P;1*8KTj zu;L>hW#_y90MDu%*qyYZ166Utixv}Eu#o)WgJpWw^j$3hr%<5j>Wzfk+UA_k%%myx z_hXC2efZL%LIZCLxfHgE>5aTQcDk z*mZ%Q(hGMkBv4&V@|oulu8UezHA#XO0@QFb)`4Dj5#{$(+R{Ba*UK%sU)qp-p=bD ze9*6vnzBKJfUy@|VD|^#kC)A(Xs>=gQ366$u?snzQi;gYMR-!8ST;h}C$S^9SV9U( zbYUj|PCh#;g7=cPgDMolOO_IBZ$ppQz|^`9%RxwmrmHs+YM2|TD~*m)>g&fC8O1FY zr?VKsp#PM=8dX`fYgUnY;dw&s?PR+qP*oKa z6)Tk@xS)fk4eRHfqtMrfHQ4WC8?K8QDCZG{K$c6D>n^yU;V@a9lPT12n7WHDV(Hy?Sj8Mt8X2K<_z3ny z0=Jk)opK1`I0#jvWz#1ANvR;kLq{-2N6QECDJ-Fu5`;piqm|(wewXyt%`{wb1vTr| z5v-}kEaXXbb(8qdUsLKiK(M9Bx8L?l$b!!&@inW^pR6a^*?}?8k6kDbS+)F z+CpC+#_%9kGJ$k$2pxxAC7?#*U|LK(^(3C{96xY{!1E-dKlur6v4qgHQ|d}fML|d~ zN5}ANi}dbYBzErt{DVybF1`Zwa1c9@AlTU8CjctQ%Tlx+3=&JoUsId{(u|eWTzMhAosAUht4_xfgaZ)?B_=TOXW{Gmu+Ox^Luob<&4s~>d z<}0t9_ZnktjKZNqSm`ugA&(jfGu3O5jzgfK1vL`JD;0d!=CK=BRAjM)YnFU>@Z~Q2 zWJCyLv54cjobhKLqjvS`S%oKcmpE2_(kehuJj?tDdKr>=&N60 z=-za1#?`wr!hN(LxAnmMws;86iBt4nf53*c@dx~ zD0-lb)68+2N}qeDhJ$#PjcXVPU8nP{Z)f>E_Y!VyWPI~x_TBeM3cL59#bPMo5I83Z z{OjQeiD#d~d+&QuW^u8ONuaKdhO4h8+}bqfIL~p&cKh(EF*fW|fv0flJl935tEc(e z$|M^zlO?l#2X-Pk14Z>ru$8jG18pXb&K3`>03HS-xP!QF1 zk*e@qH`O|#4Qc9&L9zBee zPGe_t=<(z2&4i+0CR4QE{ANP+l@Y&O&jIpXT_C4?=$?m_Nz-`UwXD1EQ`2tC^IS%M z`vm>}@+~qucH-o+=rz@J+;IoX{^)&Z;gJ8{K;6X`lX-D7#^{JoLpvtYLy1JtGAZ`{ z)n6Vjo~k55fON4Y61awm5~@u8sT{Cq8g@Fx_-}vviWQyd>cY+BF$M>HTR4?i?zl)* zrR9d}E80oV^+<2uNojD<$2Q7}_6&niTPN%O?sL|1DZ-< zbcn8xeGCx_vEq;4H#t7m*+F>8QbKjL6h}s;Sr4IVsH#Tl*=KQ$QpG3Rx2lRy6$|J@ z+B;@-ASzt#q39ZTlEgF5;<}aHm6H((6uS4}ngjF z#`rjyEn9qSqg-bw@e#m|JMJLX-ahTUMj!hPN5B3E#y~&8rUn9y^=P#4VVs0!nc zJvRO36@}R1MW{7()53l5eQ+ryfyPF{ot=c*+Nb}tcMxi9LW#vV`|ls&qW}0QA{fLq zN+%nF3lIuI*T{Bvk>0(F`m@hDY2{9pLVrKT$PmWpFrHzeMyKP)ZZ1d5rj3Le8Y*6& z*|(2ecemg4Pb=>f$05+zOvhW_I&EzB@L@)N{8NmhN6;c+gsM&|PfAI+u@PgSkL`c; zm*|lQI5r5CVs8&tVgjM-Ga6J)$}C=+^gKMvre@7*s?IzUMOAQSnWM7lkPFPtE5spQ+wu@R)EPBtd-Oq1FT zmrym?RjllpY~4z(YZrJD5jY`oloBNx#mVFt`p2&$@HqD13r#}_1W;7XchioE@B?vIt#k^rzaI>Ha_zI;^U1iY<$g)F^jQ4PyQw>S-RuQZQle-YnVmbzJG%0) z*%d88k47mC4KeoO=9jGK+`hejv(}Megmw%n$BzV)DfIRZ8aJ%3xGuX;Ahr281%a?=JV6q zrwPE$q-oi-iK#2L)IddX|^8){RG)i{c4$|G- zG@f&EhhlE;e%wUL?^7q`^nk)NK@ZS;)m3QGnUw%iO48f5Q#^7M@PnsmkFDp;a5u)xVwQ%n%%f;2J@o2oii3k>wr)LnMIY|LOpIfXk56NW3Pr(8r->|CLjCJ6 zs(7uH&y(4@87GtRQ$kF)W;{q>u}LzISxaV!f(58&D^#@IMcCdI+e{~deoy$5L-<%Gt} zY34N@QhI1raZ;N%lRJ83&iolbuBR7!bQE)R1P^(<-I@?M#Ug6Fil)miuN=~P9;t0x zum*=vRK>r^6CyT6*BE>Jw=DU+-=BPv^+<%aTW%qDu!pf9{s*OG5}|9jhDo5kowc9) z0<|m7^lfGis7^&x;!?Uefs=%aQf^1q?i3Bz4FQM(`o2gy54m}*kwJb6{2N?Ll z4;cN?4++NN=uJ)2*;_9~(Rdz#>T2=>{UkQOFn6NTu_+!sgfTjXmCm4?&~w=>7KyG} zL;b~-JJ6WvG}-Ojv2$5J=%`R`r-VYJUf9g&)6dYn{^H5ktIt@@nooX$(G43&J^LJX zp-AM6<+R^)BX#S13h}WfJn21q82RO|C=L$J-sed%x|?8K9TKoh zB?93vwdbBo+oo&jyLuD*KlwMfr6Q_c**O1A^o1B6+}odMkiSIk&m(B zLm#9xJi^{j{R!!9+i(jx&_h(MTg!@j|AeK#`!0;Z0ggQU5Q?Hz^gb#)zY^)WexvI0 zkLS4PRn?@Pd(KY-%_7DAK8(R3tg$hq;|C9Z!)rfVq1DvQniuq>B)x45rNKczJvHV1 zPyA8BA#z)`vi`3;Dx`So)qnAlTN1 zH>3TrFEc+*MMVuo@S@ff=u)6Xq7?fFnApCZ>Qysoxwc_o3=ZSwa=4C-8ml@E)B~R7 zP<`P=v|N69#f6xuG{pl4K?<~*+DWY8cu+Cn3qA@ZrZsEl{?_%M*ewU_eHWF!S zK@I5TOC-{9F*0egyLL13%U_Uq@(J8z5-k=(XgX55)92N7)KCl&(EX-WOO_B>yof_z z`x>R59<PCn%IgJsNwLGxmDCi)PF*R@J)wpp@c$smW7j;VCXyFX8f6_i7Z%z z7K@|Cqj)6~Yh(~(co=(P0!7h?FI|qZCV-PI`b6@0+%JU?0;SB&2sAgNR>%DyNYfFT zhG$uLj^kT|a^xw5uW;$uIHjVmJY7S`%9U9&6zye!ng&<^00$6BL_t)uWH-NnnNA@c z2USs#x`v`CcqIeZD52EUVwS%-La(jGEfmq>G3;cLKzlpE=4LWmUqq-1dQA;VIE*nc zNXqj#oXH@h-&_Rgdl5qT?pUz3g-~MyrCbg>lOxzzk7ruGix!R`RAq9vdZvXI4iW5J zfYH}SzPp=*Vc?WXKC2)eM~hb>kZ5)FIJvCfuG6##FIj?Xl(2?J{IJMKoSZ}2Mx+S{mk{p-oR@H}Td@D-}ouBEWA8!Zwd z{<_z(==a}^7761D2rpgE;&e(KNKCCbW2*U`Ge-?|dgU7jGcjy@$q) z8>zeC0t)+kXubUoGCOtF((wynHF`o30_gautPvLEL;1=}J^BKy1w#R^R_w znlHVSL*MuYBR~8BYCtExdJTZ_8ejhgEXQWxTi+ty)<)~Cx1v{7Q@?&ag`@pM7A@o$U?5bLKy4Mh_kWgfYX_Y- z-ayM$SCZbo9Xpdjk4C9E|9k{6`t;Kr{JYQlUd${#`et|?LRFED!^qEmM)MU{(tOz! z41MQ2IQb0GMT;;81{r(tMGE`(gIS``(@XL25uEWcw7LfJd-pQ({PQTTL=6U!(j!n; zgF7*SlTKshb2MIao$rgbv{HTk>yWO8bR0@U1LS*pFh@s`j!pW7&5Zr$F9}ptp~mCb z$s|@{9O1cWt!)%~dKlZao9wQge!Ged8!&nf()`9vc(z07U=Q|@K8z#%xS1SUJc_1i zB%gSk@h6@j($I`s$TRxGAJKZpU3iv-bnJ2x+(oOYMHY(ezULnH{N=|-OQ8>>;PYmts*{MWyx_06}?bj>xC#zrX}JxU=GW$@eo%CZmtKSUr% zsI3Fpv4F#0`~u;&cIq}Y1nT3Ps{; z))HBM2B{aG_kkjy*mHo`nl)fr*rft$eFIKkKY`X3oMI6QMQSd+3=D(BQ%@3X?Z7MK z0Eu4TNNH?@x(hBO-@Rw@+usD>IWBIg)h~*au8R`T!S(QLyPQq&(KqS3K6G3L|7Dq5AygHis*}B%g%C)gAj-b5 zXIUtk=6~~qZKDK3e*4d3j(Hi8L)XD|5vqoiuJ7J8H4|HV7RCL0u|`Ly;o*}huVb6G z0^d%09xXTA$m&o0?c9pC(qoK2zuCX(X`$qlpkc1=1}9>-FGVJ=Wm4Ib{}&vG>!y{` zdd&D9tCN186EiL@s48kSj#n!BrFbuispV4?qMe=8oqc{~MIV#d2s!^JFHKI&WzSIb yYu^0je~6s;u*@Vmp3>rw|Go0xs1wQmZ2AAt8^zM2m}GGP0000+Gum{4sD zP8<>gNhkqAhk&sicUfJUQJGPj-fnNF@9&RuHJZ`fnURa+JV}+&XWxC+-DmB! z-u13^g_KhAe{#x2d94@lzeThYU--ZM{pyGi(|@0#XvaBSOZlHIx<38)NkvQPE4er} z#K>d6MwU!aPLE{~fa_QU>Kj;k`|XHX#!0|4Ehcts$CwzW(AS5e>NB^`%N5T>=mE5* zCY)pfuTVs2Gxp-FA^=ZHqRY>qb^WDi+VQ2$n8h0Cr~kpPV5br<=}lgl2%Kz&_PgGO zxc&AyMnV4Q5ypT1GcsGZk=nfzEgF5*?44&>XjO5l&N+`lcNfO+5bB)sm$m4*{=bTX z^dzk}-AwEHOQ(&Tp-BZ0QX-^>klw3u1M`X}Q8bl~Ti!J9(DbfdIGGHkzCJWn_1E|+ zDOyMuAw3j%f(~YxUzGn?#R9kztty7_Bx(h{&9P+#%=!?&ilPYIe2&=awbY+?{+vUt zQiW0o=bB4{%4=tb6v1q>Nj48UKJoC%$qe zPdxq@PBv5V%y`WeElmflriRvQubp>ne(zqKTpnX|1SJqSrAj{bL0YL4(lkLRCl0_f zO4#`#*4QXsTPt&IlGjwxLQybNW7J)}iTJ{W$6l>CwwO#}4Gm+Aj^Y*zD3fO6)QI#v zr1S{3w4&+(r0Y&!yHN1V5>~E&5{)A*YtHq&wmVu%9Lu8p=9^IF@o;iod$4k8-)tz# zDOEB;!7CPV9FKGV_I_$suB`C%2#_A0CkeH-Q0O@T(wo(!zjlfi3QjgdWYH2D-f;1p zzOV!ehmK%Rq_C2w!R?e1AwYN@j$nZl$dvE1Kw``-We1SK7?+3(|FPU?*yf%s! z0?)J%p)f7iUW*zG&N)2W+l!N!z!(`u3gI7Ar&uH)g}^fnq&JJ#VHkLYB6uD`)&Be0 zXdwhC|bE#RocFwW3XdXwtlK6QP!tIfoVw9>N$Nq&PB+v>k+cnvvbI;@n~pXI^b#*cP^Pdr@t|HLXgizFqCgij$S_pxaPSJGz zO;n$`V$QKaca&whn6d^qUM4NdExdqliRipy}G92e5X~>LQ$~O86t}p z)9{8j%sE!NF2y59utr8OQ%V2&)3~EO!^CqXEC2k@iFS6d=aZkL@9Y1FolN*~iIm7- zfJN_qH)r4XDOUc)U$fOp`!Y$2&TAI+LOV4LMP5+O6 zOw$`KBD!oj(s8Mj@1CJ(RS4v%h;N0!Ef&#ZF`BQuV&0IuI50qIU=S;jK-wlk)#n`l zYKj0H+eT|_M2*ErKlL=auA|k}_`#AQKvfB~wxgkt+_nvXV0}GEQ85aiq3B>^Bf*+l zJllTN4S^ODThR7h?E4XswnK=Pj*ii3va!JmRsJ8ozLTB^SFgPPAWrjbd=UR?_|+i-^Rq2 zE#wa$0!2MJJleG^^ww7Ncs0_t;MKqtgupXR0=2a?U3t~KH<>?t1bbuzBQb$=U4$As z?TS_+5iku7eBp~kANUgIf9-4Z-*5wo|9TQLokovDXxMNm9k;v*uUMq#fiGjHQv_l$ zPAXtgYpMx0HxX)XCV#LORo7qnO-hNh9Af9LrQxEvy$!oqB-7oEoyqut!erLv^on#n zf-Nm19)FDOAHIi`AN?q;S6)fyb;o^a*EGrY>}T(N_mTMd&(UjYW<~I3C^}SKO>E_v zq@Ha;IeHX42gEBo@ulM+1vFfKDOzyuL(NDeDIGeDl}_R0v#7E7YsBjDVbE|(6Ukrx zg6E!lmc~mjC%S4if$D19e3AU#J&gYLH@Jxe!R8iF)me!#741URsx^e#7NFPlVvdia z#-dOO!8+L`I}TcXJ+0TxjI5@O^E|TMdvVeUtdU_5Q*edTEJ7#(8y^x+yaL`p<3gcb;JhU@1Yn%#c@Cz+%;JmhDS zPb2O;t4N6&4x`0l=&=}Dyb7g^xoE*4flv@V8udAM$C9(N$eec*X>B38Vg-TPIv+Wk z18iv}4C1*Sp8GOP2Y_B%N7d@Jq&L4nX=D)3vQUD7lhc6!H(#LP%Bu-RB6AKc zO(ZY|2C>G+a0@wunGZY5~ zk*7N+SV@GyD-^IDo7E3INYjernV{T}BlLdrn=HBQHm>@wrvS+I^>g^)hmp348jV%l zB=Z6p;g)8qR;(nyeJ55Tg>=376QqiQotU8RlFO+%WA1d7l#<+m{WzI4=J?pF6Y{@e z5lA7><1zAkc2n5717mywOpDQ9{fgAnPmz88dD?Gz6UE^{4nFu*j6(+r)YZT&)^%P* zYmo@i70U@O=tMty7`s$JsB`l$1Om5c(tOiR<*e}RQXCk>86T%GG>Wt=lu+Qcx6aZ- ziAGS1IriOqFIHm0N99-iIEd_o0W-1cX}}2{tq!r3ccjIORz}bCHD$h%8+~ zzH1NGK*8T}vz@SIzH_L(gO*D!oj3iI>FUDGX0ZnQ5SsehEBTlR1t+(Yw~ZzNb-JvqcG zl^Fl+1quWU@X|b)pD?XIn@`rS19~=8f)h zhYn&-OkfNQAzg`3PcI8;E>ScMYjlLj+Os(4s}ECu);e;B4l?r7pJJtxsL?3(>o?GT z-L+J&UCWDizk_1;9<+GXDo_d`=*Or(YaRQ(_+^g#{lj?aB#!H%AW#B23*P;1*8KTj zu;L>hW#_y90MDu%*qyYZ166Utixv}Eu#o)WgJpWw^j$3hr%<5j>Wzfk+UA_k%%myx z_hXC2efZL%LIZCLxfHgE>5aTQcDk z*mZ%Q(hGMkBv4&V@|oulu8UezHA#XO0@QFb)`4Dj5#{$(+R{Ba*UK%sU)qp-p=bD ze9*6vnzBKJfUy@|VD|^#kC)A(Xs>=gQ366$u?snzQi;gYMR-!8ST;h}C$S^9SV9U( zbYUj|PCh#;g7=cPgDMolOO_IBZ$ppQz|^`9%RxwmrmHs+YM2|TD~*m)>g&fC8O1FY zr?VKsp#PM=8dX`fYgUnY;dw&s?PR+qP*oKa z6)Tk@xS)fk4eRHfqtMrfHQ4WC8?K8QDCZG{K$c6D>n^yU;V@a9lPT12n7WHDV(Hy?Sj8Mt8X2K<_z3ny z0=Jk)opK1`I0#jvWz#1ANvR;kLq{-2N6QECDJ-Fu5`;piqm|(wewXyt%`{wb1vTr| z5v-}kEaXXbb(8qdUsLKiK(M9Bx8L?l$b!!&@inW^pR6a^*?}?8k6kDbS+)F z+CpC+#_%9kGJ$k$2pxxAC7?#*U|LK(^(3C{96xY{!1E-dKlur6v4qgHQ|d}fML|d~ zN5}ANi}dbYBzErt{DVybF1`Zwa1c9@AlTU8CjctQ%Tlx+3=&JoUsId{(u|eWTzMhAosAUht4_xfgaZ)?B_=TOXW{Gmu+Ox^Luob<&4s~>d z<}0t9_ZnktjKZNqSm`ugA&(jfGu3O5jzgfK1vL`JD;0d!=CK=BRAjM)YnFU>@Z~Q2 zWJCyLv54cjobhKLqjvS`S%oKcmpE2_(kehuJj?tDdKr>=&N60 z=-za1#?`wr!hN(LxAnmMws;86iBt4nf53*c@dx~ zD0-lb)68+2N}qeDhJ$#PjcXVPU8nP{Z)f>E_Y!VyWPI~x_TBeM3cL59#bPMo5I83Z z{OjQeiD#d~d+&QuW^u8ONuaKdhO4h8+}bqfIL~p&cKh(EF*fW|fv0flJl935tEc(e z$|M^zlO?l#2X-Pk14Z>ru$8jG18pXb&K3`>03HS-xP!QF1 zk*e@qH`O|#4Qc9&L9zBee zPGe_t=<(z2&4i+0CR4QE{ANP+l@Y&O&jIpXT_C4?=$?m_Nz-`UwXD1EQ`2tC^IS%M z`vm>}@+~qucH-o+=rz@J+;IoX{^)&Z;gJ8{K;6X`lX-D7#^{JoLpvtYLy1JtGAZ`{ z)n6Vjo~k55fON4Y61awm5~@u8sT{Cq8g@Fx_-}vviWQyd>cY+BF$M>HTR4?i?zl)* zrR9d}E80oV^+<2uNojD<$2Q7}_6&niTPN%O?sL|1DZ-< zbcn8xeGCx_vEq;4H#t7m*+F>8QbKjL6h}s;Sr4IVsH#Tl*=KQ$QpG3Rx2lRy6$|J@ z+B;@-ASzt#q39ZTlEgF5;<}aHm6H((6uS4}ngjF z#`rjyEn9qSqg-bw@e#m|JMJLX-ahTUMj!hPN5B3E#y~&8rUn9y^=P#4VVs0!nc zJvRO36@}R1MW{7()53l5eQ+ryfyPF{ot=c*+Nb}tcMxi9LW#vV`|ls&qW}0QA{fLq zN+%nF3lIuI*T{Bvk>0(F`m@hDY2{9pLVrKT$PmWpFrHzeMyKP)ZZ1d5rj3Le8Y*6& z*|(2ecemg4Pb=>f$05+zOvhW_I&EzB@L@)N{8NmhN6;c+gsM&|PfAI+u@PgSkL`c; zm*|lQI5r5CVs8&tVgjM-Ga6J)$}C=+^gKMvre@7*s?IzUMOAQSnWM7lkPFPtE5spQ+wu@R)EPBtd-Oq1FT zmrym?RjllpY~4z(YZrJD5jY`oloBNx#mVFt`p2&$@HqD13r#}_1W;7XchioE@B?vIt#k^rzaI>Ha_zI;^U1iY<$g)F^jQ4PyQw>S-RuQZQle-YnVmbzJG%0) z*%d88k47mC4KeoO=9jGK+`hejv(}Megmw%n$BzV)DfIRZ8aJ%3xGuX;Ahr281%a?=JV6q zrwPE$q-oi-iK#2L)IddX|^8){RG)i{c4$|G- zG@f&EhhlE;e%wUL?^7q`^nk)NK@ZS;)m3QGnUw%iO48f5Q#^7M@PnsmkFDp;a5u)xVwQ%n%%f;2J@o2oii3k>wr)LnMIY|LOpIfXk56NW3Pr(8r->|CLjCJ6 zs(7uH&y(4@87GtRQ$kF)W;{q>u}LzISxaV!f(58&D^#@IMcCdI+e{~deoy$5L-<%Gt} zY34N@QhI1raZ;N%lRJ83&iolbuBR7!bQE)R1P^(<-I@?M#Ug6Fil)miuN=~P9;t0x zum*=vRK>r^6CyT6*BE>Jw=DU+-=BPv^+<%aTW%qDu!pf9{s*OG5}|9jhDo5kowc9) z0<|m7^lfGis7^&x;!?Uefs=%aQf^1q?i3Bz4FQM(`o2gy54m}*kwJb6{2N?Ll z4;cN?4++NN=uJ)2*;_9~(Rdz#>T2=>{UkQOFn6NTu_+!sgfTjXmCm4?&~w=>7KyG} zL;b~-JJ6WvG}-Ojv2$5J=%`R`r-VYJUf9g&)6dYn{^H5ktIt@@nooX$(G43&J^LJX zp-AM6<+R^)BX#S13h}WfJn21q82RO|C=L$J-sed%x|?8K9TKoh zB?93vwdbBo+oo&jyLuD*KlwMfr6Q_c**O1A^o1B6+}odMkiSIk&m(B zLm#9xJi^{j{R!!9+i(jx&_h(MTg!@j|AeK#`!0;Z0ggQU5Q?Hz^gb#)zY^)WexvI0 zkLS4PRn?@Pd(KY-%_7DAK8(R3tg$hq;|C9Z!)rfVq1DvQniuq>B)x45rNKczJvHV1 zPyA8BA#z)`vi`3;Dx`So)qnAlTN1 zH>3TrFEc+*MMVuo@S@ff=u)6Xq7?fFnApCZ>Qysoxwc_o3=ZSwa=4C-8ml@E)B~R7 zP<`P=v|N69#f6xuG{pl4K?<~*+DWY8cu+Cn3qA@ZrZsEl{?_%M*ewU_eHWF!S zK@I5TOC-{9F*0egyLL13%U_Uq@(J8z5-k=(XgX55)92N7)KCl&(EX-WOO_B>yof_z z`x>R59<PCn%IgJsNwLGxmDCi)PF*R@J)wpp@c$smW7j;VCXyFX8f6_i7Z%z z7K@|Cqj)6~Yh(~(co=(P0!7h?FI|qZCV-PI`b6@0+%JU?0;SB&2sAgNR>%DyNYfFT zhG$uLj^kT|a^xw5uW;$uIHjVmJY7S`%9U9&6zye!ng&<^00$6BL_t)uWH-NnnNA@c z2USs#x`v`CcqIeZD52EUVwS%-La(jGEfmq>G3;cLKzlpE=4LWmUqq-1dQA;VIE*nc zNXqj#oXH@h-&_Rgdl5qT?pUz3g-~MyrCbg>lOxzzk7ruGix!R`RAq9vdZvXI4iW5J zfYH}SzPp=*Vc?WXKC2)eM~hb>kZ5)FIJvCfuG6##FIj?Xl(2?J{IJMKoSZ}2Mx+S{mk{p-oR@H}Td@D-}ouBEWA8!Zwd z{<_z(==a}^7761D2rpgE;&e(KNKCCbW2*U`Ge-?|dgU7jGcjy@$q) z8>zeC0t)+kXubUoGCOtF((wynHF`o30_gautPvLEL;1=}J^BKy1w#R^R_w znlHVSL*MuYBR~8BYCtExdJTZ_8ejhgEXQWxTi+ty)<)~Cx1v{7Q@?&ag`@pM7A@o$U?5bLKy4Mh_kWgfYX_Y- z-ayM$SCZbo9Xpdjk4C9E|9k{6`t;Kr{JYQlUd${#`et|?LRFED!^qEmM)MU{(tOz! z41MQ2IQb0GMT;;81{r(tMGE`(gIS``(@XL25uEWcw7LfJd-pQ({PQTTL=6U!(j!n; zgF7*SlTKshb2MIao$rgbv{HTk>yWO8bR0@U1LS*pFh@s`j!pW7&5Zr$F9}ptp~mCb z$s|@{9O1cWt!)%~dKlZao9wQge!Ged8!&nf()`9vc(z07U=Q|@K8z#%xS1SUJc_1i zB%gSk@h6@j($I`s$TRxGAJKZpU3iv-bnJ2x+(oOYMHY(ezULnH{N=|-OQ8>>;PYmts*{MWyx_06}?bj>xC#zrX}JxU=GW$@eo%CZmtKSUr% zsI3Fpv4F#0`~u;&cIq}Y1nT3Ps{; z))HBM2B{aG_kkjy*mHo`nl)fr*rft$eFIKkKY`X3oMI6QMQSd+3=D(BQ%@3X?Z7MK z0Eu4TNNH?@x(hBO-@Rw@+usD>IWBIg)h~*au8R`T!S(QLyPQq&(KqS3K6G3L|7Dq5AygHis*}B%g%C)gAj-b5 zXIUtk=6~~qZKDK3e*4d3j(Hi8L)XD|5vqoiuJ7J8H4|HV7RCL0u|`Ly;o*}huVb6G z0^d%09xXTA$m&o0?c9pC(qoK2zuCX(X`$qlpkc1=1}9>-FGVJ=Wm4Ib{}&vG>!y{` zdd&D9tCN186EiL@s48kSj#n!BrFbuispV4?qMe=8oqc{~MIV#d2s!^JFHKI&WzSIb yYu^0je~6s;u*@Vmp3>rw|Go0xs1wQmZ2AAt8^zM2m}GGP0000 + + + + + + + + + + + + + + + diff --git a/src/components/QuestionScreen/Question/index.tsx b/src/components/QuestionScreen/Question/index.tsx index 5c5acd1..1f4efbb 100644 --- a/src/components/QuestionScreen/Question/index.tsx +++ b/src/components/QuestionScreen/Question/index.tsx @@ -1,27 +1,71 @@ -import { FC } from 'react' -import styled from 'styled-components' +import { FC } from 'react'; +import styled from 'styled-components'; +import CodeSnippet from '../../ui/CodeSnippet'; +import Answer from '../Answer'; +import QuizImage from '../../ui/QuizImage'; +import { device } from '../../../styles/BreakPoints'; -import { device } from '../../../styles/BreakPoints' +const Container = styled.div` + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + padding: 20px; +`; -import CodeSnippet from '../../ui/CodeSnippet' -import Answer from '../Answer' -import QuizImage from '../../ui/QuizImage' +const ProgressBarContainer = styled.div` + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 20px; +`; + +const ProgressBar = styled.div` + width: 80%; + height: 10px; + background-color: #e0e0e0; + border-radius: 5px; + overflow: hidden; +`; + +const Progress = styled.div<{ progress: number }>` + width: ${({ progress }) => progress}%; + height: 100%; + background-color: #76c7c0; +`; + +const Timer = styled.div` + font-size: 14px; + color: ${({ theme }) => theme.colors.primaryText}; +`; + +const MainContent = styled.div` + display: flex; + justify-content: space-between; + width: 100%; + max-width: 1200px; + margin-top: 20px; + @media ${device.sm} { + flex-direction: column; + } +`; const QuestionContainer = styled.div` - margin-top: 30px; - margin-bottom: 40px; - max-width: 88%; + width: 60%; + padding-right: 20px; @media ${device.sm} { - max-width: 100%; + width: 100%; + padding-right: 0; } -` +`; const AnswersContainer = styled.div` - max-width: 78%; + width: 40%; @media ${device.sm} { - max-width: 100%; + width: 100%; } -` +`; const QuestionStyle = styled.h2` font-size: clamp(18px, 4vw, 28px); @@ -29,16 +73,38 @@ const QuestionStyle = styled.h2` margin-bottom: 25px; color: ${({ theme }) => theme.colors.primaryText}; line-height: 1.3; -` +`; + +const NextButtonContainer = styled.div` + width: 100%; + display: flex; + justify-content: center; + margin-top: 20px; +`; + +const NextButton = styled.button` + padding: 10px 20px; + font-size: 16px; + background-color: #76c7c0; + color: #fff; + border: none; + border-radius: 5px; + cursor: pointer; + &:hover { + background-color: #5aa8a2; + } +`; interface QuestionTypes { - question: string - code?: string - image?: string - type: string - choices: string[] - selectedAnswer: string[] - handleAnswerSelection: (e: React.ChangeEvent, index: number) => void + question: string; + code?: string; + image?: string; + type: string; + choices: string[]; + selectedAnswer: string[]; + handleAnswerSelection: (e: React.ChangeEvent, index: number) => void; + progress: number; + timeLeft?: string; } const Question: FC = ({ @@ -49,28 +115,38 @@ const Question: FC = ({ choices, selectedAnswer, handleAnswerSelection, + progress, + timeLeft, }) => { return ( - - {question} - {/* if question contains code snippet then show code */} - {code && } - {/* if question contains an image */} - {image && } - - {choices.map((choice, index) => ( - handleAnswerSelection(e, index)} - type={type} - selectedAnswer={selectedAnswer} - /> - ))} - - - ) -} + + + + + + {timeLeft && {timeLeft}} + + + + {question} + {code && } + {image && } + + + {choices.map((choice, index) => ( + handleAnswerSelection(e, index)} + type={type} + selectedAnswer={selectedAnswer} + /> + ))} + + + + ); +}; -export default Question +export default Question; diff --git a/src/components/QuestionScreen/Question/indexCopy.txt b/src/components/QuestionScreen/Question/indexCopy.txt new file mode 100644 index 0000000..2270a09 --- /dev/null +++ b/src/components/QuestionScreen/Question/indexCopy.txt @@ -0,0 +1,76 @@ +import { FC } from 'react' +import styled from 'styled-components' + +import { device } from '../../../styles/BreakPoints' + +import CodeSnippet from '../../ui/CodeSnippet' +import Answer from '../Answer' +import QuizImage from '../../ui/QuizImage' + +const QuestionContainer = styled.div` + margin-top: 30px; + margin-bottom: 40px; + max-width: 88%; + @media ${device.sm} { + max-width: 100%; + } +` + +const AnswersContainer = styled.div` + max-width: 78%; + @media ${device.sm} { + max-width: 100%; + } +` + +const QuestionStyle = styled.h2` + font-size: clamp(18px, 4vw, 28px); + font-weight: 500; + margin-bottom: 25px; + color: ${({ theme }) => theme.colors.primaryText}; + line-height: 1.3; +` + +interface QuestionTypes { + question: string + code?: string + image?: string + type: string + choices: string[] + selectedAnswer: string[] + handleAnswerSelection: (e: React.ChangeEvent, index: number) => void +} + +const Question: FC = ({ + question, + code, + image, + type, + choices, + selectedAnswer, + handleAnswerSelection, +}) => { + return ( + + !!!{question} + {/* if question contains code snippet then show code */} + {code && } + {/* if question contains an image */} + {image && } + + {choices.map((choice, index) => ( + handleAnswerSelection(e, index)} + type={type} + selectedAnswer={selectedAnswer} + /> + ))} + + + ) +} + +export default Question diff --git a/src/components/QuestionScreen/index.tsx b/src/components/QuestionScreen/index.tsx index 5c4bb39..3354eea 100644 --- a/src/components/QuestionScreen/index.tsx +++ b/src/components/QuestionScreen/index.tsx @@ -14,8 +14,7 @@ import Question from './Question' import QuizHeader from './QuizHeader' const QuizContainer = styled.div<{ selectedAnswer: boolean }>` - width: 900px; - min-height: 500px; + width: 100%; background: ${({ theme }) => theme.colors.cardBackground}; border-radius: 4px; padding: 30px 60px 80px 60px; @@ -138,11 +137,10 @@ const QuestionScreen: FC = () => { // timer hooks, handle conditions related to time useTimer(timer, quizDetails, setEndTime, setTimer, setShowTimerModal, showResultModal) + const progress = 50; + return ( - - - 0}> { type={type} handleAnswerSelection={handleAnswerSelection} selectedAnswer={selectedAnswer} + progress={progress} />