From e43f9149a00c5b7a998ec82c63ebd1d5962e4dd8 Mon Sep 17 00:00:00 2001 From: mohamadmahdi jebeli Date: Wed, 13 Aug 2025 13:41:06 +0330 Subject: [PATCH] add some features --- assets/icons/MDS-Public-TW-Button.svg | 4 + assets/icons/calendar-tick 2.svg | 11 + assets/icons/calendar-tick.svg | 11 + assets/icons/clock.svg | 4 + assets/icons/dislike.svg | 4 + assets/icons/favorite.svg | 4 + assets/icons/game 2.svg | 12 + assets/icons/game.svg | 12 + assets/icons/like.svg | 4 + assets/icons/nearby.svg | 7 + assets/icons/nearby2.svg | 7 + assets/icons/profile 2.svg | 4 + assets/icons/profile.svg | 4 + assets/icons/receipt-discount 2.svg | 7 + assets/icons/receipt-discount.svg | 7 + assets/icons/routing-2.svg | 7 + assets/icons/star fill.svg | 3 + assets/icons/star half.svg | 4 + assets/icons/tick.svg | 4 + .../wp1929534-fast-food-wallpapers 1.png | Bin 0 -> 203918 bytes lib/data/model/workingHours.dart | 49 +++ lib/gen/assets.gen.dart | 86 +++++ lib/main.dart | 5 + lib/res/colors.dart | 4 + lib/screens/auth/cubit/auth_cubit.dart | 40 +-- lib/screens/auth/onboarding.dart | 5 +- lib/screens/auth/userInfo.dart | 175 ++++++---- lib/screens/mains/discover/discover.dart | 10 + lib/screens/mains/hunt/hunt.dart | 10 + lib/screens/mains/navigation/navigation.dart | 151 +++++++++ .../{ => mains}/nearby/bestNearby.dart | 44 ++- .../mains/nearby/mainNearby/listScreen.dart | 270 +++++++++++++++ .../nearby/mainNearby}/map.dart | 304 +++++++++-------- .../nearby/mainNearby}/nearby.dart | 211 ++++++------ lib/screens/mains/planner/planner.dart | 10 + lib/screens/mains/profile/profile.dart | 10 + lib/screens/nearby/listScreen.dart | 263 --------------- lib/screens/product/item.dart | 221 +++++++++++++ lib/screens/product/productdetail.dart | 307 ++++++++++++++++++ lib/screens/product/shop.dart | 286 ++++++++++++++++ lib/widgets/buildWarpedInfo.dart | 37 +++ lib/widgets/customCard.dart | 100 ++++++ lib/widgets/dividerTitle.dart | 27 ++ lib/widgets/openChecker.dart | 83 +++++ lib/widgets/orderType.dart | 9 +- lib/widgets/rate.dart | 51 +++ lib/widgets/reviews.dart | 102 ++++++ linux/flutter/generated_plugin_registrant.cc | 8 + linux/flutter/generated_plugins.cmake | 2 + macos/Flutter/GeneratedPluginRegistrant.swift | 4 + pubspec.lock | 72 ++++ pubspec.yaml | 1 + .../flutter/generated_plugin_registrant.cc | 6 + windows/flutter/generated_plugins.cmake | 2 + 54 files changed, 2465 insertions(+), 620 deletions(-) create mode 100644 assets/icons/MDS-Public-TW-Button.svg create mode 100644 assets/icons/calendar-tick 2.svg create mode 100644 assets/icons/calendar-tick.svg create mode 100644 assets/icons/clock.svg create mode 100644 assets/icons/dislike.svg create mode 100644 assets/icons/favorite.svg create mode 100644 assets/icons/game 2.svg create mode 100644 assets/icons/game.svg create mode 100644 assets/icons/like.svg create mode 100644 assets/icons/nearby.svg create mode 100644 assets/icons/nearby2.svg create mode 100644 assets/icons/profile 2.svg create mode 100644 assets/icons/profile.svg create mode 100644 assets/icons/receipt-discount 2.svg create mode 100644 assets/icons/receipt-discount.svg create mode 100644 assets/icons/routing-2.svg create mode 100644 assets/icons/star fill.svg create mode 100644 assets/icons/star half.svg create mode 100644 assets/icons/tick.svg create mode 100644 assets/images/wp1929534-fast-food-wallpapers 1.png create mode 100644 lib/data/model/workingHours.dart create mode 100644 lib/screens/mains/discover/discover.dart create mode 100644 lib/screens/mains/hunt/hunt.dart create mode 100644 lib/screens/mains/navigation/navigation.dart rename lib/screens/{ => mains}/nearby/bestNearby.dart (90%) create mode 100644 lib/screens/mains/nearby/mainNearby/listScreen.dart rename lib/screens/{nearby => mains/nearby/mainNearby}/map.dart (63%) rename lib/screens/{nearby => mains/nearby/mainNearby}/nearby.dart (65%) create mode 100644 lib/screens/mains/planner/planner.dart create mode 100644 lib/screens/mains/profile/profile.dart delete mode 100644 lib/screens/nearby/listScreen.dart create mode 100644 lib/screens/product/item.dart create mode 100644 lib/screens/product/productdetail.dart create mode 100644 lib/screens/product/shop.dart create mode 100644 lib/widgets/buildWarpedInfo.dart create mode 100644 lib/widgets/customCard.dart create mode 100644 lib/widgets/dividerTitle.dart create mode 100644 lib/widgets/openChecker.dart create mode 100644 lib/widgets/rate.dart create mode 100644 lib/widgets/reviews.dart diff --git a/assets/icons/MDS-Public-TW-Button.svg b/assets/icons/MDS-Public-TW-Button.svg new file mode 100644 index 0000000..e8f85f6 --- /dev/null +++ b/assets/icons/MDS-Public-TW-Button.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/calendar-tick 2.svg b/assets/icons/calendar-tick 2.svg new file mode 100644 index 0000000..032df26 --- /dev/null +++ b/assets/icons/calendar-tick 2.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/icons/calendar-tick.svg b/assets/icons/calendar-tick.svg new file mode 100644 index 0000000..1a40cd0 --- /dev/null +++ b/assets/icons/calendar-tick.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/icons/clock.svg b/assets/icons/clock.svg new file mode 100644 index 0000000..baf3724 --- /dev/null +++ b/assets/icons/clock.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/dislike.svg b/assets/icons/dislike.svg new file mode 100644 index 0000000..9296e56 --- /dev/null +++ b/assets/icons/dislike.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/favorite.svg b/assets/icons/favorite.svg new file mode 100644 index 0000000..9d38161 --- /dev/null +++ b/assets/icons/favorite.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/game 2.svg b/assets/icons/game 2.svg new file mode 100644 index 0000000..083e3ee --- /dev/null +++ b/assets/icons/game 2.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/icons/game.svg b/assets/icons/game.svg new file mode 100644 index 0000000..135a362 --- /dev/null +++ b/assets/icons/game.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/icons/like.svg b/assets/icons/like.svg new file mode 100644 index 0000000..8fa0663 --- /dev/null +++ b/assets/icons/like.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/nearby.svg b/assets/icons/nearby.svg new file mode 100644 index 0000000..430b2d7 --- /dev/null +++ b/assets/icons/nearby.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/icons/nearby2.svg b/assets/icons/nearby2.svg new file mode 100644 index 0000000..e9a9fa2 --- /dev/null +++ b/assets/icons/nearby2.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/icons/profile 2.svg b/assets/icons/profile 2.svg new file mode 100644 index 0000000..24fa30e --- /dev/null +++ b/assets/icons/profile 2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/profile.svg b/assets/icons/profile.svg new file mode 100644 index 0000000..2b6b434 --- /dev/null +++ b/assets/icons/profile.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/receipt-discount 2.svg b/assets/icons/receipt-discount 2.svg new file mode 100644 index 0000000..a7e8180 --- /dev/null +++ b/assets/icons/receipt-discount 2.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/icons/receipt-discount.svg b/assets/icons/receipt-discount.svg new file mode 100644 index 0000000..b83165f --- /dev/null +++ b/assets/icons/receipt-discount.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/icons/routing-2.svg b/assets/icons/routing-2.svg new file mode 100644 index 0000000..8199083 --- /dev/null +++ b/assets/icons/routing-2.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/icons/star fill.svg b/assets/icons/star fill.svg new file mode 100644 index 0000000..7ec9167 --- /dev/null +++ b/assets/icons/star fill.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/star half.svg b/assets/icons/star half.svg new file mode 100644 index 0000000..86f760e --- /dev/null +++ b/assets/icons/star half.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/tick.svg b/assets/icons/tick.svg new file mode 100644 index 0000000..41550c0 --- /dev/null +++ b/assets/icons/tick.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/wp1929534-fast-food-wallpapers 1.png b/assets/images/wp1929534-fast-food-wallpapers 1.png new file mode 100644 index 0000000000000000000000000000000000000000..bb518537b58b1f8f389f6358b6684fa1b1149678 GIT binary patch literal 203918 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%0AR*RtW+O@Kv5U#sRAr^R>+cTpRG|8pS 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

VOE^oEM4+ zJe-05NVE1$t(sVXR%|O}Lkpp$~OVi&Gnwc^KVM+>>|4 zuOhuLdlk02%eazvK-$upP-o??4fW>sQtq!`HpkmWPR}1mK7QJs?~Yl8+z0AB ztzyNFG~(j8q3-MZTRXq2X=&?XRFG-LhQ1p|taEv=PI7kk5b?+s6tSRVx|$+%ejSQc zqd^b?py}XN!nbH`=an2CoM4~j8PPz6aBKqV)>+eVNCm3;y2gp?{BAbQ!kAGV{ngcl z*Mp{pr|?8fDNQn?Iy#l03%y{?i$qPlD~#BnhuT=ORAaO4ZP1DbL#lTYkB-oP#uG6G zED?d_l=o`U`nelx%-W-;QP6U8Bq}5u}syvoD@@e%bE!S1myedB<}*bB2sj zyvYhfH3a?e=%69rSMuVcPvvZZ&gR~EK096IK%>(4;_H^63}7X<%dOV(=*hc{|NTtf zynZeZ9)HmsnaTGmX#|^RELk^dQa~o3qKl zq_F%G%9@q!EEjKHkc0NAHuKi-&Jlz{NAHUY&SzVg@yz#mH)l`4R6>$F)B@xHZVLdIjIZ+{+UN3^CwdC-t z-yKdm7t~f3DtT=WSAe?DNPT%t0!f{=lCF555Gn;a#ug3XDeQj_Lk5A-}Kl-pax?an$2^r(6naA zgNKi;^4tCKWur|_El#@-6lOYgk+DeYiX0Uj^=KqrDL<_6nSZV_PQAUpD5M{@+s17l z%B%@;+QHjsn`99eX9o{tb9UQM^mV(ARuVjrb-UiJc9w6yYihdk`tDfudNXQitd^P- z^QH;vJLAsHK%7n+06%Nq93h5NSFF7hkQ$}m$M^;8-7*}5k@`{Be!?#UTHTdcSoaz#=14(c#XwZ^r1Oob3C z1lSnKvFAMMG6Yr(qZ)!9qVRD`2k*t5ooj}EN^x9V09GDItTU29mVH{`Eb@nu+EHO2 zYJAx}q)=)2NCy8vk^ymZrT6A{P=?IhOWxct1SIZ)$D3&#OoMU||4E$9&-_m+qk@4D zl``n8VexHQQWei!jR}$3W7=zt&qiER?LHbOzXDNpSP23mMEH*DHme9@JiiT;VL8CMB zdLbtV2lDOj|07vhyzV-77C7^+U|o#~=fYPS!2{Via)b-2kUo@0k0yEX`3rga{()3$ zRgRV<=HOpq2hC3)x}dz?pyGPESdCXnxTTRCl1hjvA&yU8j7!dj}< zn0Ik~D4TR+B})-4f;HD#8%8i{q)cV$0LnX9_f62}TSMA4tr!H+`0l)FR?K9+8f68v zhRM{Z723p*v4Z==8A$}KlUh2ra`NC^@o?A>81X#~Lc}+;ZUqhBA!8OLB*mj}EpP@1 zAqgoCN4PGGIEfY9jZlzJgVRT7-lYJ4iPuRE1onhuCBi|lTN!jY(1U}gF3w#zI|{Ed za>%i9hri{zzp49X>|b?wr3+`wo4>zbvy$qs!M^Bx%rw`#j7WRm(J8wNWFuul-oZ{W zbdyUwX$UkS4M4eQ?oRu29T=b*#zH(*+JDxxcOdIESbb z>oF>R58SlQilMMAa9GMPXF!)F_N30A7bn8CJmRGgZP20$5f2L$fv6B5Th=MBL1m$y zwSMC6>Plo7A@-Wj4e|lhRMGOB3Z^xK@Tdt=71ZDP&L3GEb+*z-6R|hXCI2_mB1*$9 zaHydFMI$@}BxnFsK&!uU&B5WZoSZ+Di&vjDssj9MreztCPHx4TFQ}pqB!#EJ8TA*0@Lr%S3aQo63=_cvMC1(IFJt7MeHD#&LOvX^TId;CqbR?g24)=#L{7-_W=j zO~T9rlicytk&nJDmsoWfQ>}&D-Kmf6{G*1GpCP2i->VFQ%{P3CL-14Yrvk*ZFd?11 zzGv#0IIV$4#8Ik{qXoiql_O!HIC(i{Ed~YT!bw0Y^_mf#uMJ@&{fN1TU#QS}Q(cj; z4t$nUmEL825YjQH!@S5_L<)uUAOR)NlVIP8BVC*rtc#)>r;J?Qr!<)263;C%j=lDU z4YvVNtft#?3wO#T#X9TvsrK=Q-m3jsKz(zqrI3EYJSum)2o2$&VxWaWVfccOP8gK} zLnAv1XIgwTTL5%2qCka|b|<3nLe)G!zhY-@GQc#k;enVXqD@lY+}y~IzW*)DvP=G~ z3467K0F}r{^l_JQrDN{UcTs_`wwHSN;MAUP)94c|e7|(1Dm>@BU^GtV{xYj%H&|_M zaxf&)cf8F>6Xv&??Kdqf1JH^!l>%x>*I~i5`u34kvPg5v67KmTJwdNforbm4eFinc zs_^$&ItAp&TVLzhuP$F|Jlm#m)5piBa;Jrrg3n8kU|t8p$$B87xg)HCGNNjREUf-= z=Z7iv24P0XE)v4RQKM~~GI)HsS*#0i=>r!RP&8XSal${~9N zPl@jvA9BPovOBdazC8yfxo5oQ_9f7&`c?|#{M}hD(xX7UENe}}0J!!(jh)`Y8JMNS zz07wp*VvCjZd2Fq^5#lBU=Q-Z6#&H2^}%Vp+(KpFWf8i^k<{t}QCX+uG&?i@3UiPpEolrA|xg z94@0!_EC2g2LUGC+o0|mDAdj~D-*~p6qR5pSTLgP6{<@&T7=Rx4f}(8xwpORAjOM- z*)#aI$u1=mjiWd<;{GPxFdEIFj$`Z7IPVCWsu0a}VN+t$^6%WV)|Ge*k0$sNw*H9) z@6NYyFbX0rIvG z&XW0hxL}Mia&qE}IR-E&_skAm~w&yG-0RG8ZZD966$DsKri`YUUn377wFm{$r^v;f7;BicOmxnm?P z_)w;@hk`9g&=Bub(iGbD)dknJ&?@09*tzo7V40Rjwxp1E&QIh&{jGm!2{9JdmtAq= zoOQ*5wZY!c;?eMBSnEPr=|E6JKDAS}wz+%s_=#M+dDE|v|Z!SF~MS55K$(d5{)`<^uPeBV$s{TclL3pbhbr&Y#{P$P|7y^A}` z|4%GGTDZCCp^k&?pZ5q}q?qFGS|eZ+hds)V@kCIPtg? zYyk)mEtv;Pi{POP~7{mq4Vq{|MPSX|k= zssf{_mi^8gg~9m`7JrI+;eNA4KP}{{(LBq=+6uPWI1A(8^?#bZ*OY}Oxy-C*pHkoX zaSAfP08XghYvKv>_Yo-Qb2|P?BHbfYe8hg@skpKn9Ug-IO_PlAHu04!g~4z(u_;}X z%$7!p1d6;zE4YI%v*th!Xh4CKyAiT!3oq7V&0G8+Ov=mw);Mr)Vd7?Vx@2;*H6z=| zij=URIEd`YLWY0}2%RQ}Q0{P~U=5mvLvCX@> z)(R}uKuD2c>B||GQ5UdqSUN%GWly{Es0?*09_CqUPyAs*4f4AX&9vkGv2^u zl7X<<%9OtI=&}6fx4$L3MvY9%14}cE9GyOf<&a=aI9&2p5!g653{ZTN zT-{^-*6J9XcNW5_h+_hb{4o;U(A$LjJExFELRpk)r5Eu`YNwwNuYs)!#Q_OX zBjE*#9K*BThueEO*50fQJtMlR4lR6#LsxiOUDihy7PY=McGaREZ3QiEP{*xa(Mh@x z@f@N;XO%~UbWeGftri*=CcV&ms{&oCJ9&y^amlt5drx7Z`tbD?@a8+eb0kA#P7F-W z=mhNoH{-zgK}&=9^Au}Z%b-z2LR8y~xeQ63#U-Icc+{mM(~fwey9wtbLfr6T=VSTh zTrvdfTM}*f+H>ZrlOv*HAlZP#=+a1?Lq`=cC}Xc900#)4IZ*bnO9ln*J_}m8@4W&6YR&AK zGy#eu(aTPb!YzYt!O*~_;Lfi2xcI(a3~(BcjbAcSI>1EA;`&_epf|84_DCf#iDyR#)&eEj^m++Tju48H?pl=AL+4>P?hd_3w# zJZVDnc)64Z2Z!>1`;Fg~M-Pr0I$zt0E$ne-@m6fUntncdgm#sV2x>g2pA*M5QGK@k zWwoB<(Zk2G+3c(Z)GGO!*Pw)SIu}+8yPfR=SWB6fR(JBd;w?@X;oPO2wFtXv%1RSQ zw6)fhDTCT)m7hlP&lZY^il_2fVmnF-p50a`&;@_DjOd-X^VaLpIHEWDNzs2s4_4>c z4_52ukZsP=j6zlm!@*VPXhG#Hk0QXq%-nR<(17u2iXz$s))kWnRO2+MpSj5TxrvjB zz-!x%U3`=1-?d5FYD;wEcQ+AxXbwPz;&~o>@*usf}l#vR_% zJo_7k0xpW{bkKnRr#R;+?#wkyIH-xd4XX3a(QE+M?jby8Jev|LF$6phD#aD{qD*~D zi<_-pdCx35_w;)TdjdGIcUO_9PUnh|3c#1d^&12>muXj{V-TJi1s1&Xk7mj>7FC=w zFhp9JJ*T5CNYI$)W}z1CG%Xe#@q6F>R{Q<7xjEQ0RxmclK$-hmYe{SxAN%<1OuqNy zAIj~kPc2nieMV-PTCg0Rbz8f)${)%ii%Oh0oLlLL(Q_aWKv9Fjvv9e(v^mwT+uBH4 ziws!-du}kZ4{@lYJgtPqKil{Ko{A-)@2V@*iVpRLmS?$bZnV|9+OuMBERb2Nt*YAE zZ+F`!Bv)1{BKsi_0HMqh4DK6odNz4sHG3cgNKho0CNe*Pfci>)WV!V>?SAJcXL8e? z+iG#J3&BE|l%l`Qg=T(*hf|CnMRh8qQUh728KxOYiU3y4`>9PK=bafK+&s{(UXCv5H>DVarF?+k;)wpP~TR6eH;V2@K|4W1ll!Ijf3m^hrCcY zRmLndQ>4C@KSlFkl!=NY6&Jcyf@cW5N>!gC7zAah0h;cvgCQHlyV% zF(%7;rOj?{<@O4_4;45rtdLiZt7JMf-3h4Pth89kbhzMoN1s4X^fLRNiUKN6pH(ad zIwOe6)_Orf3Xuf?YmKBM+D!%kQpE!xOrD7&#~Mz{J`)naP)0^UrH-ywn}03C`noxB z*GXcmi|zdl4|3nMKr9_u>}|@L5!<(IqWieCi>}&)HtnkO-B5MjRcsu3q3t@QZ&a(8 zMxmmaKyO~Xl%p@6$h4cx!EvV^Tt_C#3soNS+69P@(z{&y1VAHoXI>Y05(o{ctVF$a z2v@SNsnZo18>cho`sHhI6-bo}>0S<;MB3B*}b|nzvof4r4sJxHy#l;rcYgmIG@%6xAF#*YLvx&k2;|$`8 zVucr_b1b4Dat$OKHc`fNmsnO5|H<6HJ1<5rp71N|LkB@;V2MS-ELw_fzl&X@8p1Lh zYsg*C+S0D1Wj7W5)y8M4fWBM7;r`L{PvpZt{0HrGr*S5wr~q%ga{IT_rn6_~^5EGs z`O14=lE3uN|FV4VYA3J$`u{=JPtMpP4C&uqGsGpYSK%`+1I$`+;o}M$dKomroID$p z%(Mz>Rft++dBPejmRSzl`0nm@#-VR*nmsHIeIQ-Xs|BwGkfsGXo~tE+exWWm5``_< zfP}rLHKdQU`d$0ep>d%*n`c$p%73fi)Gjp!8eJ%(93;_v8f1$nPzeDgPL{2wcq%`h z8s%|?KWh_#S>QqCM5X;V7YO^+EovNf zFSCKdOBC=pW_TtuTRVb+pQW-Zhc7aPTXLaULnEdTvR!MA^&Z?rf{bvXL{aBM_WRfc zD7<~1DUAH}5Q?s4O74Oxid*H_K=v(7p=c6?ukbq%yJI4JCfELR;+Se|dVh8qRHTF= z?9WA%kz62hy$TLm{1Z2IxvoCX;n+-}R6OqvJRpUpbmir$En&!Q&36xN)PIIH zE};a*XX!{V6o0~@E5YADc+bUuofw8k+NA(}&6b*+g4^~A3Knu!kecnLu%A2648;Gd zMNS$2olx1XSZlSJ*IQTzj>S$ZzulWK*yw+zyC$fY&GA*_|MVaJU!>k$OIklN;gpWf zWbx=7d8eJbhv(<=@bM#g^6pdl>KDH#UwHCZe&J95oct^2Pv!sq@BS}kxm2FC3397q zm#qq%?VaKR(<8mRwK^8{GRIz#;N?dJ40#FbRG)3NsMh#HGir~HjvDfBR7YA`+H@xE zlzEWQ*jB7ww1v=BG(y&|nZPILZ=e~8EJIZktP`!Hu#&2(fZDui*k8)9mkSG*%{-*& zRp|y2l{xpd%|Zf&VoE>clOp6L)4;J`XN{6kr?BOeOmeh7kyjV5o5Pf7ogZCfnl3dq zxtMcdL{%Q$g?(5ennD96RMX#WwLo^`i`3y#`XbEC?6R!Ex{rd=R5UDTZTNEyGlJ)`Xd0|n&;d3_3xp45v`5l5)+$m~Z9rQ^w2j)hZx4Uk4*WO2 z|2_HU-}{dm1#pD8=n2B;;J!KfuV2e;-N>$efAwiY*+2L|9zJ{|-}=tCn~&*4=F>x2 zA84G|A8o;CT)d{FSSESuIGlAaNP)ZuHae8npTk{*>Uhc=z_>qN{ z{u`wbsLaYto_;go213j$)nOWX+ZAv;2#kj&(;I|$vyAGj55mm9Ce>em`a`KtzbGfG z!{)thPKsGI;>Ju*ea~D6;aa*FwoPo#74lf{Xmu}p!UvLj zCPQoyH5r=WvzI!GuOxZoqlP0F5;Ep>6wKoC&T0%uIOTF5=l+HIPgP{VjQH==)8d^c z_3_tHfyAyFHkc#hB;*uJS15x55=Wk)*jyN=pv1b&P0=w0yk6=0Nd|aDfp06&cf9nX zS$xLCK7Uk{-emRp`L!6Cs{$=FeabAQQHZvRL^obq>;(G?Jmj52BzDzd%7s zL8V5R*`zCk{sK3bMIzN6%8N}0N*5{>9fgf^pDnB~Aqph#3^m#>mJ~8IQ+Z=F%9%Rg zn{ZyVbM&HFsQ*b5&RClT_O^zWUA~exZ$6jTUdB)xm>xDE{NRy1_{vx0-3KS~lb2VG zdTfAgS{d+~xwbM@qQ@er_iwEF;QXA4qIo`@%cp#qF#Y10l_KurLO~);T3Mv63C<%G z#EUE!S|(KyAseek6NE~~J-4k4K*SWDA?gK$Y6_e$7XO?v$GZaB;q>H44%@x&H|^dV zEr4`vKC^7ap-NW(Rr+3JG*S1cOW$>hn9Z;1R3RPNmCjj#oH{-|m8**@hE$gDP3a^p z9CrIbw@sL#VZ7kB?Ztx0)W3VHKx`n6*xrN8t;r9`O#N9?)H3i;vf1UF{YeGVR^B{s zLi*AB@}Oz5WixB;)mf=)vMVT4ST=I6hrryuXknxG+?rf~Ib7I$)^S><77PpkVNWRd&l25dgy(ex|`71$xF~eEugRA zTikZ7{h0^&o{-4$4pG3?Hr z%|0@VaN_v&ZCX~$+gg=0i--Bu@nI^*XHq#M>dBp3vxLl$*_s{PsWihq8V7<0fT~?OD4Z$tK{f$b56k<+C$+`0l&%^{;;z)y!?fK;m^xQ7q{{s|6l))&6!RoTYDBQm~Y87nMzTZ@DkWm#6vB^dr?bJQ@)XF z>cySx6^_e-58C{lpPtB@*B7!`Y~=Xhup!L*hV&J+OPoE_Gk1z|lF?D_@A2rb(W#e7 zO==R;ys%ggL(B(H?2{Po5bizsSS`vH|<`&!MW;u{a&K~=j4Jw;dTQk?H48IrtqhF)}L zYA!iCCNAI^Ahz^g7oUG5x5qc~;OuepW@d8^sHvfvw3fA;=;8L3>$A4I)x=r_x?kHKCU0*a>vMmaNxy9{aUHtqxSj09}tv z=u_NIokKIv!Nj-r#u8N`^pVd4?wkVUIfdXiK#cnF#Z};3>uI# zKv)5fy@q1(wb2u+#+Pb3vPK}N=YO?c+20QJ&CNX5)=oeAeBpD269E!w!1wg^7UsvqruoMX}{@9&{Ba#t?;_9&(`4F}VaF8*Y#gNMW7CWA=u zEWS?@3J_L19EBZ@{Yp5d*6~ATo;yXnJ6;yuz%>n1-I&|!=W^dR-nQ}5n|dF$J|>31 zWKGA^$!>^2dw*H;$>|6JSIszP{6IPEpv~HCcjo!snYmUd%qznNb-ZP^qJ`EqW@a6O zWSz>O4o%}TcGfe35;b_H9B~W55w0hKj1ErKO~{;dOGP4~VUHU4r+gRxeMG6l%K2uo z8n%8AxQ6}1GU|Z%bL>Rl{9`O&?H?T(#)u551IItiLr+lRD1$do!*#pW=7E(I!)_sS zNJ(Tb{#N>-AAkm|5zPBiuujS2uhr9EQ)J_riA|xuvd9d722ZtjMa=_g16qj3zB`h( zk6E@XGUalHGt``W%$l`q(~OWZ)b!-f0>QbShW@_u!FQxwd}yCZ3q(y>T(>F$&xWI*wpnaKeRH>wSC_X<@L$S<<2Ul=)oXe0 zOJ8krXWjPdrhRsW0zQI-G@pxzj3DjDG#O@T3fo3ah+Lpjo(A0x2lB)^A~|Zs-)=TW zZR{Ggao>dJVMEbt6{KcJ%qH|uI=9e!MtKyLzl4%@3FPaOr2AKLMP28ua=|($jql!; zZF8(10DaF`+g$5gCrrA+u2Ayk$4GFbN?1pg#mY23eP{d6Ms6Ki8ilhykQbLPEX7$}s?4=6u^L55qigwP6enHtm@K<3I=Q@-Dz!aapr z3FMWUuzhg)uu&Xsac)>5Q5#Fn;6&UJRNPVLha&?eS<4=#kpg}20HlRgt+MXGrVJ(v zRG-==)bO5ZLh8DAc`=lmvFOej7osM$5_Wt(2zY~9mcQ@t(TfumR_z0tFR^fj^f{?; zAh-sF6Uz+(2&fQywt*8jcT}QF-4W{|-c*$LjI4;O&b3BY#RVQQ=o>zA2+@8miABeK zy_i$!Th?Bf0xEUE>EUNQL<#E5n^@E03qkDiO~=0A%t-PwSU|q&Pl&m9u>S=zj$Vy2-{nQPB+^RJB#X2KhJ&RowrShoUKpf(R*K!|Nj5z zzbF5jfA@bYpMCRN?K#dke?)T}7cw$o;+G}}RfsF{u5%Mio1HnyZfn5-_+iknv!WtBSK0-v8J80|Rc-9~1)bAq#1p-l;fleE3Y8|(mfV{rFl+)u= zYd59qy-aQy6w*ToZ4_$~fNMtPa3!c=Q-xBI4KfK8tcZAKv%Y?PKg(IOTCQ&IP2pHO zuS7?BQN_PAg|!$V5zi)&-Qb~i?udS6q7rwkV4&eFBtRjDFK${@KS*W@z_sqJaD*G! zHc@-x^C$13Yq++fXgy_EGqrT+^w(X2iaJ{$Od7dwT9x|)&5z07gOXG(bSL>!btTR zik6_%cQFRC;stxxLrzrzsKc(R<)~2y>mxaP{Jy;R#V^P|_e;Md-}uJQ%aEj zl7iZcdA3<+pT!Dg7m7WUF+a^Es`!vNb*I1Y>}+PayT6sEPaeuoK7B5$rZlt$$6-60 zm%AFu-JPtX*WanD2$_xhjnqo!*-vJ{ly=SA%WIjwxR8g(=knuMKbH0S*eDy?;kK`p zJKki}aRIu9OvL4#qV&^H4InK@^{DchjDc-(tRa+xgHyS9^NN%ZG?z732u{#AXg{2B zG%(>=XwJX&nw_$Qa1hRLr#Nx2ebFKgxXPeag@@D87pQo1HmKRDo38OdiVT#aSt`oa z!Kf#>832o=Zv-Mi@&k!fh8?!zRn5@R*y{<8b&mb3JA*i0JG8nK)#}xif)DApG2s*t54>S@T&_uY+8NO^wYb9_%0< zcVEX9b90lu_k=>0GFNKt;-V`i?>R{ygx$JCdb5SHmA-HB9TwrJ!e&-=C{!q@mjR!J zjX~!V?szJ63bMpflS*f(qSJk?#d;1F7Fwpr{z%&^X)&V30)>k*_~vQVIOg@b9q2<@ z9i7Ng<7Cgy&*kXoRGvP1EblfU_Rc#`<+Qz?He30ZfAv@7&-@qu4f*D;{|D__Yfeg$ zPABQ$7BT0Ed#|vHpw{o$Y07ci#AgjrUSG{}kop>B_S3|Xs4{keuhFK?w~@;Pr=Ys6 zqr^_mGq_w%U7@8w7GmoK78>Zlu2cjma$&htd`7sTl%;c-*RNz-5HQ>7RpH))WkrN zt@7$^J#CL`w2daqXo4QCcho_*g#pU%4j`G^$H!Qr#)tEl&U^OFMSF{Z42FFzjgSEbOoIJSDO-V;W zz1~R)?av*sCtzbY@rN7{9sEPrmQaLT zLn2QsMCRm-)wgdJ&kAO=m5^_LU-3P5-JH2r=*^kQKib*wF0dJ|8~vdjohKm6OnOZf z!_us=1!y_#kJp5gwq4SLtLe+@<^)_cfTE377tM)x+JyAFISIAXi3-u1`<*<0@k;K` z@8v;ru6_LR8~I=Tum7t2tAF9IxBK36KMC1 zDPe|Rdz%Ii?CuL3t9FJElbve`;q0Suc;Mlf9`N9C%nl$`?%lQfT)cWE55Dw39vnPu zsCsMF`+`0Z_t9k*Xkv|z;D1vGS0+~=$W>o&g$23VylOb)dyk&T&DD*K+XQmW^!O3t zDUxpTZxP*`tL)dWk?t^*;ekEG42K?$KIbhZ1XvnQV_+GIpG5CABSeM=)`Hnb>r*Qn zB1)p`-*;Q1Gi*FjD+I!IrnlI8iNLcDWq<=nlZ=kK-l?Mo>Io&|*Py%;3Smk`aqMW& zm>yxaYZkZlz4ix#82ik*l1hUdw~s(DSn5J`=L1qtr`X&QbP+!)y+kI=IFD0y@r8}w zg`)qw@QpcYV4AzJ#gaQxd@e%0Vv}Z(y#i5Ok0ftx9{ib(H&=#S`&2{GCf>7>(!dyq z=z<$}rvS*M zn>(47*K&7pWkP%1P}t$oksKX2M16K5ciR(FQy-av*j_Or9vHGoS( z@hR?&T(d+}vqg9oiyLnjZ~m@3xw^iVXYal*Km6!}#=$qmXrOYzgXHq81Y$1?#Y7tr zgT>Zg5Y#2o&UY1i(iBfyH!W+ry|`$~8I*4#V<9$j)Jo9-F9P-LX&!t{ocMX*M0(pM zmf3XpRVzLCy>^6sR$+QgQ5?R1&1U90>eE544$fq?%yMzvgtKzAbBX?6IIswz3!b!) z5A-i?7NlsCMsXDC!<0H4*e)=46b3z!gZnGejS~wkmGO4s4{Fzsxkxfduh>Zb{8-p2 zgd3LDg^ffcgWZ)p>|PHu3OYwFXfvNe5xIaBSER`!IN-QqIs^ng!_6oL@tJ7v#0qLc z`okk9;^Gu$6ky!BG2a$roVpNo0qOnQOfCX!SOiW8WYEp<`X^jR#2s+h=-{Fq(}x%j zPH^PAYlP&bFvmTsEWm}Cj@%QjccsVb0#p#S(dIB0&`i-nhf-#Dc{5TAu92)Gw7_TK z|k+xLJ|w%EYSPZ?#&>)lE}=Z{EoJ@4Y9_KRW;=B}B?hWJ*J; ztx^8e+Tl^OJj)Q$7E#?^ziCd{Q&z3Z+}}D-E8J%1w;FI&1+O(atZx*arOMk7XheMD zmpiaZhU3JM7Ru@Qrhf~4Qh2NRq9sQ2AUtvFsqt!0E#kpC8C2i+9Mz2210a{WHyRhe zn4cP?`}i(U=QS1)8;oxBiV}(zid0#fm7CQfZ7PJ2mM)y8j-dPicZ>=X(6ME2zat@d zAuzGPbcFDdNv9qJ+e6V2Muj2|`=RmpeyGD0@{YzhwAAI~1S_*8!U=0&4g z(D^$tF$rZ~dA)>M)HqqCQ^H2Ks4Q9Iy_$|+w&tHu0sZ{-ORM{#ie%wR$qLLZEOAEt zXxm95OY*0t)&5fVWnq5@Oc0OZbq(wb;bBF-5N^<5=rhgRP+lCd@J>AZODN=ODc zEu)a`2gWy?BwsgQ0SV!j_Q?4`+9hi0FdqF`us0_05W|W?)t73Qc> zYii~*&PBX^6@Jl4awDDPJoi+{KT2p5A^lQl7 zrkV8`_GJQ7=I-WJ&L5sjxzp0A_qO*`(XA&aXZPWFsHs`@+#k{6tfJw;oFq7Oi`mL! zHAi%cQGdY8m#^f}!-qzPSam$2TOrulFE^aRy7WdBR?V{{qmy*@HtqL&?KikSZ1fRY zY3Yp@)q*Llv5BNkuj#%$YnDTn8cg2L{L15G569a7?v9!ih$Ubk4x{i4JLnRRK#*|e z=n2y_OBIZ}Ej^fa*})WJhM*Y$=IEQbzz_FkYZ zA;;(tbDlBPm_QSfm0YS~DD#K>MqlPH2v=|Qm`Bt*7YOW~M{5xIDCbJ*!X3aaP@<=xh>S%3FRGZ(spA(*cfKdVcmS zyw>({HL6%?l-v7T_=AkX!r4Ob1Rb62f46O1r^jb|^7o(mRjUh$6q65+zlaNuu1RuC zKzPqX81?J*ur`sy=IF4^N)6j14*YPt2&M+s!^OB#*S3Y`XK&_M#Cy0gfD`HAg>{kB z_*scv<6eKgk@AKJ!^!5!&+u|ZXp-AZKt;SiFqz2M+c30FoZ$U=(D&rp(Xxk-5t;km zC}Fo#paxarV3wJaM0k#@JDR9biy(0m8&XMw!mN&xs&t279XNLGha??Y*M16|6|MzE zfGXQZxt6x;RXHH=ScHSNhuSqhRzp*-np5qjA?oWUuwTD? zDZls&UzPRapNB%M*gvTz8R?jUplIW?CyV4ji3EMWTD3s3u9PG|6IWFn`}*p;uvjYl0GXYn5-eXq1U`oB9lNJ#-Gw4vz_Yw)=Y`?bk{7(-_^Uh~%}pphlp~ z+gnEJEDbz(?Qv5UscR9P=Uv;Q2gi-ZSsnf?0p0Od-5XD+p#6akpF;EjqcbFhfRPc6 zR>(|88up%PVTJ#d^D^}1pji;IBq5V1u(+5~2lJv5p%l;%!ULQN1Ub2Ya5rX0(@&id233OoAKfuiF z*;aZuRB)PUJ;Mi4NLS2`cr~hL=DJ!>Dr9i#>!2!3a)h!o#@m;hTX3{uxErNANcm-y z3j~%a$?DrfDW@zjUPzOb8k9&9i3*UQo}jKRamtF(lg`;8ImM74_xsjLHtvAbW;m~G z&uTBgqp>)fD;K7$N)kr_l?huNO!0ifJhXi z7L9@TqXr6^-@>_vS{a%}czJy<&l=@$_TW*oB<{^>(1|`#)T@YEdk7A`Bh*@f(#TE; z3gg}rWyr)(U1kES)3#VQ?WJ5a;jEU*VdM1=4%cSE*mEVoz&Or1QK6GC^vzV^@YK-F zjZ#+ax(AKk@HMwuK(+VOgrJ7fzH6_4>Ct0zDERZ}w?*oqhlDr)cw|6f5 zQmz1`&tJUkKfC6ZeI?=4&z`lzbx4E8@`#203_y%^*ep0KNgU3jGYE_4)FHCN=4?j~?eOo?4Ss;QY-P_#>v4up=LsWKji!q={y5K#;iy+ae`SrPEg>cJ=nJ!^L&{jT+j zX9(v_bC4+qU9?_=QXm?Fsz_Uty0m6Rd(UkXT$%`R-OTgrCdA*ozLsD8^S>%W1lSd} zkW(e-@$FnABH8x-VzCt8EfvcXX8Bm{5seILx5A`H*7y-|jE#&uHq7vOufzWJnYZ;9 zruCyX$-&Wy?3#tJV=%#i#*ph6=^x6*Bi8}tr{Kx^nGmZbo$Z09uoN}jTN8*hMqQ&= z?(Q0GbbBSI2PcTIkRDR(Q85l)x-I4S3&9HNBv-0R!HspEYHNaMu}!Elvm|KQDz$QO zw6YQvuV1|!;OSdmE}YZwVDSpz2sGcIHc&+>h42pT8E9GLZN6JgiAgJSX=YP_2Nvkm zDFmR$M07YVqEvSBP5r=?VX9&?+0W2g*@dk*Js=|D8lel7TDtH}L}#gXR1meLh3)RE zgt=-aVex>&8bVH_E1o{5wF}<#CkW~^fRmUwZjkZMd%`HRNuWp1y4w3pczGDo#|tH? zd(UI?xO60%x>Lb5p?IOz(Bi`;b|nYXk4`}fYdD-xkiB!9i3FunEd9WPBB>EO4k7JE zxJM0;r>+u!A&i+}4;owPz6n0ZI5(MN$b)io-dmBo3AP#06-wHgLyZngL!t~<+u2xV z6y(|=-dJB#$E6`E{k!gG<->R2S7N3d!_=*WWAh1Q^PvIS(q4=;(Mw1 z556rZbVq?ZZq4dvO?niMpLy?4;?85#yh-xm4?mPA4<1-yeY2#tI}7f5eBAt3yE}lx zRC?4>t&s}umXLdKtU6_qh^X4SC2iff#p;t7U37INCkMxDE?bx_Os+d60z@YIaQ{Gf zYNz#u%uO3zx3xK1A2%gzc7iGBWgRn%xiQsI+hMGBMt0zFuDJkzMxam zo*6{8SR5^;K*LxsphveJq$|(T6)LuoP&OyZ-(C|!WM7xW%%wreNw;Jm9R2xu2&*q8 zjyJNk97VH1XmE3aSmx@&dBMU&6Ut}e0pod`&T;jX+#dD$PBl{OJ+j0cm&qMJ9(Tmu z5Qp2*f0fFLhTf;y_j0OpC^M1HeJA$lgy5P@NqGbU_~&Z1Ju2xPVI&2dp>P@|t(nmT zvy^){3yq_u28shuRK(-Y5pu@bDx4=bne!k$^zW0uF5Xp!OOjFub3f*GW+=neKXctIgX6

uu1&=_XR5~bK8#pcG!s8H5wI9CzwR3zWefkFz*paBDaN0QzitZ{{azkwTT&rnq=87Q?M{xX2!pOp@u)A)Mo>lY=hT!7NlPqlUd%Kuo+Yrdz~ zJnC~FKEaruN^aIwT$S!~MCM6~SEx8>{)fAYCUB6vx`wmB`G#n6`~2_6VICGwF#wHXpe^rMXOMAiGk3 z%cbsQbRA(g9qPdFnzr8Ud0%|~shplau-Eh%@3-LRPYzEE@jIf;vvK0Wy|WHe z6@4m`e@-jb!ScFqV>xdW&g-UBRasm5Iu4kdp3wX`gb6jmAPkagq;MdON6c|kiJ#&t z4FaP>9nng?2dgHacUu#ZliT4Te;KwSJY>=}dE)zWphYe)C(;|-6xYtRhF85>>A>P2 zLJ~*fs1v!%i3o#PaKZ(Mh45*SKj~{wBrmRKPv0_8(#if=^xA;pVzIGjY${+?7qrviA4`-4JaP`DGv zl&EmEADz(YYF(eRBX<1mN;%M41qzz1oFLZI>i*_T?>U52_I37s6pCkmt|X|ijzRoc zrr1$%VEXJ^CAuV3#xU3YniHuVFY08~VhRLAWgIsw8oKk8^@xx`r%#%2(&z>4-6!n- zIU|l*X_KAu)OU@OZk*@waxI7FPb^BK(}p-(5V{bC+Hk;xp$NyUFz-Dx=#bpbuBt zcy(#cLIWK$6UC&D2i5y<7BZu3%y^n-&a(#>K*4Gq4yBFWym>80Z4R}0uGNUIC6t;Y zX#}4T@h7D4&uJ_7_u6`F1=-cmwAFDD0uyW%^NGAWi?=6S~94c z)9gDCajO(cJZ$bf@t|$*Y$4T;oKL23`lr5W`98=4E=@-LW<+5j;M^Co<8KNLCZQyr z5>OH2qW4P05E*JfF_$gaz@fqO)v)H+R9#b-I!SvSm{VzDX5b@k!*Tt{Vtrd?f^E+WVjj>9MQ0|IMeqj{1Xt@NmYUJ7O{zwkN(C`@-MWBBxS*89 zZpPOd8DV>Bj}AmJ^O=f;!m$KRpl@aplig3RGe!~l$tV#oZnQ_Kksu}2_vsEox*+}l za6pg0dq)Sh{X8Qa&QiX2h-^ugfU`9YTTN>f;Oab7VRdl&2;(*Q8AC6<)euW~Vz!Y^-i93lM(lFLKWIzv^2*VRmUDJ4mw0LB}JL1r&HDu$!Q}xogjM zdnb>deNpB{bBNUpX>`Z^P97W|i7<)G5~DnFh_sVc!bkvIzCTssScN))ZKG6|Sw!9y zrcoVt?fQCTPS&TQt@*r)dk#fC@W~ZrNwuc6hA-}#f?Tf-4eeWz6_MDpzJGMyuG_l3 z^YB!zu5T=?(zCUZyIH3|qx%Oob5r(1kjURi*$ZHhzSUjGr`Y(uj`p$C4JvHZWZI@D zKu{A!23OzrZW0jg1!aKA^2|owEm1wxPI<(Ih7ot=f-Mzs)zXDqh}|k(b4neApY%{X z=gszzYrp;53I$(fe>Zn65{`(szfvIjw=NahX(T=H=V=g-VG$%Dg^`9a)Og*i_UWJ8 z+nmCR;20|>pz@${Qeq==675%zd|ir=F-&O_x_SH~wNAlxg1W%0ApL5D=I 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 z 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 literal 0 HcmV?d00001 diff --git a/lib/data/model/workingHours.dart b/lib/data/model/workingHours.dart new file mode 100644 index 0000000..c85a4de --- /dev/null +++ b/lib/data/model/workingHours.dart @@ -0,0 +1,49 @@ +class WorkingHours { + final String day; + final List shifts; + + WorkingHours({ + required this.day, + required this.shifts, + }); + + factory WorkingHours.fromJson(Map json) { + return WorkingHours( + day: json['day'], + shifts: (json['shifts'] as List) + .map((shift) => Shift.fromJson(shift)) + .toList(), + ); + } + + Map toJson() { + return { + 'day': day, + 'shifts': shifts.map((shift) => shift.toJson()).toList(), + }; + } +} + +class Shift { + final String openAt; + final String closeAt; + + Shift({ + required this.openAt, + required this.closeAt, + }); + + factory Shift.fromJson(Map json) { + return Shift( + openAt: json['open_at'], + closeAt: json['close_at'], + ); + } + + Map toJson() { + return { + 'open_at': openAt, + 'close_at': closeAt, + }; + } +} diff --git a/lib/gen/assets.gen.dart b/lib/gen/assets.gen.dart index a3338aa..dc393c6 100644 --- a/lib/gen/assets.gen.dart +++ b/lib/gen/assets.gen.dart @@ -21,6 +21,10 @@ class $AssetsIconsGen { /// File path: assets/icons/Line 4.svg SvgGenImage get line4 => const SvgGenImage('assets/icons/Line 4.svg'); + /// File path: assets/icons/MDS-Public-TW-Button.svg + SvgGenImage get mDSPublicTWButton => + const SvgGenImage('assets/icons/MDS-Public-TW-Button.svg'); + /// File path: assets/icons/MDS-Public-TW-Tag.svg SvgGenImage get mDSPublicTWTag => const SvgGenImage('assets/icons/MDS-Public-TW-Tag.svg'); @@ -55,6 +59,14 @@ class $AssetsIconsGen { /// File path: assets/icons/back.svg SvgGenImage get back => const SvgGenImage('assets/icons/back.svg'); + /// File path: assets/icons/calendar-tick 2.svg + SvgGenImage get calendarTick2 => + const SvgGenImage('assets/icons/calendar-tick 2.svg'); + + /// File path: assets/icons/calendar-tick.svg + SvgGenImage get calendarTick => + const SvgGenImage('assets/icons/calendar-tick.svg'); + /// File path: assets/icons/card-pos.svg SvgGenImage get cardPos => const SvgGenImage('assets/icons/card-pos.svg'); @@ -64,9 +76,15 @@ class $AssetsIconsGen { /// File path: assets/icons/clander.svg SvgGenImage get clander => const SvgGenImage('assets/icons/clander.svg'); + /// File path: assets/icons/clock.svg + SvgGenImage get clock => const SvgGenImage('assets/icons/clock.svg'); + /// File path: assets/icons/coin.svg SvgGenImage get coin => const SvgGenImage('assets/icons/coin.svg'); + /// File path: assets/icons/dislike.svg + SvgGenImage get dislike => const SvgGenImage('assets/icons/dislike.svg'); + /// File path: assets/icons/down.svg SvgGenImage get down => const SvgGenImage('assets/icons/down.svg'); @@ -74,10 +92,19 @@ class $AssetsIconsGen { SvgGenImage get elementEqual => const SvgGenImage('assets/icons/element-equal.svg'); + /// File path: assets/icons/favorite.svg + SvgGenImage get favorite => const SvgGenImage('assets/icons/favorite.svg'); + /// File path: assets/icons/fluent-color_location-ripple-16.svg SvgGenImage get fluentColorLocationRipple16 => const SvgGenImage('assets/icons/fluent-color_location-ripple-16.svg'); + /// File path: assets/icons/game 2.svg + SvgGenImage get game2 => const SvgGenImage('assets/icons/game 2.svg'); + + /// File path: assets/icons/game.svg + SvgGenImage get game => const SvgGenImage('assets/icons/game.svg'); + /// File path: assets/icons/ic_round-local-offer.svg SvgGenImage get icRoundLocalOffer => const SvgGenImage('assets/icons/ic_round-local-offer.svg'); @@ -85,6 +112,9 @@ class $AssetsIconsGen { /// File path: assets/icons/infoPic.svg SvgGenImage get infoPic => const SvgGenImage('assets/icons/infoPic.svg'); + /// File path: assets/icons/like.svg + SvgGenImage get like => const SvgGenImage('assets/icons/like.svg'); + /// File path: assets/icons/list.svg SvgGenImage get list => const SvgGenImage('assets/icons/list.svg'); @@ -126,12 +156,32 @@ class $AssetsIconsGen { SvgGenImage get materialSymbolsLocationWork => const SvgGenImage('assets/icons/material-symbols_location-work.svg'); + /// File path: assets/icons/nearby.svg + SvgGenImage get nearby => const SvgGenImage('assets/icons/nearby.svg'); + + /// File path: assets/icons/nearby2.svg + SvgGenImage get nearby2 => const SvgGenImage('assets/icons/nearby2.svg'); + /// File path: assets/icons/next.svg SvgGenImage get next => const SvgGenImage('assets/icons/next.svg'); /// File path: assets/icons/ph_cheese.svg SvgGenImage get phCheese => const SvgGenImage('assets/icons/ph_cheese.svg'); + /// File path: assets/icons/profile 2.svg + SvgGenImage get profile2 => const SvgGenImage('assets/icons/profile 2.svg'); + + /// File path: assets/icons/profile.svg + SvgGenImage get profile => const SvgGenImage('assets/icons/profile.svg'); + + /// File path: assets/icons/receipt-discount 2.svg + SvgGenImage get receiptDiscount2 => + const SvgGenImage('assets/icons/receipt-discount 2.svg'); + + /// File path: assets/icons/receipt-discount.svg + SvgGenImage get receiptDiscount => + const SvgGenImage('assets/icons/receipt-discount.svg'); + /// File path: assets/icons/recenter.svg SvgGenImage get recenter => const SvgGenImage('assets/icons/recenter.svg'); @@ -139,6 +189,9 @@ class $AssetsIconsGen { SvgGenImage get riSearch2Line => const SvgGenImage('assets/icons/ri_search-2-line.svg'); + /// File path: assets/icons/routing-2.svg + SvgGenImage get routing2 => const SvgGenImage('assets/icons/routing-2.svg'); + /// File path: assets/icons/routing.svg SvgGenImage get routing => const SvgGenImage('assets/icons/routing.svg'); @@ -162,9 +215,18 @@ class $AssetsIconsGen { /// File path: assets/icons/sort.svg SvgGenImage get sort => const SvgGenImage('assets/icons/sort.svg'); + /// File path: assets/icons/star fill.svg + SvgGenImage get starFill => const SvgGenImage('assets/icons/star fill.svg'); + + /// File path: assets/icons/star half.svg + SvgGenImage get starHalf => const SvgGenImage('assets/icons/star half.svg'); + /// File path: assets/icons/star.svg SvgGenImage get star => const SvgGenImage('assets/icons/star.svg'); + /// File path: assets/icons/tick.svg + SvgGenImage get tick => const SvgGenImage('assets/icons/tick.svg'); + /// File path: assets/icons/timer-pause.svg SvgGenImage get timerPause => const SvgGenImage('assets/icons/timer-pause.svg'); @@ -180,6 +242,7 @@ class $AssetsIconsGen { List get values => [ line1, line4, + mDSPublicTWButton, mDSPublicTWTag, nextButton, rectangleOff, @@ -190,15 +253,23 @@ class $AssetsIconsGen { arrowDown, arrowLeft, back, + calendarTick2, + calendarTick, cardPos, category2, clander, + clock, coin, + dislike, down, elementEqual, + favorite, fluentColorLocationRipple16, + game2, + game, icRoundLocalOffer, infoPic, + like, list, location, mapSelected, @@ -210,10 +281,17 @@ class $AssetsIconsGen { materialSymbolsLocationOn, materialSymbolsLocationOnn, materialSymbolsLocationWork, + nearby, + nearby2, next, phCheese, + profile2, + profile, + receiptDiscount2, + receiptDiscount, recenter, riSearch2Line, + routing2, routing, selectedList, shoppingCart, @@ -221,7 +299,10 @@ class $AssetsIconsGen { slide3, slides1, sort, + starFill, + starHalf, star, + tick, timerPause, timerStart, timer, @@ -265,6 +346,10 @@ class $AssetsImagesGen { /// File path: assets/images/userinfo.svg SvgGenImage get userinfo => const SvgGenImage('assets/images/userinfo.svg'); + /// File path: assets/images/wp1929534-fast-food-wallpapers 1.png + AssetGenImage get wp1929534FastFoodWallpapers1 => + const AssetGenImage('assets/images/wp1929534-fast-food-wallpapers 1.png'); + /// List of all assets List get values => [ frame, @@ -277,6 +362,7 @@ class $AssetsImagesGen { topDealsAndStores, usa, userinfo, + wp1929534FastFoodWallpapers1, ]; } diff --git a/lib/main.dart b/lib/main.dart index d99099c..a900be3 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -32,6 +32,11 @@ class MyApp extends StatelessWidget { dialogTheme: DialogTheme( backgroundColor: Colors.white, ), + dropdownMenuTheme: DropdownMenuThemeData( + menuStyle: MenuStyle( + backgroundColor: MaterialStatePropertyAll(Colors.white), + ), + ), inputDecorationTheme: const InputDecorationTheme( labelStyle: TextStyle(color: Colors.black), hintStyle: TextStyle(color: Colors.grey), diff --git a/lib/res/colors.dart b/lib/res/colors.dart index 6e20551..f9ac123 100644 --- a/lib/res/colors.dart +++ b/lib/res/colors.dart @@ -13,4 +13,8 @@ class LightAppColors{ static const confirmPopup = Color.fromARGB(255, 23, 107,173); static const nearbyPopup = Color.fromARGB(255, 233, 245,254); static const nearbyPopuphint = Color.fromARGB(255, 112, 112, 110); + static const productDetailDivider = Color.fromARGB(255, 112, 112, 110); + static const fillOrder = Color.fromARGB(255, 200, 230, 201); + static const fillOrderText = Color.fromARGB(255, 32, 74, 34); + static const allReviewOpener = Color.fromARGB(255, 183, 28, 28); } \ No newline at end of file diff --git a/lib/screens/auth/cubit/auth_cubit.dart b/lib/screens/auth/cubit/auth_cubit.dart index 4a87173..9194249 100644 --- a/lib/screens/auth/cubit/auth_cubit.dart +++ b/lib/screens/auth/cubit/auth_cubit.dart @@ -1,6 +1,4 @@ import 'package:bloc/bloc.dart'; -import 'package:dio/dio.dart'; -import 'package:meta/meta.dart'; part 'auth_state.dart'; @@ -10,40 +8,20 @@ class AuthCubit extends Cubit { String _timeStamp = ""; String _timeDue = ""; - final Dio _dio = Dio(BaseOptions( - connectTimeout: const Duration(seconds: 30), - receiveTimeout: const Duration(seconds: 30), - )); - String get timeStamp => _timeStamp; String get timeDue => _timeDue; Future sendOTP(String phoneNumber) async { emit(AuthLoading()); - try { - final response = await _dio.post( - 'https://api-gateway.liara.run/auth/otp/generate', - data: {'userId': phoneNumber}, - ); - print(response.toString()); - - if (response.statusCode == 200 || response.statusCode == 201) { - if (response.data['success'] == true) { - _timeStamp = response.data['timestamp'].toString(); - _timeDue = response.data['due'].toString(); - emit(AuthSuccess(phoneNumber: phoneNumber)); - print(response.data.toString()); - } else { - emit(AuthError('Failed to send OTP')); - } - } else { - emit(AuthError('Server error: \${response.statusCode}')); - } - } on DioException catch (e) { - emit(AuthError('Connection error: \${e.message}')); - } catch (e) { - emit(AuthError('Unexpected error occurred')); - } + + // Simulate API delay + await Future.delayed(const Duration(seconds: 1)); + + // Mock data for development + _timeStamp = DateTime.now().millisecondsSinceEpoch.toString(); + _timeDue = DateTime.now().add(const Duration(minutes: 2)).millisecondsSinceEpoch.toString(); + + emit(AuthSuccess(phoneNumber: phoneNumber)); } void verifyOTP(String otpCode) {} diff --git a/lib/screens/auth/onboarding.dart b/lib/screens/auth/onboarding.dart index b5d4694..062e2f7 100644 --- a/lib/screens/auth/onboarding.dart +++ b/lib/screens/auth/onboarding.dart @@ -85,7 +85,7 @@ class _OnboardingScreenState extends State { ), ), Padding( - padding: EdgeInsets.fromLTRB(width / 15, 0, width / 15, width/30), + padding: EdgeInsets.fromLTRB(width / 15, 0, width / 15, width / 30), child: Text( '"Join the app to discover exclusive discounts and special offers in specific areas around you for a smarter shopping experience!"', style: TextStyle(fontWeight: FontWeight.w500, color: LightAppColors.hint, fontSize: 15), @@ -98,8 +98,7 @@ class _OnboardingScreenState extends State { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ AnimatedSwitcher( - duration: Duration(milliseconds: 300), - transitionBuilder: (child, animation) => FadeTransition(opacity: animation, child: child), + duration: Duration(milliseconds: 200), child: SvgPicture.asset( slides[currentIndex], key: ValueKey(slides[currentIndex]), diff --git a/lib/screens/auth/userInfo.dart b/lib/screens/auth/userInfo.dart index 4c296c9..dbb32d2 100644 --- a/lib/screens/auth/userInfo.dart +++ b/lib/screens/auth/userInfo.dart @@ -3,7 +3,8 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:lba/extension/screenSize.dart'; import 'package:lba/gen/assets.gen.dart'; import 'package:lba/res/colors.dart'; -import 'package:lba/screens/nearby/nearby.dart'; +import 'package:lba/screens/mains/navigation/navigation.dart'; +import 'package:lba/screens/mains/nearby/mainNearby/nearby.dart'; import 'package:lba/widgets/button.dart'; import 'package:lba/widgets/datePicker.dart'; @@ -37,18 +38,21 @@ class _UserInfoState extends State { ], ), Padding( - padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 24), + padding: const EdgeInsets.symmetric( + horizontal: 0, + vertical: 24, + ), child: Center( child: Padding( padding: const EdgeInsets.only(top: 0), child: SvgPicture.asset( Assets.images.userinfo.path, - height: height /2.9, + height: height / 2.9, ), ), ), ), - SizedBox(height: height/20), + SizedBox(height: height / 20), const Padding( padding: EdgeInsets.fromLTRB(25, 0, 25, 20), child: Text( @@ -66,13 +70,16 @@ class _UserInfoState extends State { counterText: '', hintText: "Enter here...", hintStyle: TextStyle( - fontWeight: FontWeight.normal, color: Colors.grey), + fontWeight: FontWeight.normal, + color: Colors.grey, + ), filled: true, fillColor: Color.fromARGB(255, 250, 250, 250), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.all(Radius.circular(12)), - borderSide: - BorderSide(color: Color.fromARGB(255, 14, 63, 102)), + borderSide: BorderSide( + color: Color.fromARGB(255, 14, 63, 102), + ), ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.all(Radius.circular(12)), @@ -95,66 +102,98 @@ class _UserInfoState extends State { Padding( padding: const EdgeInsets.symmetric(horizontal: 25), child: Wrap( - spacing: 5, + spacing: 3, + alignment: WrapAlignment.start, + runSpacing: 2, + runAlignment: WrapAlignment.start, children: [ - Row( - mainAxisSize: MainAxisSize.min, - children: [ - const Text("Prefer not to say", + Directionality( + textDirection: TextDirection.rtl, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Radio( + value: "Prefer not to say", + groupValue: selectedGender, + activeColor: Colors.blue, + visualDensity: VisualDensity.compact, + materialTapTargetSize: + MaterialTapTargetSize.shrinkWrap, + onChanged: (value) { + setState(() { + selectedGender = value!; + }); + }, + ), + const Text( + "Prefer not to say", style: TextStyle( - color: Color.fromARGB(255, 112, 112, 110))), - Radio( - value: "Prefer not to say", - groupValue: selectedGender, - activeColor: Colors.blue, - onChanged: (value) { - setState(() { - selectedGender = value!; - }); - }, - ), - ], + color: Color.fromARGB(255, 112, 112, 110), + ), + ), + ], + ), ), - Row( - mainAxisSize: MainAxisSize.min, - children: [ - const Text("Male", + SizedBox(width: 5,), + Directionality( + textDirection: TextDirection.rtl, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Radio( + value: "Male", + groupValue: selectedGender, + activeColor: Colors.blue, + visualDensity: VisualDensity.compact, + materialTapTargetSize: + MaterialTapTargetSize.shrinkWrap, + onChanged: (value) { + setState(() { + selectedGender = value!; + }); + }, + ), + const Text( + "Male", style: TextStyle( - color: Color.fromARGB(255, 112, 112, 110))), - Radio( - value: "Male", - groupValue: selectedGender, - activeColor: Colors.blue, - onChanged: (value) { - setState(() { - selectedGender = value!; - }); - }, - ), - ], + color: Color.fromARGB(255, 112, 112, 110), + ), + ), + ], + ), ), - Row( - mainAxisSize: MainAxisSize.min, - children: [ - const Text("Female", + SizedBox(width: 5,), + Directionality( + textDirection: TextDirection.rtl, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Radio( + value: "Female", + groupValue: selectedGender, + activeColor: Colors.blue, + visualDensity: VisualDensity.compact, + materialTapTargetSize: + MaterialTapTargetSize.shrinkWrap, + onChanged: (value) { + setState(() { + selectedGender = value!; + }); + }, + ), + const Text( + "Female", style: TextStyle( - color: Color.fromARGB(255, 112, 112, 110))), - Radio( - value: "Female", - groupValue: selectedGender, - activeColor: Colors.blue, - onChanged: (value) { - setState(() { - selectedGender = value!; - }); - }, - ), - ], + color: Color.fromARGB(255, 112, 112, 110), + ), + ), + ], + ), ), ], ), ), - SizedBox(height: height/12), + SizedBox(height: height / 8), // const Padding( // padding: EdgeInsets.fromLTRB(25, 0, 25, 15), // child: Text( @@ -225,16 +264,19 @@ class _UserInfoState extends State { // const SizedBox(height: 30), Center( child: SizedBox( - width: width*0.9, + width: width * 0.9, child: Button( text: "Submit", onPressed: () { Navigator.pushAndRemoveUntil( context, - MaterialPageRoute(builder: (context) => const Nearby()), + MaterialPageRoute( + builder: (context) => const MainScreen(), + ), (route) => false, ); - }, color: const Color.fromARGB(255, 30, 137, 221), + }, + color: const Color.fromARGB(255, 30, 137, 221), ), ), ), @@ -242,7 +284,7 @@ class _UserInfoState extends State { onTap: () { Navigator.pushAndRemoveUntil( context, - MaterialPageRoute(builder: (context) => const Nearby()), + MaterialPageRoute(builder: (context) => const MainScreen()), (route) => false, ); }, @@ -253,18 +295,19 @@ class _UserInfoState extends State { child: Text( "Skip", style: TextStyle( - color: LightAppColors.primary, - fontWeight: FontWeight.bold, - fontSize: 16), + color: LightAppColors.primary, + fontWeight: FontWeight.bold, + fontSize: 16, + ), ), ), ), ), - ) + ), ], ), ), ), ); } -} \ No newline at end of file +} diff --git a/lib/screens/mains/discover/discover.dart b/lib/screens/mains/discover/discover.dart new file mode 100644 index 0000000..8ccf133 --- /dev/null +++ b/lib/screens/mains/discover/discover.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; + +class Discover extends StatelessWidget { + const Discover({super.key}); + + @override + Widget build(BuildContext context) { + return const Placeholder(); + } +} \ No newline at end of file diff --git a/lib/screens/mains/hunt/hunt.dart b/lib/screens/mains/hunt/hunt.dart new file mode 100644 index 0000000..b126df1 --- /dev/null +++ b/lib/screens/mains/hunt/hunt.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; + +class Hunt extends StatelessWidget { + const Hunt({super.key}); + + @override + Widget build(BuildContext context) { + return const Placeholder(); + } +} \ No newline at end of file diff --git a/lib/screens/mains/navigation/navigation.dart b/lib/screens/mains/navigation/navigation.dart new file mode 100644 index 0000000..eb12e0a --- /dev/null +++ b/lib/screens/mains/navigation/navigation.dart @@ -0,0 +1,151 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:lba/gen/assets.gen.dart'; +import 'package:lba/res/colors.dart'; +import 'package:lba/screens/mains/discover/discover.dart'; +import 'package:lba/screens/mains/hunt/hunt.dart'; +import 'package:lba/screens/mains/nearby/mainNearby/nearby.dart'; +import 'package:lba/screens/mains/planner/planner.dart'; +import 'package:lba/screens/mains/profile/profile.dart'; + +class MainScreen extends StatefulWidget { + const MainScreen({super.key}); + + @override + State createState() => _MainScreenState(); +} + +class _MainScreenState extends State { + int _currentIndex = 0; + + final List _screens = [ + Nearby(), + Discover(), + Hunt(), + Planner(), + Profile(), + ]; + + @override + Widget build(BuildContext context) { + return Scaffold( + extendBody: true, + body: AnimatedSwitcher( + duration: const Duration(milliseconds: 300), + child: _screens[_currentIndex], + ), + bottomNavigationBar: CustomBottomNavigationBar( + onTap: (int index) { + setState(() { + _currentIndex = index; + }); + }, + currentIndex: _currentIndex, + ), + ); + } +} + +class CustomBottomNavigationBar extends StatefulWidget { + final Function(int) onTap; + final int currentIndex; + + const CustomBottomNavigationBar({ + super.key, + required this.onTap, + required this.currentIndex, + }); + + @override + State createState() => _CustomBottomNavigationBarState(); +} + +class _CustomBottomNavigationBarState extends State + with SingleTickerProviderStateMixin { + final List<_NavItem> items = [ + _NavItem('Nearby', Assets.icons.nearby.path, Assets.icons.nearby2.path), + _NavItem('Discover', Assets.icons.receiptDiscount.path, Assets.icons.receiptDiscount2.path), + _NavItem('Hunt', Assets.icons.game.path, Assets.icons.game2.path), + _NavItem('Planner', Assets.icons.calendarTick.path, Assets.icons.calendarTick2.path), + _NavItem('Profile', Assets.icons.profile.path, Assets.icons.profile2.path), + ]; + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.only(left: 16, right: 16, bottom: 16), + child: Container( + height: 70, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.15), + blurRadius: 20, + offset: const Offset(0, 10), + ), + ], + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: List.generate(items.length, (index) { + final item = items[index]; + final bool isSelected = index == widget.currentIndex; + return GestureDetector( + onTap: () => widget.onTap(index), + child: AnimatedContainer( + duration: const Duration(milliseconds: 300), + curve: Curves.easeOutQuint, + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), + decoration: BoxDecoration( + color: isSelected ? const Color(0xFFE3F2FD) : Colors.transparent, + borderRadius: BorderRadius.circular(15), + ), + child: Row( + children: [ + AnimatedSwitcher( + duration: const Duration(milliseconds: 300), + child: SvgPicture.asset( + isSelected ? item.selectedIconPath : item.iconPath, + key: ValueKey(isSelected), + width: 24, + height: 24, + ), + ), + AnimatedSize( + duration: const Duration(milliseconds: 300), + curve: Curves.easeOut, + child: isSelected + ? Row( + children: [ + const SizedBox(width: 8), + Text( + item.label, + style: const TextStyle( + color: LightAppColors.primary, + fontWeight: FontWeight.w600, + ), + ), + ], + ) + : const SizedBox(), + ), + ], + ), + ), + ); + }), + ), + ), + ); + } +} + +class _NavItem { + final String label; + final String iconPath; + final String selectedIconPath; + + _NavItem(this.label, this.iconPath, this.selectedIconPath); +} diff --git a/lib/screens/nearby/bestNearby.dart b/lib/screens/mains/nearby/bestNearby.dart similarity index 90% rename from lib/screens/nearby/bestNearby.dart rename to lib/screens/mains/nearby/bestNearby.dart index fe3681b..2e1a98e 100644 --- a/lib/screens/nearby/bestNearby.dart +++ b/lib/screens/mains/nearby/bestNearby.dart @@ -46,21 +46,7 @@ class NearbyItems extends StatelessWidget { padding: const EdgeInsets.all(8.0), child: Column( children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Row( - children: [ - Text( - detailsType==0?"Highest Discount Areas":detailsType==1?"Highest Discount Areas":detailsType==2?"Best Deal, Don't Miss":"", - style: TextStyle(fontSize: 15), - ), - const SizedBox(width: 8), - const Expanded( - child: Divider(color: Colors.grey, thickness: 2), - ), - ], - ), - ), + DividerTitle(detailsType: detailsType), SizedBox( height: detailsType==0?180:detailsType==1?240:detailsType==2?240:200, child: ListView.builder( @@ -184,3 +170,31 @@ class NearbyItems extends StatelessWidget { ); } } + +class DividerTitle extends StatelessWidget { + const DividerTitle({ + super.key, + required this.detailsType, + }); + + final int detailsType; + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(8.0), + child: Row( + children: [ + Text( + detailsType==0?"Highest Discount Areas":detailsType==1?"Highest Discount Areas":detailsType==2?"Best Deal, Don't Miss":"", + style: TextStyle(fontSize: 15), + ), + const SizedBox(width: 8), + const Expanded( + child: Divider(color: Colors.grey, thickness: 2), + ), + ], + ), + ); + } +} diff --git a/lib/screens/mains/nearby/mainNearby/listScreen.dart b/lib/screens/mains/nearby/mainNearby/listScreen.dart new file mode 100644 index 0000000..dcfee9d --- /dev/null +++ b/lib/screens/mains/nearby/mainNearby/listScreen.dart @@ -0,0 +1,270 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:lba/extension/screenSize.dart'; +import 'package:lba/gen/assets.gen.dart'; +import 'package:lba/widgets/orderType.dart'; +import 'package:lba/widgets/remainingTime.dart'; + +class ListScreen extends StatefulWidget { + final bool delivery; + final bool pickup; + int initialTimerStatus; + final String expiryTimeString; + final VoidCallback? ontap; + + ListScreen({ + super.key, + required this.delivery, + required this.pickup, + this.initialTimerStatus=3, + required this.expiryTimeString, + this.ontap, + }); + + @override + State createState() => _ListScreenState(); +} + +class _ListScreenState extends State { + late RemainingTime _timer; + late ValueNotifier _timerStatus; + + @override + void initState() { + super.initState(); + _timer = RemainingTime(); + _timerStatus = ValueNotifier(widget.initialTimerStatus); + _timer.initializeFromExpiry(expiryTimeString: widget.expiryTimeString); + + _timer.remainingSeconds.addListener(() { + if (_timer.remainingSeconds.value <= 0) { + _timerStatus.value = 3; + } else if (_timer.remainingSeconds.value < 18000) { + _timerStatus.value = 1; + } else if (_timer.remainingSeconds.value > 18000) { + _timerStatus.value = 2; + } + }); + } + + @override + void dispose() { + _timer.dispose(); + _timerStatus.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final width = context.screenWidth; + final height = context.screenHeight; + return + GestureDetector( + onTap: widget.ontap, + child: Padding( + padding: const EdgeInsets.only(bottom: 16), + child: Stack( + children: [ + Container( + margin: const EdgeInsets.only(top: 60), + padding: const EdgeInsets.only(top: 80), + decoration: BoxDecoration( + color: const Color.fromARGB(255, 242, 242, 241), + borderRadius: BorderRadius.circular(10), + ), + child: Padding( + padding: EdgeInsets.fromLTRB(12, 0, width/50, 15), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Row( + children: [ + SvgPicture.asset(Assets.icons.phCheese.path), + const SizedBox(width: 5), + const Text( + "Amul Cheese Slices", + style: TextStyle(fontWeight: FontWeight.bold), + ), + ], + ), + const SizedBox(height: 10), + Row( + children: [ + SvgPicture.asset( + Assets.icons.location.path, + color: const Color.fromARGB(255, 157, 157, 155), + width: 14, + ), + const SizedBox(width: 5), + const Text("Sharjah (750m away)",style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w500 + ),), + ], + ), + const SizedBox(height: 10), + Row( + children: [ + SvgPicture.asset( + Assets.icons.coin.path, + width: 14, + ), + const SizedBox(width: 5), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: const [ + Text( + "18.15 AED", + style: TextStyle( + color: Color.fromARGB(255, 157, 157, 155), + fontSize: 10, + decoration: TextDecoration.lineThrough, + ), + ), + SizedBox(height: 0), + Row( + children: [ + Text("15.84 AED",style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w500 + ),), + SizedBox(width: 4), + Text( + "(13% off)", + style: TextStyle( + color: Color.fromARGB(255, 76, 175, 80), + fontSize: 10, + fontWeight: FontWeight.w500 + ), + ), + ], + ), + ], + ), + ], + ), + ], + ), + ), + Padding( + padding: EdgeInsets.fromLTRB(0, 35, widget.delivery == false || widget.pickup == false ? width/5 : width/60, 0), + child: Column( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SvgPicture.asset( + Assets.icons.star.path, + width: 14, + ), + const SizedBox(width: 2), + const Text( + "4.8", + style: TextStyle( + color: Color.fromARGB(255, 112, 112, 110), + ), + ), + ], + ), + const SizedBox(height: 10), + Row( + children: [ + if (widget.delivery) + OrderType( + icon: Assets.icons.cardPos.path, + typename: "Delivery", + fill: false, + ), + if (widget.delivery) const SizedBox(width: 5), + if (widget.pickup) + OrderType( + icon: Assets.icons.shoppingCart.path, + typename: "Pickup", + fill: false, + ), + ], + ), + ], + ), + ), + ], + ), + ), + ), + ClipRRect( + borderRadius: const BorderRadius.only( + topRight: Radius.circular(10), + topLeft: Radius.circular(10), + ), + child: Image.asset( + Assets.images.media.path, + width: double.infinity, + height: 130, + fit: BoxFit.cover, + ), + ), + Positioned( + top: 10, + left: 10, + child: ValueListenableBuilder( + valueListenable: _timerStatus, + builder: (context, timerStatus, child) { + return Container( + padding: const EdgeInsets.symmetric(horizontal: 6), + height: 20, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6), + color: timerStatus == 1 + ? const Color.fromARGB(255, 255, 193, 7) + : timerStatus == 2 + ? const Color.fromARGB(255, 76, 175, 80) + : timerStatus == 3 + ? const Color.fromARGB(255, 244, 67, 54) + : const Color.fromARGB(255, 244, 67, 54), + ), + child: Row( + children: [ + SvgPicture.asset( + timerStatus == 1 + ? Assets.icons.timer.path + : timerStatus == 2 + ? Assets.icons.timerStart.path + : Assets.icons.timerPause.path, + width: 12, + height: 12, + ), + const SizedBox(width: 5), + ValueListenableBuilder( + valueListenable: _timer.remainingSeconds, + builder: (context, seconds, child) { + return Text( + timerStatus==3? "Unavailable":"${_timer.formatTime()} left", + style: const TextStyle( + color: Colors.white, + fontSize: 12, + fontWeight: FontWeight.w400, + ), + ); + }, + ), + ], + ), + ); + }, + ), + ), + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/nearby/map.dart b/lib/screens/mains/nearby/mainNearby/map.dart similarity index 63% rename from lib/screens/nearby/map.dart rename to lib/screens/mains/nearby/mainNearby/map.dart index 2ab4685..20b48c9 100644 --- a/lib/screens/nearby/map.dart +++ b/lib/screens/mains/nearby/mainNearby/map.dart @@ -3,7 +3,8 @@ import 'package:flutter_map/flutter_map.dart'; import 'package:latlong2/latlong.dart'; import 'package:lba/gen/assets.gen.dart'; import 'package:lba/res/colors.dart'; -import 'package:lba/screens/nearby/bestNearby.dart'; +import 'package:lba/screens/mains/nearby/bestNearby.dart'; +import 'package:lba/screens/product/productdetail.dart'; import 'package:location/location.dart'; import 'package:flutter_svg/flutter_svg.dart'; @@ -87,7 +88,6 @@ class _CustomMapState extends State _initializeMarkers(); _checkLocationServices(); - // Initialize AnimationController _animationController = AnimationController( duration: const Duration(milliseconds: 500), vsync: this, @@ -206,7 +206,6 @@ class _CustomMapState extends State right: 0, child: Column( children: [ - // Recenter Button Padding( padding: const EdgeInsets.all(8.0), child: Row( @@ -248,162 +247,98 @@ class _CustomMapState extends State ], ), ), - // Marker Details if (_selectedMarkerIndex == null) Container( - height: 190, + height: 245, width: double.infinity, - padding: const EdgeInsets.only(bottom: 25,left: 8), + padding: const EdgeInsets.only(bottom: 90,left: 0), child: Center( child: ListView.builder( scrollDirection: Axis.horizontal, itemCount: _manualMarkers.length, itemBuilder: (context, index) { final marker = _manualMarkers[index]; - return Container( - margin: const EdgeInsets.symmetric(horizontal: 5), - padding: const EdgeInsets.all(8.0), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: LightAppColors.nearbyPopup, - border: Border.all(color: Colors.white, width: 2.0), - ), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Center( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - children: [ - Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(11), - ), - child: Image.asset(Assets.images.image.path), - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - marker.name, - style: TextStyle(color: Colors.black), - ), - SizedBox(height: 5), - Text( - "${marker.place} ${marker.distance}", - style: TextStyle( - color: LightAppColors.nearbyPopuphint, - ), - ), - SizedBox(height: 5), - Text( - marker.description, - style: TextStyle( - color: LightAppColors.nearbyPopuphint, - fontSize: 10, - ), - ), - ], - ), - ), - ], - ), - SizedBox(height: 10), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.start, - children: [ - SvgPicture.asset( - Assets.icons.mDSPublicTWTag.path, - ), - SizedBox(width: 10), - Text( - "(15%) 43 - 36.55 AED ", - style: TextStyle(fontWeight: FontWeight.bold), - ), - ], - ), - ], - ), - ), - ), + return GestureDetector( + onTap: () { + Navigator.of(context).push(MaterialPageRoute(builder: (context) => Productdetail(),)); + }, + child: CustomCard(marker: marker), ); }, ), ), ) else - Container( - margin: const EdgeInsets.symmetric(horizontal: 5), - padding: const EdgeInsets.all(8.0).copyWith(bottom: 15), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: LightAppColors.nearbyPopup, - border: Border.all(color: Colors.white, width: 2.0), - ), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Center( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - children: [ - Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(11), + Padding( + padding: const EdgeInsets.only(bottom: 90,right: 8,left: 8,), + child: Container( + margin: const EdgeInsets.symmetric(horizontal: 5), + padding: const EdgeInsets.all(8.0).copyWith(bottom: 15), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: LightAppColors.nearbyPopup, + border: Border.all(color: Colors.white, width: 4.0), + ), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Center( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(11), + ), + child: Image.asset(Assets.images.image.path), ), - child: Image.asset(Assets.images.image.path), - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - _manualMarkers[_selectedMarkerIndex!].name, - style: TextStyle(color: Colors.black), - ), - SizedBox(height: 5), - Text( - "${_manualMarkers[_selectedMarkerIndex!].place} ${_manualMarkers[_selectedMarkerIndex!].distance}", - style: TextStyle( - color: LightAppColors.nearbyPopuphint, + Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + _manualMarkers[_selectedMarkerIndex!].name, + style: TextStyle(color: Colors.black), ), - ), - SizedBox(height: 5), - Text( - _manualMarkers[_selectedMarkerIndex!] - .description, - style: TextStyle( - color: LightAppColors.nearbyPopuphint, - fontSize: 10, + SizedBox(height: 5), + Text( + "${_manualMarkers[_selectedMarkerIndex!].place} ${_manualMarkers[_selectedMarkerIndex!].distance}", + style: TextStyle( + color: LightAppColors.nearbyPopuphint, + ), ), - ), - ], + SizedBox(height: 5), + Text( + _manualMarkers[_selectedMarkerIndex!] + .description, + style: TextStyle( + color: LightAppColors.nearbyPopuphint, + fontSize: 10, + ), + ), + ], + ), ), - ), - ], - ), - SizedBox(height: 10), - Row( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.start, - children: [ - SvgPicture.asset(Assets.icons.mDSPublicTWTag.path), - SizedBox(width: 10), - Text( - "(15%) 43 - 36.55 AED ", - style: TextStyle(fontWeight: FontWeight.bold), - ), - ], - ), - ], + ], + ), + SizedBox(height: 10), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + SvgPicture.asset(Assets.icons.mDSPublicTWTag.path), + SizedBox(width: 10), + Text( + "(15%) 43 - 36.55 AED ", + style: TextStyle(fontWeight: FontWeight.bold), + ), + ], + ), + ], + ), ), ), ), @@ -455,7 +390,94 @@ class _CustomMapState extends State } } -// Helper class for animating LatLng +class CustomCard extends StatelessWidget { + const CustomCard({ + super.key, + required this.marker, + }); + + final MarkerData marker; + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.only(left: 8), + child: Container( + margin: const EdgeInsets.symmetric(horizontal: 5), + padding: const EdgeInsets.all(8.0), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: LightAppColors.nearbyPopup, + border: Border.all(color: Colors.white, width: 4.0), + ), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Center( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(11), + ), + child: Image.asset(Assets.images.image.path), + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + marker.name, + style: TextStyle(color: Colors.black), + ), + SizedBox(height: 5), + Text( + "${marker.place} ${marker.distance}", + style: TextStyle( + color: LightAppColors.nearbyPopuphint, + ), + ), + SizedBox(height: 5), + Text( + marker.description, + style: TextStyle( + color: LightAppColors.nearbyPopuphint, + fontSize: 10, + ), + ), + ], + ), + ), + ], + ), + SizedBox(height: 10), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + SvgPicture.asset( + Assets.icons.mDSPublicTWTag.path, + ), + SizedBox(width: 10), + Text( + "(15%) 43 - 36.55 AED ", + style: TextStyle(fontWeight: FontWeight.bold), + ), + ], + ), + ], + ), + ), + ), + ), + ); + } +} + class LatLngTween extends Tween { LatLngTween({required LatLng begin, required LatLng end}) : super(begin: begin, end: end); diff --git a/lib/screens/nearby/nearby.dart b/lib/screens/mains/nearby/mainNearby/nearby.dart similarity index 65% rename from lib/screens/nearby/nearby.dart rename to lib/screens/mains/nearby/mainNearby/nearby.dart index a4f2f0e..d564ef6 100644 --- a/lib/screens/nearby/nearby.dart +++ b/lib/screens/mains/nearby/mainNearby/nearby.dart @@ -1,8 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:lba/gen/assets.gen.dart'; -import 'package:lba/screens/nearby/listScreen.dart'; -import 'package:lba/screens/nearby/map.dart'; +import 'package:lba/screens/mains/nearby/mainNearby/listScreen.dart'; +import 'package:lba/screens/mains/nearby/mainNearby/map.dart'; +import 'package:lba/screens/product/productdetail.dart'; import 'package:lba/widgets/customBottomSheet.dart'; import 'package:lba/widgets/gpsPopup.dart'; @@ -36,7 +37,6 @@ class _NearbyState extends State { @override Widget build(BuildContext context) { - return Scaffold( appBar: AppBar( toolbarHeight: 70, @@ -114,8 +114,7 @@ class _NearbyState extends State { ), backgroundColor: Colors.white, ), - body: - Column( + body: Column( children: [ _buildToggleButtons(), Container( @@ -124,9 +123,7 @@ class _NearbyState extends State { color: const Color.fromARGB(255, 14, 63, 102), ), Expanded( - child: selectedIndex == 1 - ? _buildListContent() - : CustomMap(), + child: selectedIndex == 1 ? _buildListContent() : CustomMap(), ), // ElevatedButton( // onPressed: () => showGPSDialog(context), @@ -180,33 +177,39 @@ class _NearbyState extends State { Positioned( left: 0, child: _buildToggleButton( - color: selectedIndex == 1 - ? const Color.fromARGB(255, 10, 69, 117) - : const Color.fromARGB(100, 177, 177, 177), + color: + selectedIndex == 1 + ? const Color.fromARGB(255, 10, 69, 117) + : const Color.fromARGB(100, 177, 177, 177), icon: Assets.icons.elementEqual.path, - iconColor: selectedIndex == 1 - ? const Color.fromARGB(255, 234, 245, 254) - : const Color.fromARGB(255, 157, 157, 155), + iconColor: + selectedIndex == 1 + ? const Color.fromARGB(255, 234, 245, 254) + : const Color.fromARGB(255, 157, 157, 155), text: 'list', isSelected: selectedIndex == 1, onTap: () => setState(() => selectedIndex = 1), borderRadius: BorderRadius.only( topLeft: Radius.circular(12), bottomLeft: Radius.circular(12), - topRight: selectedIndex==1? Radius.circular(12):Radius.zero, - bottomRight: selectedIndex==1? Radius.circular(12):Radius.zero, + topRight: + selectedIndex == 1 ? Radius.circular(12) : Radius.zero, + bottomRight: + selectedIndex == 1 ? Radius.circular(12) : Radius.zero, ), ), ), Positioned( right: 0, child: _buildToggleButton( - color: selectedIndex == 0 - ? const Color.fromARGB(255, 10, 69, 117) - : const Color.fromARGB(100, 177, 177, 177), - iconColor: selectedIndex == 0 - ? const Color.fromARGB(255, 234, 245, 254) - : const Color.fromARGB(255, 157, 157, 155), + color: + selectedIndex == 0 + ? const Color.fromARGB(255, 10, 69, 117) + : const Color.fromARGB(100, 177, 177, 177), + iconColor: + selectedIndex == 0 + ? const Color.fromARGB(255, 234, 245, 254) + : const Color.fromARGB(255, 157, 157, 155), icon: Assets.icons.mapSelected.path, text: 'map', isSelected: selectedIndex == 0, @@ -214,8 +217,10 @@ class _NearbyState extends State { borderRadius: BorderRadius.only( topRight: Radius.circular(12), bottomRight: Radius.circular(12), - bottomLeft: selectedIndex==0? Radius.circular(12):Radius.zero, - topLeft: selectedIndex==0? Radius.circular(12):Radius.zero, + bottomLeft: + selectedIndex == 0 ? Radius.circular(12) : Radius.zero, + topLeft: + selectedIndex == 0 ? Radius.circular(12) : Radius.zero, ), ), ), @@ -245,6 +250,8 @@ class _NearbyState extends State { child: SvgPicture.asset(Assets.icons.arrowDown.path), ), elevation: 16, + dropdownColor: + Colors.white, style: const TextStyle( color: Color.fromARGB(255, 33, 150, 243), fontWeight: FontWeight.w500, @@ -255,12 +262,13 @@ class _NearbyState extends State { selectedOption = newValue!; }); }, - items: options.map>((String value) { - return DropdownMenuItem( - value: value, - child: Text(value), - ); - }).toList(), + items: + options.map>((String value) { + return DropdownMenuItem( + value: value, + child: Text(value), + ); + }).toList(), ), ], ), @@ -268,7 +276,12 @@ class _NearbyState extends State { ListScreen( delivery: true, pickup: false, - expiryTimeString: "2025-05-17T13:20:49.623619357Z", + expiryTimeString: "2025-05-19T13:30:49.623619357Z", + ontap: () { + Navigator.of(context).push( + MaterialPageRoute(builder: (context) => Productdetail()), + ); + }, ), ListScreen( delivery: false, @@ -280,6 +293,7 @@ class _NearbyState extends State { pickup: true, expiryTimeString: "2025-05-12T13:20:37.435249520Z", ), + const SizedBox(height: 90), ], ), ), @@ -287,76 +301,77 @@ class _NearbyState extends State { } Widget _buildToggleButton({ - required String text, - required bool isSelected, - required VoidCallback onTap, - required BorderRadius borderRadius, - required Color color, - required String icon, - required Color iconColor, -}) { - return GestureDetector( - onTap: onTap, - child: Stack( - children: [ - Container( - width: 170, - height: 50, - decoration: BoxDecoration( - borderRadius: borderRadius, - color: isSelected - ? const Color.fromARGB(255, 14, 63, 102) - : const Color.fromARGB(255, 234, 234, 233), - boxShadow: isSelected - ? [ - BoxShadow( - color: Colors.black.withOpacity(0.2), - spreadRadius: 1, - blurRadius: 4, - offset: const Offset(0, 2), + required String text, + required bool isSelected, + required VoidCallback onTap, + required BorderRadius borderRadius, + required Color color, + required String icon, + required Color iconColor, + }) { + return GestureDetector( + onTap: onTap, + child: Stack( + children: [ + Container( + width: 170, + height: 50, + decoration: BoxDecoration( + borderRadius: borderRadius, + color: + isSelected + ? const Color.fromARGB(255, 14, 63, 102) + : const Color.fromARGB(255, 234, 234, 233), + boxShadow: + isSelected + ? [ + BoxShadow( + color: Colors.black.withOpacity(0.2), + spreadRadius: 1, + blurRadius: 4, + offset: const Offset(0, 2), + ), + ] + : null, + ), + alignment: Alignment.center, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: 30, + height: 30, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: color, + ), + child: Padding( + padding: const EdgeInsets.all(1.0), + child: Center( + child: SvgPicture.asset(icon, color: iconColor), ), - ] - : null, - ), - alignment: Alignment.center, - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( - width: 30, - height: 30, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: color, + ), ), - child: Padding( - padding: const EdgeInsets.all(1.0), - child: Center(child: SvgPicture.asset(icon, color: iconColor)), + const SizedBox(width: 10), + Text( + text, + style: TextStyle( + color: isSelected ? Colors.white : Colors.black87, + fontWeight: FontWeight.bold, + ), ), - ), - const SizedBox(width: 10), - Text( - text, - style: TextStyle( - color: isSelected ? Colors.white : Colors.black87, - fontWeight: FontWeight.bold, - ), - ), - ], - ), - ), - if (isSelected) - Positioned( - bottom: 0, - left: 0, - right: 0, - child: SvgPicture.asset( - Assets.icons.shape.path, - height: 4, + ], ), ), - ], - ), - ); + if (isSelected) + Positioned( + bottom: 0, + left: 0, + right: 0, + child: SvgPicture.asset(Assets.icons.shape.path, height: 4), + ), + ], + ), + ); + } } -} \ No newline at end of file diff --git a/lib/screens/mains/planner/planner.dart b/lib/screens/mains/planner/planner.dart new file mode 100644 index 0000000..c4de6ed --- /dev/null +++ b/lib/screens/mains/planner/planner.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; + +class Planner extends StatelessWidget { + const Planner({super.key}); + + @override + Widget build(BuildContext context) { + return const Placeholder(); + } +} \ No newline at end of file diff --git a/lib/screens/mains/profile/profile.dart b/lib/screens/mains/profile/profile.dart new file mode 100644 index 0000000..21872e4 --- /dev/null +++ b/lib/screens/mains/profile/profile.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; + +class Profile extends StatelessWidget { + const Profile({super.key}); + + @override + Widget build(BuildContext context) { + return const Placeholder(); + } +} \ No newline at end of file diff --git a/lib/screens/nearby/listScreen.dart b/lib/screens/nearby/listScreen.dart deleted file mode 100644 index f107ab3..0000000 --- a/lib/screens/nearby/listScreen.dart +++ /dev/null @@ -1,263 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; -import 'package:lba/extension/screenSize.dart'; -import 'package:lba/gen/assets.gen.dart'; -import 'package:lba/widgets/orderType.dart'; -import 'package:lba/widgets/remainingTime.dart'; - -class ListScreen extends StatefulWidget { - final bool delivery; - final bool pickup; - int initialTimerStatus; - final String expiryTimeString; - - ListScreen({ - super.key, - required this.delivery, - required this.pickup, - this.initialTimerStatus=3, - required this.expiryTimeString, - }); - - @override - State createState() => _ListScreenState(); -} - -class _ListScreenState extends State { - late RemainingTime _timer; - late ValueNotifier _timerStatus; - - @override - void initState() { - super.initState(); - _timer = RemainingTime(); - _timerStatus = ValueNotifier(widget.initialTimerStatus); - _timer.initializeFromExpiry(expiryTimeString: widget.expiryTimeString); - - _timer.remainingSeconds.addListener(() { - if (_timer.remainingSeconds.value <= 0) { - _timerStatus.value = 3; - } else if (_timer.remainingSeconds.value < 18000) { - _timerStatus.value = 1; - } else if (_timer.remainingSeconds.value > 18000) { - _timerStatus.value = 2; - } - }); - } - - @override - void dispose() { - _timer.dispose(); - _timerStatus.dispose(); - super.dispose(); - } - - @override - Widget build(BuildContext context) { - final width = context.screenWidth; - final height = context.screenHeight; - return - Padding( - padding: const EdgeInsets.only(bottom: 16), - child: Stack( - children: [ - Container( - margin: const EdgeInsets.only(top: 60), - padding: const EdgeInsets.only(top: 80), - decoration: BoxDecoration( - color: const Color.fromARGB(255, 242, 242, 241), - borderRadius: BorderRadius.circular(10), - ), - child: Padding( - padding: EdgeInsets.fromLTRB(12, 0, width/50, 15), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Row( - children: [ - SvgPicture.asset(Assets.icons.phCheese.path), - const SizedBox(width: 5), - const Text( - "Amul Cheese Slices", - style: TextStyle(fontWeight: FontWeight.bold), - ), - ], - ), - const SizedBox(height: 10), - Row( - children: [ - SvgPicture.asset( - Assets.icons.location.path, - color: const Color.fromARGB(255, 157, 157, 155), - width: 14, - ), - const SizedBox(width: 5), - const Text("Sharjah (750m away)",style: TextStyle( - fontSize: 12, - fontWeight: FontWeight.w500 - ),), - ], - ), - const SizedBox(height: 10), - Row( - children: [ - SvgPicture.asset( - Assets.icons.coin.path, - width: 14, - ), - const SizedBox(width: 5), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: const [ - Text( - "18.15 AED", - style: TextStyle( - color: Color.fromARGB(255, 157, 157, 155), - fontSize: 10, - decoration: TextDecoration.lineThrough, - ), - ), - SizedBox(height: 0), - Row( - children: [ - Text("15.84 AED",style: TextStyle( - fontSize: 12, - fontWeight: FontWeight.w500 - ),), - SizedBox(width: 4), - Text( - "(13% off)", - style: TextStyle( - color: Color.fromARGB(255, 76, 175, 80), - fontSize: 10, - fontWeight: FontWeight.w500 - ), - ), - ], - ), - ], - ), - ], - ), - ], - ), - ), - Padding( - padding: EdgeInsets.fromLTRB(0, 35, widget.delivery == false || widget.pickup == false ? width/5 : width/60, 0), - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - SvgPicture.asset( - Assets.icons.star.path, - width: 14, - ), - const SizedBox(width: 2), - const Text( - "4.8", - style: TextStyle( - color: Color.fromARGB(255, 112, 112, 110), - ), - ), - ], - ), - const SizedBox(height: 10), - Row( - children: [ - if (widget.delivery) - OrderType( - icon: Assets.icons.cardPos.path, - typename: "Delivery", - ), - if (widget.delivery) const SizedBox(width: 5), - if (widget.pickup) - OrderType( - icon: Assets.icons.shoppingCart.path, - typename: "Pickup", - ), - ], - ), - ], - ), - ), - ], - ), - ), - ), - ClipRRect( - borderRadius: const BorderRadius.only( - topRight: Radius.circular(10), - topLeft: Radius.circular(10), - ), - child: Image.asset( - Assets.images.media.path, - width: double.infinity, - height: 130, - fit: BoxFit.cover, - ), - ), - Positioned( - top: 10, - left: 10, - child: ValueListenableBuilder( - valueListenable: _timerStatus, - builder: (context, timerStatus, child) { - return Container( - padding: const EdgeInsets.symmetric(horizontal: 6), - height: 20, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(6), - color: timerStatus == 1 - ? const Color.fromARGB(255, 255, 193, 7) - : timerStatus == 2 - ? const Color.fromARGB(255, 76, 175, 80) - : timerStatus == 3 - ? const Color.fromARGB(255, 244, 67, 54) - : const Color.fromARGB(255, 244, 67, 54), - ), - child: Row( - children: [ - SvgPicture.asset( - timerStatus == 1 - ? Assets.icons.timer.path - : timerStatus == 2 - ? Assets.icons.timerStart.path - : Assets.icons.timerPause.path, - width: 12, - height: 12, - ), - const SizedBox(width: 5), - ValueListenableBuilder( - valueListenable: _timer.remainingSeconds, - builder: (context, seconds, child) { - return Text( - timerStatus==3? "Unavailable":"${_timer.formatTime()} left", - style: const TextStyle( - color: Colors.white, - fontSize: 12, - fontWeight: FontWeight.w400, - ), - ); - }, - ), - ], - ), - ); - }, - ), - ), - ], - ), - ); - } -} \ No newline at end of file diff --git a/lib/screens/product/item.dart b/lib/screens/product/item.dart new file mode 100644 index 0000000..f8c8e32 --- /dev/null +++ b/lib/screens/product/item.dart @@ -0,0 +1,221 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:lba/gen/assets.gen.dart'; +import 'package:lba/res/colors.dart'; +import 'package:lba/widgets/buildWarpedInfo.dart'; +import 'package:lba/widgets/orderType.dart'; +import 'package:lba/widgets/rate.dart'; +import 'package:lba/widgets/reviews.dart'; + +class Item extends StatefulWidget { + String title; + String brand; + String dimensions; + String colour; + String material; + String description; + + Item({ + super.key, + required this.title, + required this.brand, + required this.dimensions, + required this.colour, + required this.material, + required this.description, + }); + + @override + State createState() => _ItemState(); +} + +class _ItemState extends State with TickerProviderStateMixin { + bool showAllReviews = false; + final GlobalKey _listKey = GlobalKey(); + + final List> reviews = [ + { + "name": "Sara M", + "comment": + '"Super happy with my new sofa from Chattels & More! 🙻✨ Great quality, smooth delivery, and helpful staff. Totally worth it!" 😍👌', + "rate": 5.0, + "yesCount": 2, + "noCount": 0, + "date": "Jun 09, 2025", + }, + { + "name": "Khalid A", + "comment": + '"Nice design but poor delivery experience 😕🕐 Had to wait extra days and deal with missing parts. Expected better for the price." 👎💸', + "rate": 1.0, + "yesCount": 5, + "noCount": 10, + "date": "Dec 26, 2024", + }, + { + "name": "Khalid A", + "comment": + '"Nice design but poor delivery experience 😕🕐 Had to wait extra days and deal with missing parts. Expected better for the price." 👎💸', + "rate": 3.0, + "yesCount": 5, + "noCount": 10, + "date": "Dec 26, 2024", + }, + { + "name": "Sara M", + "comment": + '"Super happy with my new sofa from Chattels & More! 🙻✨ Great quality, smooth delivery, and helpful staff. Totally worth it!" 😍👌', + "rate": 4.0, + "yesCount": 2, + "noCount": 0, + "date": "Jun 09, 2025", + }, + ]; + + List> displayedReviews = []; + + @override + void initState() { + super.initState(); + displayedReviews = reviews.length > 2 ? reviews.sublist(0, 2) : List.from(reviews); + } + + void _showAllReviewsWithAnimation() async { + final newItems = reviews.sublist(displayedReviews.length); + for (int i = 0; i < newItems.length; i++) { + await Future.delayed(Duration(milliseconds: 150)); + displayedReviews.add(newItems[i]); + _listKey.currentState?.insertItem(displayedReviews.length - 1); + setState(() {}); + } + setState(() { + showAllReviews = true; + }); + } + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(16.0), + child: SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Align( + alignment: Alignment.centerLeft, + child: Text( + widget.title, + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16), + ), + ), + SizedBox(height: 5), + Row( + children: [ + Text("Brand: "), + Expanded( + child: Text( + widget.brand, + style: TextStyle(color: LightAppColors.primary), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + SizedBox(height: 10), + Row( + children: [ + CustomStarRating(rating: 4.8), + SizedBox(width: 3), + Text( + "4.8", + style: TextStyle(color: LightAppColors.productDetailDivider), + ), + ], + ), + SizedBox(height: 15), + Row( + children: [ + OrderType( + icon: Assets.icons.cardPos.path, + typename: "Delivery", + fill: true, + ), + SizedBox(width: 7), + OrderType( + icon: Assets.icons.shoppingCart.path, + typename: "Pickup", + fill: true, + ), + ], + ), + SizedBox(height: 15), + buildWrappedInfo("Dimensions:", widget.dimensions), + buildWrappedInfo("Colour:", widget.colour), + buildWrappedInfo("Material:", widget.material), + buildWrappedInfo("Description:", widget.description), + SizedBox(height: 30), + Center( + child: Text( + "Top reviews from the United Arab Emirates", + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + SizedBox(height: 15), + + AnimatedList( + key: _listKey, + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + initialItemCount: displayedReviews.length, + itemBuilder: (context, index, animation) { + final review = displayedReviews[index]; + return SizeTransition( + sizeFactor: animation, + axisAlignment: -1, + child: Reviews( + name: review['name'], + comment: review['comment'], + rate: review['rate'], + yesCount: review['yesCount'], + noCount: review['noCount'], + date: review['date'], + ), + ); + }, + ), + + if (!showAllReviews && reviews.length > 2) + Column( + children: [ + Center( + child: InkWell( + onTap: _showAllReviewsWithAnimation, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "See all reviews", + style: TextStyle( + color: LightAppColors.allReviewOpener, + fontWeight: FontWeight.bold, + fontSize: 18, + ), + ), + SizedBox(width: 10), + SvgPicture.asset( + Assets.icons.arrowDown.path, + color: LightAppColors.allReviewOpener, + ), + ], + ), + ), + ), + SizedBox(height: 50,) + ], + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/product/productdetail.dart b/lib/screens/product/productdetail.dart new file mode 100644 index 0000000..31c77ee --- /dev/null +++ b/lib/screens/product/productdetail.dart @@ -0,0 +1,307 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:lba/data/model/workingHours.dart'; +import 'package:lba/gen/assets.gen.dart'; +import 'package:lba/res/colors.dart'; +import 'package:lba/screens/product/item.dart'; +import 'package:lba/screens/product/shop.dart'; + +class Productdetail extends StatefulWidget { + const Productdetail({super.key}); + + @override + State createState() => _ProductdetailState(); +} + +class _ProductdetailState extends State + with SingleTickerProviderStateMixin { + String selectedImage = Assets.images.media.path; + int selectedIndex = 0; + + final List imageList = [ + Assets.images.media.path, + Assets.images.topDealsAndStores.path, + Assets.images.image.path, + Assets.images.topDealsAndStores.path, + ]; + + late AnimationController _controller; + late Animation _fadeAnimation; + + @override + void initState() { + super.initState(); + _controller = AnimationController( + vsync: this, + duration: const Duration(milliseconds: 300), + ); + _fadeAnimation = CurvedAnimation( + parent: _controller, + curve: Curves.easeInOut, + ); + _controller.forward(); + } + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + void _onToggleTap(int index) { + setState(() { + selectedIndex = index; + _controller.forward(from: 0); + }); + } + + + + @override + Widget build(BuildContext context) { + return Scaffold( + body: SingleChildScrollView( + child: Column( + children: [ + Stack( + children: [ + SizedBox( + height: 400, + width: double.infinity, + child: Stack( + children: [ + AnimatedSwitcher( + duration: const Duration(milliseconds: 300), + child: Image.asset( + selectedImage, + key: ValueKey(selectedImage), + fit: BoxFit.cover, + height: 350, + width: double.infinity, + ), + ), + Positioned( + top: 40, + left: 16, + child: IconButton( + icon: SvgPicture.asset( + Assets.icons.mDSPublicTWButton.path, + ), + onPressed: () => Navigator.pop(context), + ), + ), + Positioned( + top: 40, + right: 16, + child: IconButton( + icon: SvgPicture.asset(Assets.icons.favorite.path), + onPressed: () {}, + ), + ), + Positioned( + bottom: 0, + left: 0, + right: 0, + child: Container( + height: 105, + padding: const EdgeInsets.symmetric(vertical: 8), + decoration: BoxDecoration( + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.2), + blurRadius: 10, + offset: const Offset(0, -2), + ), + ], + ), + child: ListView.separated( + scrollDirection: Axis.horizontal, + padding: const EdgeInsets.symmetric(horizontal: 16), + itemCount: imageList.length, + separatorBuilder: + (_, __) => const SizedBox(width: 8), + itemBuilder: (context, index) { + final img = imageList[index]; + final isSelected = selectedImage == img; + return GestureDetector( + onTap: + () => setState(() => selectedImage = img), + child: Container( + decoration: BoxDecoration( + border: Border.all( + color: + isSelected + ? LightAppColors.confirmButton + : Colors.transparent, + width: 2, + ), + borderRadius: BorderRadius.circular(8), + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: ColorFiltered( + colorFilter: + selectedIndex == 1 && + isSelected == false + ? ColorFilter.matrix([ + 0.2126, + 0.7152, + 0.0722, + 0, + 0, + 0.2126, + 0.7152, + 0.0722, + 0, + 0, + 0.2126, + 0.7152, + 0.0722, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + ]) + : ColorFilter.mode( + Colors.transparent, + BlendMode.dstOut, + ), + child: Image.asset( + img, + width: 100, + height: 100, + fit: BoxFit.cover, + ), + ), + ), + ), + ); + }, + ), + ), + ), + ], + ), + ), + ], + ), + const SizedBox(height: 20), + SizedBox( + width: 350, + height: 50, + child: Row( + children: [ + Expanded( + child: _buildToggleButton( + text: 'Item', + isSelected: selectedIndex == 0, + onTap: () => _onToggleTap(0), + ), + ), + Expanded( + child: _buildToggleButton( + text: 'Shop', + isSelected: selectedIndex == 1, + onTap: () => _onToggleTap(1), + ), + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: const Divider(thickness: 1.2, height: 2), + ), + FadeTransition( + opacity: _fadeAnimation, + child: + selectedIndex == 0 + ? Item( + title: "Bosse Swivel Chair - Nature", + brand: "Papadatos", + dimensions: "L 59 cm | D 69 cm | H 89 cm", + colour: + "Navy Blue, Burnt Sienna, Mustard Yellow, Olive Green", + material: + " Cover: Polyester, Frame construction: Plywood Lacquered, Foot/Base: Oak Solid wood Lacquered, Upholstering: 28 kg/m³ Polyurethane", + description: + "A dining chair which swivels through 360 degrees offers a number of advantages. It allows easy movement and flexibility when sitting, which increases comfort and makes it easier to reach different areas around the table. A swivel chair in the dining room also makes it easier to sit down and get up, even where space is a little limited. This largely eliminates the hassle of moving dining chairs around. In addition, the swivel function encourages dynamic interaction during meals or conversations.", + ) + : Shop( + shopName: "Chattels & More", + star: 3.6, + place: "Mall of the Emirates، City Centre Mirdif", + branches: [ + "Mall of the Emirates، City Centre Mirdif", + "UEA", + ], + + workingHours: [ + WorkingHours( + day: 'mo', + shifts: [Shift(openAt: '01:00', closeAt: '23:00')], + ), + WorkingHours( + day: 'tu', + shifts: [Shift(openAt: '09:00', closeAt: '17:00')], + ), + WorkingHours( + day: 'fr', + shifts: [ + Shift(openAt: '09:00', closeAt: '12:00'), + Shift(openAt: '14:00', closeAt: '18:00'), + ], + ), + ], + facilities: "White Glove Delivery Service", + ), + ), + ], + ), + ), + ); + } + + Widget _buildToggleButton({ + required String text, + required bool isSelected, + required VoidCallback onTap, + }) { + return GestureDetector( + onTap: onTap, + child: Stack( + children: [ + Container( + height: 50, + color: Colors.white, + alignment: Alignment.center, + child: Text( + text, + style: TextStyle( + color: + isSelected + ? LightAppColors.primary + : LightAppColors.productDetailDivider, + fontWeight: FontWeight.bold, + ), + ), + ), + if (isSelected) + Positioned( + bottom: 0, + left: 0, + right: 0, + child: SvgPicture.asset( + Assets.icons.shape.path, + height: 5, + color: LightAppColors.primary, + ), + ), + ], + ), + ); + } +} diff --git a/lib/screens/product/shop.dart b/lib/screens/product/shop.dart new file mode 100644 index 0000000..9f3c67e --- /dev/null +++ b/lib/screens/product/shop.dart @@ -0,0 +1,286 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:lba/data/model/workingHours.dart'; +import 'package:lba/gen/assets.gen.dart'; +import 'package:lba/res/colors.dart'; +import 'package:lba/widgets/customCard.dart'; +import 'package:lba/widgets/dividerTitle.dart'; +import 'package:lba/widgets/openChecker.dart'; +import 'package:lba/widgets/rate.dart'; +import 'package:maps_launcher/maps_launcher.dart'; + +class Shop extends StatefulWidget { + final String shopName; + final double star; + final String place; + final List branches; + final List workingHours; + final String facilities; + + const Shop({ + super.key, + required this.shopName, + required this.star, + required this.place, + required this.branches, + required this.workingHours, + required this.facilities, + }); + + @override + State createState() => _ShopState(); +} + +class _ShopState extends State { + late String selectedPlace; + bool isActiveOffer = true; + + + @override + void initState() { + super.initState(); + selectedPlace = widget.place; + } + + @override + Widget build(BuildContext context) { + final now = DateTime.now(); + final schedule = IsOpenChecker.getTodaySchedule(widget.workingHours); + final isOpen = IsOpenChecker.isOpenNow(widget.workingHours); + + String timeRange = ''; + if (isOpen && schedule.shifts.isNotEmpty) { + for (final shift in schedule.shifts) { + timeRange += + '${formatTime12Hour(shift.openAt)} - ${formatTime12Hour(shift.closeAt)} '; + } + } + + return SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + SvgPicture.asset( + Assets.icons.shop.path, + color: Colors.black, + height: 25, + ), + SizedBox(width: 10), + Text( + widget.shopName, + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 17), + ), + ], + ), + SizedBox(height: 15), + Row( + children: [ + CustomStarRating(rating: widget.star), + SizedBox(width: 5), + Text( + widget.star.toString(), + style: TextStyle(color: LightAppColors.productDetailDivider), + ), + ], + ), + SizedBox(height: 5), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + SvgPicture.asset( + Assets.icons.location.path, + color: Colors.black, + ), + SizedBox(width: 5), + Text( + selectedPlace, + style: TextStyle( + color: LightAppColors.productDetailDivider, + ), + ), + ], + ), + PopupMenuButton( + color: Colors.white, + icon: SvgPicture.asset( + Assets.icons.arrowDown.path, + color: Colors.black, + height: 20, + ), + onSelected: (String newPlace) { + setState(() { + selectedPlace = newPlace; + }); + }, + itemBuilder: (BuildContext context) { + return widget.branches.map((String branch) { + return PopupMenuItem( + value: branch, + child: Text(branch), + ); + }).toList(); + }, + ), + ], + ), + SizedBox(height: 5), + Row( + children: [ + SvgPicture.asset(Assets.icons.clock.path), + SizedBox(width: 5), + Text( + isOpen ? 'Open Now' : 'Closed', + style: TextStyle(color: isOpen ? Colors.green : Colors.red), + ), + SizedBox(width: 5), + Container( + color: LightAppColors.productDetailDivider, + width: 1, + height: 13, + ), + SizedBox(width: 5), + Text( + timeRange, + style: TextStyle(color: LightAppColors.productDetailDivider), + ), + ], + ), + SizedBox(height: 15), + DividerTitleWidget(title: "Facilities"), + SizedBox( + height: 50, + child: ListView.builder( + physics: NeverScrollableScrollPhysics(), + itemCount: 1, + itemBuilder: (context, index) { + return Row( + children: [ + SvgPicture.asset(Assets.icons.tick.path), + SizedBox(width: 5), + Text( + widget.facilities, + style: TextStyle( + color: LightAppColors.productDetailDivider, + ), + ), + ], + ); + }, + ), + ), + SizedBox(height: 20), + ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: LightAppColors.confirmButton, + minimumSize: const Size(double.infinity, 48), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15), + ), + ), + onPressed: () { + MapsLauncher.launchCoordinates(25.2399, 55.2744); + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SvgPicture.asset( + Assets.icons.routing2.path, + color: Colors.black, + ), + SizedBox(width: 5), + Text( + "Direction", + style: const TextStyle( + color: Colors.black, + fontSize: 16, + ), + ), + ], + ), + ), + SizedBox(height: 30), + Text( + "List of offers", + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 18, + ), + ), + SizedBox(height: 15), + Container( + height: 45, + width: 150, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: const Color.fromARGB(17, 77, 77, 77), + ), + child: Row( + children: [ + GestureDetector( + onTap: () { + setState(() { + isActiveOffer = true; + }); + }, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Container( + height: 35, + width: 70, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: isActiveOffer ? Colors.white : Colors.transparent, + ), + child: Center(child: Text("Active")), + ), + ), + ), + GestureDetector( + onTap: () { + setState(() { + isActiveOffer = false; + }); + }, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Container( + height: 35, + width: 60, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: !isActiveOffer ? Colors.white : Colors.transparent, + ), + child: Center(child: Text("Old")), + ), + ), + ), + ], + ), + ), + SizedBox(height: 15), + SizedBox( + height: 160, + child: ListView.builder( + scrollDirection: Axis.horizontal, + shrinkWrap: true, + itemCount: 2, + itemBuilder: (context, index) { + return CustomCard( + title: "Calamaro Table Lamp", + description: "Elegant lighting with a modern twist.", + ); + }, + ), + ), + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/widgets/buildWarpedInfo.dart b/lib/widgets/buildWarpedInfo.dart new file mode 100644 index 0000000..faa724c --- /dev/null +++ b/lib/widgets/buildWarpedInfo.dart @@ -0,0 +1,37 @@ +import 'package:flutter/material.dart'; +import 'package:lba/res/colors.dart'; + +Widget buildWrappedInfo(String label, String value) { + List lines = value.split('\n'); + return Padding( + padding: const EdgeInsets.only(bottom: 10.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + RichText( + text: TextSpan( + style: TextStyle(color: LightAppColors.productDetailDivider), + children: [ + TextSpan( + text: '$label ', + style: TextStyle(color: LightAppColors.confirmButton), + ), + TextSpan( + text: lines.first, + ), + ], + ), + ), + if (lines.length > 1) + Padding( + padding: const EdgeInsets.only(top: 4.0), + child: Text( + lines.skip(1).join('\n'), + style: TextStyle(color: LightAppColors.productDetailDivider), + ), + ), + ], + ), + ); + } + diff --git a/lib/widgets/customCard.dart b/lib/widgets/customCard.dart new file mode 100644 index 0000000..356376d --- /dev/null +++ b/lib/widgets/customCard.dart @@ -0,0 +1,100 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.dart'; +import 'package:lba/gen/assets.gen.dart'; +import 'package:lba/res/colors.dart'; + +class CustomCard extends StatelessWidget { + final String title; + final String description; + + const CustomCard({ + super.key, + required this.title, + required this.description, + }); + + @override + Widget build(BuildContext context) { + return Container( + width: 320, // عرض کمی افزایش یافت + margin: const EdgeInsets.symmetric(horizontal: 5), + padding: const EdgeInsets.all(8.0), + decoration: BoxDecoration( + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.2), + offset: Offset(2, 2), + blurRadius: 6, + spreadRadius: 1, + ), + ], + borderRadius: BorderRadius.circular(12), + color: LightAppColors.nearbyPopup, + border: Border.all(color: Colors.white, width: 4.0), + ), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(11), + ), + child: Image.asset( + Assets.images.image.path, + width: 80, + height: 80, + fit: BoxFit.cover, + ), + ), + SizedBox(width: 8), + Flexible( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: TextStyle(color: Colors.black), + overflow: TextOverflow.ellipsis, + ), + SizedBox(height: 5), + Text( + description, + style: TextStyle( + color: LightAppColors.nearbyPopuphint, + fontSize: 15, + ), + maxLines: 2, + softWrap: true, + ), + ], + ), + ), + ], + ), + SizedBox(height: 10), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + SvgPicture.asset( + Assets.icons.mDSPublicTWTag.path, + ), + SizedBox(width: 10), + Text( + "(15%) 43 - 36.55 AED", + style: TextStyle(fontWeight: FontWeight.bold), + ), + ], + ), + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/widgets/dividerTitle.dart b/lib/widgets/dividerTitle.dart new file mode 100644 index 0000000..dd1f2cc --- /dev/null +++ b/lib/widgets/dividerTitle.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; + +class DividerTitleWidget extends StatelessWidget { + + final String title; + + const DividerTitleWidget({ + super.key, + required this.title, + }); + + @override + Widget build(BuildContext context) { + return Row( + children: [ + Text( + title, + style: TextStyle(fontSize: 15), + ), + const SizedBox(width: 8), + const Expanded( + child: Divider(color: Colors.grey, thickness: 2), + ), + ], + ); + } +} diff --git a/lib/widgets/openChecker.dart b/lib/widgets/openChecker.dart new file mode 100644 index 0000000..a22ba07 --- /dev/null +++ b/lib/widgets/openChecker.dart @@ -0,0 +1,83 @@ +import 'package:intl/intl.dart'; +import 'package:lba/data/model/workingHours.dart'; + +class IsOpenChecker { + static const Map _dayMap = { + 'monday': 'mo', + 'tuesday': 'tu', + 'wednesday': 'we', + 'thursday': 'th', + 'friday': 'fr', + 'saturday': 'sa', + 'sunday': 'su', + }; + + static bool isOpenNow(List workingHours) { + final now = DateTime.now(); + final todayKey = _dayMap[DateFormat('EEEE').format(now).toLowerCase()] ?? ''; + + final todaySchedule = workingHours.firstWhere( + (day) => day.day.toLowerCase() == todayKey, + orElse: () => WorkingHours(day: todayKey, shifts: []), + ); + + if (todaySchedule.shifts.isEmpty) return false; + + for (final shift in todaySchedule.shifts) { + if (_isTimeBetween(now, shift.openAt, shift.closeAt)) { + return true; + } + } + + return false; + } + + static WorkingHours getTodaySchedule(List workingHours) { + final now = DateTime.now(); + final todayKey = _dayMap[DateFormat('EEEE').format(now).toLowerCase()] ?? ''; + + return workingHours.firstWhere( + (day) => day.day.toLowerCase() == todayKey, + orElse: () => WorkingHours(day: todayKey, shifts: []), + ); + } + + static bool _isTimeBetween(DateTime now, String open, String close) { + try { + final openTime = _parseTime(open); + final closeTime = _parseTime(close); + final nowTime = Duration(hours: now.hour, minutes: now.minute); + + if (closeTime <= openTime) { + // شیفت شبانه (مثلاً 22:00 تا 02:00) + return nowTime >= openTime || nowTime <= closeTime; + } + + return nowTime >= openTime && nowTime <= closeTime; + } catch (_) { + return false; + } + } + + static Duration _parseTime(String time) { + final parts = time.split(':'); + final hour = int.parse(parts[0]); + final minute = int.parse(parts[1]); + return Duration(hours: hour, minutes: minute); + } +} + + +String formatTime12Hour(String time24) { + try { + final parts = time24.split(':'); + final hour = int.parse(parts[0]); + final minute = int.parse(parts[1]); + + final dateTime = DateTime(0, 1, 1, hour, minute); + final formatter = DateFormat('hh:mm a'); + return formatter.format(dateTime); + } catch (_) { + return time24; + } +} \ No newline at end of file diff --git a/lib/widgets/orderType.dart b/lib/widgets/orderType.dart index 198405e..dcf2664 100644 --- a/lib/widgets/orderType.dart +++ b/lib/widgets/orderType.dart @@ -1,11 +1,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:lba/res/colors.dart'; class OrderType extends StatelessWidget { String icon; String typename; + bool fill; - OrderType({super.key, required this.icon, required this.typename}); + OrderType({super.key, required this.icon, required this.typename,required this.fill}); @override Widget build(BuildContext context) { @@ -13,6 +15,7 @@ class OrderType extends StatelessWidget { decoration: BoxDecoration( borderRadius: BorderRadius.circular(25), border: Border.all(color: Color.fromARGB(255, 76, 175, 80), width: 1.0), + color: fill==false?Colors.transparent:LightAppColors.fillOrder ), child: Padding( padding: const EdgeInsets.fromLTRB(6, 2, 6, 2), @@ -20,14 +23,14 @@ class OrderType extends StatelessWidget { children: [ SvgPicture.asset( icon, - color: Color.fromARGB(255, 95, 95, 95), + color: fill==false? Color.fromARGB(255, 95, 95, 95):LightAppColors.fillOrderText, height: 17, ), SizedBox(width: 2), Text( typename, style: TextStyle( - color: Color.fromARGB(255, 95, 95, 95), + color: fill==false? Color.fromARGB(255, 95, 95, 95):LightAppColors.fillOrderText, fontWeight: FontWeight.w500, fontSize: 12 ), diff --git a/lib/widgets/rate.dart b/lib/widgets/rate.dart new file mode 100644 index 0000000..a4c2603 --- /dev/null +++ b/lib/widgets/rate.dart @@ -0,0 +1,51 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.dart'; +import 'package:lba/gen/assets.gen.dart'; + +class CustomStarRating extends StatelessWidget { + final double rating; + final int starCount; + final double size; + + const CustomStarRating({ + super.key, + required this.rating, + this.starCount = 5, + this.size = 20.0, + }); + + @override + Widget build(BuildContext context) { + List stars = []; + + double remaining = rating; + + for (int i = 0; i < starCount; i++) { + if (remaining >= 1) { + stars.add(_buildStar(Assets.icons.starFill.path)); + remaining -= 1; + } else if (remaining >= 0.5) { + stars.add(_buildStar(Assets.icons.starHalf.path)); + remaining = 0; + } else { + stars.add(_buildStar(Assets.icons.star.path)); + } + } + + return Row( + mainAxisSize: MainAxisSize.min, + children: stars, + ); + } + + Widget _buildStar(String asset) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 2), + child: SvgPicture.asset( + asset, + width: size, + height: size, + ), + ); + } +} diff --git a/lib/widgets/reviews.dart b/lib/widgets/reviews.dart new file mode 100644 index 0000000..32b9135 --- /dev/null +++ b/lib/widgets/reviews.dart @@ -0,0 +1,102 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.dart'; +import 'package:lba/gen/assets.gen.dart'; +import 'package:lba/res/colors.dart'; +import 'package:lba/widgets/buildWarpedInfo.dart'; +import 'package:lba/widgets/rate.dart'; + +class Reviews extends StatelessWidget { + + final String name; + final String comment; + final double rate; + final int yesCount; + final int noCount; + final String date; + + const Reviews({ + super.key, + required this.name, + required this.comment, + required this.rate, + required this.yesCount, + required this.noCount, + required this.date, + }); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text(name), + SizedBox(width: 2), + Image.asset(Assets.images.usa.path), + ], + ), + Text( + "Verified Buyer", + style: TextStyle(color: LightAppColors.confirmButton), + ), + ], + ), + CustomStarRating(rating: rate), + ], + ), + SizedBox(height: 7), + buildWrappedInfo( + "", + comment, + ), + SizedBox(height: 10,), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + InkWell( + child: Row( + children: [ + SvgPicture.asset(Assets.icons.like.path), + SizedBox(width: 1,), + Text("Yes (${yesCount.toString()})",style: TextStyle( + color: LightAppColors.hint, + ),), + ], + ), + ), + SizedBox(width: 10,), + InkWell( + child: Row( + children: [ + SvgPicture.asset(Assets.icons.dislike.path), + SizedBox(width: 1,), + Text("No (${noCount.toString()})",style: TextStyle( + color: LightAppColors.hint, + ),), + ], + ), + ), + ], + ), + Text(date,style: TextStyle( + color: LightAppColors.hint + ),) + ], + ), + SizedBox(height: 5,), + Divider(thickness: 1.2, height: 2), + ], + ), + ); + } +} diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index e71a16d..dbec55e 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,6 +6,14 @@ #include "generated_plugin_registrant.h" +#include +#include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) maps_launcher_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "MapsLauncherPlugin"); + maps_launcher_plugin_register_with_registrar(maps_launcher_registrar); + g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); + url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); } diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 2e1de87..6c56d5b 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,6 +3,8 @@ # list(APPEND FLUTTER_PLUGIN_LIST + maps_launcher + url_launcher_linux ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 4bda447..98bc016 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -7,10 +7,14 @@ import Foundation import geolocator_apple import location +import maps_launcher import shared_preferences_foundation +import url_launcher_macos func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin")) LocationPlugin.register(with: registry.registrar(forPlugin: "LocationPlugin")) + MapsLauncherPlugin.register(with: registry.registrar(forPlugin: "MapsLauncherPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) + UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index 15b74d5..53627da 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -568,6 +568,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" + maps_launcher: + dependency: "direct main" + description: + name: maps_launcher + sha256: dac4c609720211fa6336b5903d917fe45e545c6b5665978efc3db2a3f436b1ae + url: "https://pub.dev" + source: hosted + version: "3.0.0+1" matcher: dependency: transitive description: @@ -917,6 +925,70 @@ packages: url: "https://pub.dev" source: hosted version: "0.3.1" + url_launcher: + dependency: transitive + description: + name: url_launcher + sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" + url: "https://pub.dev" + source: hosted + version: "6.3.1" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + sha256: "8582d7f6fe14d2652b4c45c9b6c14c0b678c2af2d083a11b604caeba51930d79" + url: "https://pub.dev" + source: hosted + version: "6.3.16" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + sha256: "7f2022359d4c099eea7df3fdf739f7d3d3b9faf3166fb1dd390775176e0b76cb" + url: "https://pub.dev" + source: hosted + version: "6.3.3" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2" + url: "https://pub.dev" + source: hosted + version: "3.2.2" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77" + url: "https://pub.dev" + source: hosted + version: "3.1.4" uuid: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 82315d5..e2745f6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -46,6 +46,7 @@ dependencies: flutter_map: ^8.1.1 latlong2: ^0.9.1 location: ^8.0.0 + maps_launcher: ^3.0.0+1 dev_dependencies: flutter_test: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 1ece8f2..9a6f8bb 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -7,8 +7,14 @@ #include "generated_plugin_registrant.h" #include +#include +#include void RegisterPlugins(flutter::PluginRegistry* registry) { GeolocatorWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("GeolocatorWindows")); + MapsLauncherPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("MapsLauncherPlugin")); + UrlLauncherWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("UrlLauncherWindows")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 7f101a7..ae10e3f 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -4,6 +4,8 @@ list(APPEND FLUTTER_PLUGIN_LIST geolocator_windows + maps_launcher + url_launcher_windows ) list(APPEND FLUTTER_FFI_PLUGIN_LIST