From 7693efd9c953b53992da51b217f581ffc6e1eac9 Mon Sep 17 00:00:00 2001 From: Park Seo Yeon Date: Fri, 1 Mar 2024 21:11:10 +0900 Subject: [PATCH 1/7] =?UTF-8?q?Design:=20=ED=83=AD=EB=B0=94=20=EB=A7=88?= =?UTF-8?q?=EC=9D=B4=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=82=AC=EC=A7=84=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alarmDefault.imageset/Contents.json | 23 ------------------ .../alarmDefault.imageset/alarmDefault.png | Bin 528 -> 0 bytes .../alarmDefault.imageset/alarmDefault@2x.png | Bin 987 -> 0 bytes .../alarmDefault.imageset/alarmDefault@3x.png | Bin 1397 -> 0 bytes .../diaryDefault.imageset/Contents.json | 23 ------------------ .../diaryDefault.imageset/diaryDefault.png | Bin 409 -> 0 bytes .../diaryDefault.imageset/diaryDefault@2x.png | Bin 661 -> 0 bytes .../diaryDefault.imageset/diaryDefault@3x.png | Bin 869 -> 0 bytes .../mypage.imageset/Contents.json | 0 .../TabBar/mypage.imageset/mypage.png | Bin 0 -> 475 bytes .../TabBar/mypage.imageset/mypage@2x.png | Bin 0 -> 825 bytes .../TabBar/mypage.imageset/mypage@3x.png | Bin 0 -> 1178 bytes .../mypageDefault.imageset/mypageDefault.png | Bin 523 -> 532 bytes .../mypageDefault@2x.png | Bin 916 -> 919 bytes .../mypageDefault@3x.png | Bin 1260 -> 1334 bytes .../Tabbar/alarm.imageset/Contents.json | 23 ------------------ .../Tabbar/alarm.imageset/alarm.png | Bin 472 -> 0 bytes .../Tabbar/alarm.imageset/alarm@2x.png | Bin 878 -> 0 bytes .../Tabbar/alarm.imageset/alarm@3x.png | Bin 1253 -> 0 bytes .../Tabbar/diary.imageset/Contents.json | 23 ------------------ .../Tabbar/diary.imageset/diary.png | Bin 373 -> 0 bytes .../Tabbar/diary.imageset/diary@2x.png | Bin 609 -> 0 bytes .../Tabbar/diary.imageset/diary@3x.png | Bin 817 -> 0 bytes .../Tabbar/mypage.imageset/mypage.png | Bin 442 -> 0 bytes .../Tabbar/mypage.imageset/mypage@2x.png | Bin 800 -> 0 bytes .../Tabbar/mypage.imageset/mypage@3x.png | Bin 1107 -> 0 bytes .../Sources/Presentation/Tab/MainTab.swift | 14 +---------- .../Sources/Presentation/Tab/TabBarView.swift | 1 + 28 files changed, 2 insertions(+), 105 deletions(-) delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/alarmDefault.imageset/Contents.json delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/alarmDefault.imageset/alarmDefault.png delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/alarmDefault.imageset/alarmDefault@2x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/alarmDefault.imageset/alarmDefault@3x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/diaryDefault.imageset/Contents.json delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/diaryDefault.imageset/diaryDefault.png delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/diaryDefault.imageset/diaryDefault@2x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/diaryDefault.imageset/diaryDefault@3x.png rename Projects/App/Resources/Assets.xcassets/{Tabbar => TabBar}/mypage.imageset/Contents.json (100%) create mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage.png create mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage@2x.png create mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage@3x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/Tabbar/alarm.imageset/Contents.json delete mode 100644 Projects/App/Resources/Assets.xcassets/Tabbar/alarm.imageset/alarm.png delete mode 100644 Projects/App/Resources/Assets.xcassets/Tabbar/alarm.imageset/alarm@2x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/Tabbar/alarm.imageset/alarm@3x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/Tabbar/diary.imageset/Contents.json delete mode 100644 Projects/App/Resources/Assets.xcassets/Tabbar/diary.imageset/diary.png delete mode 100644 Projects/App/Resources/Assets.xcassets/Tabbar/diary.imageset/diary@2x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/Tabbar/diary.imageset/diary@3x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/Tabbar/mypage.imageset/mypage.png delete mode 100644 Projects/App/Resources/Assets.xcassets/Tabbar/mypage.imageset/mypage@2x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/Tabbar/mypage.imageset/mypage@3x.png diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/alarmDefault.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/TabBar/alarmDefault.imageset/Contents.json deleted file mode 100644 index e7566246..00000000 --- a/Projects/App/Resources/Assets.xcassets/TabBar/alarmDefault.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "alarmDefault.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "alarmDefault@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "alarmDefault@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/alarmDefault.imageset/alarmDefault.png b/Projects/App/Resources/Assets.xcassets/TabBar/alarmDefault.imageset/alarmDefault.png deleted file mode 100644 index 8259a7fb73f9e0d5771a2a72891bb7a7f7f51cee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmV+r0`L8aP)5h%tf*9D!${9cM70P+Ev= zzocopvpfInba!V7d*}{6D}WJRn41hZh<7lR zS0hTu>}u={$2DSZ?{ltbA9KM-n+9Fn4el%o;z6zP_VE*13zU7YXJmSSI`nU&z!XY5iVgFLni+#0Jc8^V7Z&= z-N;hYlIqHknYixj?Ec;!qWA{vp0N|K SdB|e`0000J%uMI0`y8^-rperD(pxFUr2XqC5S1uYZttu{6vV^GZ z17b2hwZn9nJ97*1Nc~VkPm*N1B`askt zVh1!u-FI(iPN4u0a$xj&I{!1=AcD;YV-x>zpAg#GRORd9n_3?-l1V@w!$XZgY%R@A zZ$k!B3y`kDh;|5|3I!rZ#M0nXTGwJ}9zMSKxq(FcMH?@XZ88gtlZ)%EH1!e-7&S~* z8^#O~wbF=4y=Ay{cuJJ(wH=tx{Qx zn`UF*0dAW6Fj;ibfje;zL<%@LziN(Sw#h(4+7eY5Hv*}qvoRBCOQ-;adVhqp<@o&a zV^|rBsIUggfg7Q@{tN|Xo=CJ8m6waP+Q6L`7y-+)>Yyn6w;6DwpbHUifTD=)cc62F z0uUBJRVZj%KmaN<`-D*SX9NVOG<}9p^=G6y52(n00h7ifz%Y8b59s4Y1{B`46!Sp!rDz55|Yz~T3vvIiL-`k`^<*y;$-EVC>E0NKN#%Mn0;AD|>K z*JR@eK%ml$fH<=_XXB9od1;~eLB@|hx|0K2fLMVQj043ZJZ3ZsDC0mfh+DD|kPJke zsK)qkxK={rCHnB!-6j)DTN6r(xW!pxCGGuxRGGZqgpz^;eI~Z29VjUrsKciCv$j|n z3i)o~iRrE^%(k5H`u(Mb+)gCjQe)lytQ<}eeC;QyN}z)$P>UjDPKi3vcKL&)`I%ii zosHwOtG1}^zI5m=&(EwTsVh25eyY%P8MP}6T89i|4r~#_JzrMC_;&N?if&(DHQjj} zG4p$vS-{HNbXWXz-FX)0?YJ97&4!^Pr$@H&pXTWvwKh=e*vL?TN<|1=C1$%002ov JPDHLkV1jMFvVZ^p diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/alarmDefault.imageset/alarmDefault@3x.png b/Projects/App/Resources/Assets.xcassets/TabBar/alarmDefault.imageset/alarmDefault@3x.png deleted file mode 100644 index 03770349e16eb7d1240ea9e07cc830941811731b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1397 zcmV-*1&aEKP)nUDA@q^vw^rXN^o!8(M*gFVWft?lDUV+^eBw0a{6@RO^Up2dP<`xN&D`A46q+oC9KBMIcqTC3f)#*yKdZ;?Fh zXcoj=L&}iT{(clInkrC#>?tCBNGtlcHmy+<3rfw{GmgAp+nv@XRG_nu&2mbu$ET{I zo?#6_1rps(4Qa=9t6|mQT}SMgtw7B72qdSos;)}tzavVp1Y-Q4s|y*V?^lf3ByyQb+gtP&ly3iL6oS?m^ka}s z0)<>_BI{ylCKG51nLty>1e!viK#fMznkn8#7d+Eg&{yjOLi_710%iCF3e;U&E5b5# z*PK~UA7VFp7Zc1yScVLoMHk4mP$1nk2MVN9GtCI19|Ow+TNA8_1^Kw_t_PLt1hUS8 zbOFL(fkFaEDW(`yI3bW)EQF;r8lQ^eWfKAk$0@>6++40YUN#|+RjV0es7JHL%O(UO zqSUXZYT?P*J7AC|Yb{6;Zb7{P+MeZ}01D#+^@u<@r(?7AcytBr4SyaHh^Opyu!QRH z2N70jBhsUOG8}##2-MqYW%c;u(|anr&p;p<1A2-K4+0Oyp@Beh{MkcB55`l!n|T8D zw&rKuYly)XVc&vMyVZAI{4K)N-zYxQ6ELij9#^(5ndvz)MquXSO65Vza}>8ro2P2dSA7oF zLv3dF`F822Bk$9A^~Lp{dvOEz-V-zd0dQG%$u7ql^K{2nf36FDg&4@?=az8tZz`4l zA8av_f$IF~?tq9-0;<}-{kpY|7)Z~*8MKGH_pkqaii9zG`caa$HSG!T9QE%{Ps@LML~ z%^tlifK-Z-e=+Ac8_HjSA&h6@44KhlqntV4UonO8U9QRrRTqMUS%f$W;}+zjrgu5! zBof+PlsJlo38e6HySn^>X}*W`Ja1XhvqfeFUZ_Am-YN>?FuG9Q{n77h?suodw*iY_ zDFXQ@iy~Jp(s{dThtnuiTlS-teDj_Ky;(*cX`lZ9_s{nFfKpTE00000NkvXXu0mjf DK(LMnkzfIaLCf0cRVJU0VF2gx_ zlK-x)*d4(ZbLoeX&8jKv{mO^Wv!ovOXE6ghRkuQA1Lt#&*&jR@#2y}N+Ebw1$QKj6 zfcv`8j03`q|Lxx#P(JwY@gvjhUd{<@xcG&NUd-#OQ6>7cq6##~EYY%d?|L zQlyrEEP07eg!6zRd5LNSCx>j67c`C|@{{!+t_%y&9ZfzSimvG_AWPnh_inEJ<1vq; zn=%njmQbF&?;p3N-rT(@@cj$r!4s-dvJAr(kT^SLtc`OD3V{!Crxb1OAx{LTfHLrYj{5MWOpSPrl&4=e`Qmj{*t+{gn90q*31;Q+Vt00GZr1o!eFIfkP9XHXPg~7vECc{EO00000NkvXXu0mjf)`1!I diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/diaryDefault.imageset/diaryDefault@3x.png b/Projects/App/Resources/Assets.xcassets/TabBar/diaryDefault.imageset/diaryDefault@3x.png deleted file mode 100644 index 2450f851aac5cbdb7b520e0f3d24daab78d42f4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 869 zcmV-r1DgDaP)I5{8BuUdq&`wW*U9F~&imdp8VnxDLIDYF{_E~S z#Wc>^m%OND*z1j=gTayv6A82nM`sI398eJ)oed;WKxJ@rrbrEN=U8*tt>x^|KyZWxBBj zDubi5jl>qH3XaYu5=$Tx9GxvBc0e|8bT*J!0olaSnIf?Pssl%7g2V!-z!~!F^l)!P z231A!exg|L@?kjtdH}!fUL1reHYAbNkAuW4X4%XQ4iX6D4hIPXa*Klm0lCLPLV*0> zAOS%Ba1e7Kzc`37kbfM+6o>~7VhF?s2QdTUg@YIY@xwt(fOz5{20(mqkY^y?ILIRq ze;niqNCplHv2cu>CI<(Fu~JiVmMk0;cH?*7x2*)Wn>-v8M$zD5*K%n)$;3g=zpSRK v?!s`AY&uG|9+PqSM<{iTB}G^@LqhutJaMWIBUu@n00000NkvXXu0mjfFh6rM diff --git a/Projects/App/Resources/Assets.xcassets/Tabbar/mypage.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/Contents.json similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Tabbar/mypage.imageset/Contents.json rename to Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/Contents.json diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage.png b/Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage.png new file mode 100644 index 0000000000000000000000000000000000000000..72945a41e8ed97e924982719c84cb0d336f43563 GIT binary patch literal 475 zcmV<10VMv3P)P000>X1^@s6#OZ}&00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yPAMwG@YQ`pmc&J0|am~KrnSk*(eKK8UTyJn}=9QX5jy3~D=oYP~deaivKF*iB1r zxYGSh_|oONaFQ7B%I*&CD&yl(dm)mhXRJP^sbbDq>%9Y+ z4e$pl0D3czc6ZsMb54K_DlryrHw~l6+vX%(MoK*?0EVCCLxlJWxuZpe_`g0@gV`2E Rd};sy002ovPDHLkV1h0E#qIzA literal 0 HcmV?d00001 diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage@2x.png b/Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2b3ea2e52c1a21fb98f66612a5b9ae228a29cbae GIT binary patch literal 825 zcmV-91IGM`P)maEB@*ju{{D%(6RS>A)LIsx&a0jFTORQvv&tR=&TQV~| zGnxQ#Y`yHRwAu|qhiECsP?m=v#6D=fM}Nv_jO({IGzvgmgHrb}8m&;u0y+Yr14zID zO?*z{z~^%$YC+>K30gr*S_vTm8BPAiTfm1|SV4Ik3k3_&Cnv^*Zs5gr+ES3q&G7Q_ z76K3ufId5$lZYjBC&G}Kd)j*k;BArmK@$2!;`w>*^8qg*wL2{#21@<$aWl3M8`w(y zgK9~Q!G`{6Ke-D4KSs>*8c&2_Y*$1kEQ{EEqOwMOg!skTXLuH=tdR!hvz->HW8(o* zBE%0@thg;=a;MZNHE~_y79zxNNDbn?>k_w+ws}++RGD-mjY23soHvNX*v4uDE{k-T zOSL6ydNU|#93tOBhK5T>0mEU_^rm}fpU)p@`AZ)3bUtaEE626gkQ&65>k`g}cn_&j z>dtiuCq-F6YDOdHNzp09W}OVv_69whb4uhbzf^OAR4|{-5@JtiDXc<;J8l({zab({ zX>1@Ch=q?Qu!YpIGKE-_<;Xo9 zEn;Iq>*XNoS_Z^hvmujpc4iklg(T>OaQW2LJ_s4Gh%GzCyb)3_t^Z-TBDSn+G0$%H zHrT5UQ3k_j?|nDxS%_U3v`*hb;6ihy%;I?at97kGG;>0!TXU5~QuPPBK&dP9f|0%e z&^NiU$OOJVM}l_CA@xAQptFn-GP4K$uZlU4DV09~5Y!f%qc+2^00000NkvXXu0mjf DR%m1I literal 0 HcmV?d00001 diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage@3x.png b/Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..52e904b01e1b7edcfdbc372896bb937ca7489d06 GIT binary patch literal 1178 zcmV;L1ZDe)P)002t}1^@s6I8J)%00009a7bBm001F4 z001F40Y#QEU;qFB0drDELIAGL9O(c600d`2O+f$vv5yP$zDs5fW^AW~1VTS!PqPLlsf z$?tjmgtnoPU*DZ&>E0kTgiO;8y>wwd??M!P1t}Byv--Q_&D&;l1 z3D@9Oq-AOmtunDFni4vJJ34w$7l;!&PN=TsPyv;QrR$Oq4^VA1ts|$;9^lp0BRD1k z$H?KZPlJ7iW`t5Cbk}^Kag4w*PQ@w*cmwSqbuE~)G%N>}LfepXK!xAQ1#}{oJUcs7 zp$}~(iVj>%X0652cfF!UCD2}GB-j_*yQF>1QqzNW3#I6k_jg!WE z3Kkfrp(p9Lj7rDPl#Vknz&x^q_zr#vrBKhP#?fUIS>=QAPw-DHg>iJ5Mb>OxqsE<8`HmzPkYszB{oGT@1Yn7|Ih6)UXBVqSdb z8x|qM6HCe*LV|fdyB%3^%vyQii516F2#X5EV*ckIz`FSSRfo~&Paw1S8D3m`;{1Y1 z&6+?M`~W6=v4miMNGp+Y0!;W~#j*45ltwT(54Ko(by4*}`3&OJWOv$Zo+ZQ+_zdDL z7+@w=9FOS({hUUq&SwClQeq^Q-gA@E=;}0%l=t=TNJr6)chRMyDvHKnh_P7u>Ijj6 zPatMCZAbR~S)3&Tq2hdJ3S3U907XQkQ;IaD;P*g&Yo3dU4*c&&FX(_dlw$qZGcK1nNfJ zY^a7-;Y+M!4PFlv@j&|m>!dI`eW}X8S>=XB0?Kq$ABF3+LfqG^SEp(ZnnFdG5cjVA zhwi*Pg$Yv?_5|94Q`4pkJ4*ABv>7KJL>tq9>eafY;~0DaacuK2ZPo{0xWJSb#>Xu& zO9&7$2cq77G4r zWEBN{&ms%o2cgB%>9?;_t9kQ%5V*tB1PJOBUy07*qoM6N<$f<59P=Kufz literal 0 HcmV?d00001 diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault.png b/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault.png index 9d8b456630cd905e653779e81c5561a1aa253109..5999c6f3eae0ec86aad7b40173212276f514cc0e 100644 GIT binary patch delta 491 zcmVf2m1C zK~#7FwUu2?!axv!XI3%3m~aG|sFB1U8sf8f0=2MSc^q*^|jIv=?(xZ0953o!^aTP}@=<;7Rh+2u_A1giwbJAmUA; zgr8&uvQZOhFO^unY)d7ox=y`5WPxB5oC;?bf6)tM01=)O zCHvliu_=IC2ncNEy8T3n*fIoa!d4d0gXa+`5r~S)w@rr>i1o5c99!xK<9UPkktawL zc+KmpGedSiQu0?MTLgHYRO)?!Oy0oss0J32yiPvrKwkU5!9xKN+trH`T`C#A&pPCR z1{vW&4SqgN-*vtMUtp7qK_12bb#{r?nWsR&dy>XG>^f<1Fqzkos0TZO5N{bHO5MxT hAmTIeT|0%x{{;kUr!yP*B%lBQ002ovPDHLkV1f#v&{hBd delta 482 zcmV<80UiF71d9YAiBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$_>mzsf1pW3 zK~#7FwUte7!Y~kp$4=;~Nc0BDf=Vo?8lmpt1nmvz5qbmQ1aJd-g`R-!D-;9^q_RkE z&`5MuC!UVeA|)XqKag(|#rC}Cv8@>fIect(eU9)5AfFJJ5e_m~F@zOwG$vNZbWg>z ztO?t3T5|7?5by;~3(Rnt#*a4xL#PNt9372Ce{7r1UK3w%23oUm6TORA2EOhW zKlcoTCyeMnhYQ1W)~eMYNz6d^eHYFosSz`>lsn0Yl z)w({Uvf)7N5c2 Y7yQSn_S_NMUH||907*qoM6N<$f}8BhCjbBd diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault@2x.png b/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault@2x.png index d8d2e7481190578b2d55e2829e80e93b40c30288..cc35f9c00a5eeb72118d3eded8e8cac96df3a83f 100644 GIT binary patch delta 881 zcmV-%1CIQZ2bTvSiBL{Q4GJ0x0000DNk~Le0000o0000o2nGNE03JVxv5_G)e=JEv zK~#7F?V3?;+CUJ7XAJbIl{f-OO`|>}P1NK$Cg0=98!qC<{jH4_EXh(rI`{p8 zGalE$P{4wRXt0H9%UCG1kn7tAb|I_&+jW+MA7ns4r+eF*O$dPnA^39FV>iN2QHc-; zpdk13?rn~-MPwo(s=^9E#Om9vjhfMSOa^=IB$kK+dT-)p+Cn6--SPO+e{+FY7-n+0 zUEKvhJ4RTRnFR0Qjic4`)@X@V8{|h?C)hH_niA61&9QRKerNV z5nB*9<9|bBZbszP!io@#Ei&m!{j`sX;3Vq9 zNyDTfuU#^=i0U!de|{%|xRZ6LV;yCTh!v#n8@C8S=9DU@PV?tUi%2Xuqp|ctN{|Yu znR)T7vRf=JJY6gll0Yv+iy&9~M@U*lOnFMooDjd^-$|>883^6Xa~AW5o6QBgGqUTc z7a z8OlnIuojQYPTQS;%Gd17X0ijnC)ku>dx{=_=-RNFUinf4Xa0-$=mG zX|FL_CQD=a>)H9TNkvl+G@)dW$f(a;0WuP0gw8z}c_CLoK=c7TVbXW500LYEPq626 z`_>8=xp1P(W*(KpZf{XnLGJ+t+QwxNhA@TzP(DY0WC2lCSFRO+epa6w1c=kxa(Lq8 z2tX&drg7lg-EUpFRsb)de*^FgDbfz2RzQH{-2;fAJzDDpWZ40DCd^cE0dYJ#kn0}! zg0mQ6gRV;MD#YvX4tRnS2A}ilQ}u`(f05@0wjnLj9ib#C-3L)U-_P~^?PNPw%i08@r<22s>95t1uFG83GiX_uYc zl0&3I{J1pt;y_nVe>(?`&d!^h;@kI;nUg-HZ?QpF??De7ee1PJm736f5DBR_^RT$6-R6w5v_451PpMDJWv$@BD27GsB0mHkl|0J$Gn8@Av56$OQ!)A5%`v3p{07*qoM6N<$ Ef}7Tv1^@s6 diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault@3x.png b/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault@3x.png index ff02b061ce77c998db5bc20bc0dab41f436f6cff..1b353ff6a024013b5e938ddc75b96402b4c159c4 100644 GIT binary patch delta 1299 zcmV+u1?>9l3APF$iBL{Q4GJ0x0000DNk~Le0000>0000>2nGNE060#1>X9Kef6GZk zK~#7F?VMdsBS#R&tL7uxhh51>upgF96a}!dof8xgAc6 z5Q@3&>e z(}$d*5m#+2W)q9Wv!3erkK$O7TLPLT>q%$H#4(GP2RRptsSKAfiAW?CFE}CFbyN}> z$LD{%g#;M8VL{w)l)!!Ff7j}@S^x$ZTb2sLUkWA^QwjgRF}5xv%j$G!W9;@j1r&=h zwk{*fBB9m_DilN3_3t_uU?i4C*nk3q===-@h~03QO}K`F<3>@97G6Eccf^(z-h^vV z0zwDH{Sb?V2(O?VG(d<+%xXXhptvO-bdgxRWSCZ-Dg`Q?&WEbxe+we9LXVEFN<<%A z(ZGwuLXBmyssXMGqQMu5MajJ?%rL?LuS#WEN;vq|4=l=zNGu1j2PHz-IwcuI@=Ar@<(Qqcsk}_sFc#ZF&z)%A79T;FFmZ!YE zqRxt_q31mFjY5f$SoL}>pxMM|bf%30y`TAsw5Pt=DVlY$Re4J7fg#3X#nuHaC=v)Q zlfeG<>j^pOULHX)4l&v<7Z+9`0g1B?bXfT&@9xO%7q>GRe~HCnv!>(x*N|g0>Shx6 z`+}8x7T?#TwO12z2%Q_WY~6{smi${;dcMOAgB-!_Sy_6q1(vX0VR3x^aSIWxU)Yyo z^Gf#@QY%Msl-{LSR)x&LfMaMHb&09u;JKlWifEd~tTPmCHwx=%6>z3@U=ey=by(V# z6~W+nPo6+pf7p*%x0R|>U8uIHWBa!25AD_N#CPI1^K{qLcF|^Hv2tQbW3g3(XkIkH zbx%N6qmAjeet*)=KL zoY=AkSGvRg0X?lexBn2%T+e?!sasAYRzZuJCW76Pf8yBcB!WHahQIxOxm;GE815JM zj}79n&yKY$7Rrh6sHpKtNT6I;{ptIK2QP~}C{~$WZwzD0ga6kJXH+PrGR`IMS=Ml| zS=3rWJMb*|l!E@q`QkmxQlG+H?eC@nEsuD2GWzd3V)3g{Xb+XB=(;TMHg2>4{nic3 zQb%Z+X*&V`*0MOT!JJX(FtPzcm+Z9Q+nuc;`fZ^FJgLAJl4yY_b3V002ov JPDHLkV1oQuYg+&S delta 1225 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 P00000NkvXXu0mjfo2rajFF^VVOK*Vk z6{a>I&&)~q3P+&mhK6t^ols#ch@plH# zo+jhuRi8aIJWuejPf)-A@GrBwYfA-hPw2CIFSv9p8f-qgpWR+zxpS%u=bCK~PMY3{ z$dC0b=oYgTfAr!VjDWIcL5fEQI^BOEP)>)98GG3PQ=G6?huP9EV*~pa~{w1pG;SeP5iJnQSc)$ Plo&i+{an^LB{Ts5_!W=@ diff --git a/Projects/App/Resources/Assets.xcassets/Tabbar/diary.imageset/diary@2x.png b/Projects/App/Resources/Assets.xcassets/Tabbar/diary.imageset/diary@2x.png deleted file mode 100644 index 229ef06e323e73b566e5fb423ad3f0bac0102e82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmV-n0-pVeP)k1(fOpPGFtHZcs;H1SgQbpBfGnNCL?Ve0Ln4M(+C#0t$*E zQf#+tUVZYC@^Yo3II6?pn;cLSiDI`qvGA(pqfG7hUt~#?fF5~`b%c0;g}lZpA|XLq z<(0Zpk}P?hKMl`#j_gd^6btB-SL#D$S-Bn(A#w;AU$0m!2&wYHaDKI?|t&s_bnrWOyZtXe zVjoTNz$rjTUX#=Rf8{z2d0-tNEZ@e9Jg^Fwsyr|TOj#cE225QZbOy{p9<&C`MIO8a z%t;O9kc00000NkvXXu0mjf&+-0| diff --git a/Projects/App/Resources/Assets.xcassets/Tabbar/diary.imageset/diary@3x.png b/Projects/App/Resources/Assets.xcassets/Tabbar/diary.imageset/diary@3x.png deleted file mode 100644 index c48496aaa1c8b448d9ba5c855d9fcfc1c7f4580e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 817 zcmV-11J3-3P)(*1K~#7F?c9q| z+dveB;k&AU5?n&)Ag%>boW8w1P}AIy)?duGS7v!O%cJ?(Nww`CN{}L<>ErRiz#Jx4pAFL9Ae|{Pkw6PL zwj@a6fE;mb(MY0zJaKGMNDT>T5l5-1H{~6@ygcc)-BCayfE-3nXMnEFa-LWpjKqG5 zx!|b#`?h~A0JMHG%WmSe-qVdWkPptVO=2XrKp{B8wh56~0>$7A`$&Yu4k!iAu&)G2 ztbkJD4Eu~kVgr-|XV`ZH5(^-QlfYl9>-H4$I|7lapC~$AK4|?_-`yQ4qW%w8YVUh8 zS#<;jTwAqfnspSB??|c!6nNo@iXv43iomgzLb@&vlmN$80;wwsln}?38>!qB%Yb7` zh4kAjSMS#qIm~CoL2c|QfH}P1jNzc{BPcV@+k!^YKiqb7r8z;(I)Vz~An%bhi-VLp zWdkaVV{=AY#3A}=&VwGaOtDHhZ=0QN4mc;X{Q+Mj2V#I@8%6TLK}mra;n*&ad~r}R zAci=$9w`I|B>`fL^O`wa#&hJ&1e)`)|gfYyqG7J=4`gJyx&j)NwFHk{W+fi|4~eE`~UF1rBQa6UEwZ8+og zH|-71_YG$})jv|C)C0*a8xCsv=dI+H6$dp7w<0;09S4bdnB`qXaF9fxVmL?|P*EHt z38**@k^)o(2T1^`hJ&~RRmDM^fvV#mu0Sks5Jw<3IEWh%D;&fLh#d~%0>lyraR6eA zgK7h@#z8fK*yEsDKq7DufX-AlF*pc7Cn}dH9E6+pKW3f;PMJ6y)byVgH~+YFibUd| v{!My#rX15vsb@+NJ`oE4z}+<8q~f5zOs!K5sc~s300000NkvXXu0mjf7Zh2( diff --git a/Projects/App/Resources/Assets.xcassets/Tabbar/mypage.imageset/mypage.png b/Projects/App/Resources/Assets.xcassets/Tabbar/mypage.imageset/mypage.png deleted file mode 100644 index eb4b44b516cd31d81a8f4dd5ced8f968d0cb8be5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmV;r0Y(0aP)JPT)fJfZf~n}9b!bIU=l&bFV9Y~vFS-$= z%sDZ!sS^}m*Nz zqGgha&eb)cq1YO^bXL-Jlx8tPJXW?%L|kvQmW(roU;1&N!CxfgPfJyOVGiU0 kGIh@9K^`C@8-p3KKhwa3E4zMHS^xk507*qoM6N<$f_QMdApigX diff --git a/Projects/App/Resources/Assets.xcassets/Tabbar/mypage.imageset/mypage@2x.png b/Projects/App/Resources/Assets.xcassets/Tabbar/mypage.imageset/mypage@2x.png deleted file mode 100644 index d47704a95fc092a4ae71ffcb10c3e4aedba341a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 800 zcmV+*1K<3KP))=@Su(%( z{QRCRTld$UzD@|4pyhH3`~4Xx^&W^$`BB5y)V<#E)dAuYX#E`~lY3k)caQ;uBVofE zHu#*cIs7qLP&01%TCtE0jv!fpZE>QOuM0Q^#9JpM$sk4V1TfB4HHi9q(a zMFQyRYVL-~G7!z!<17T%C|I{w zfOR3!P-DJ?shv1I_&u=Sdp|Bhzy`kn#G0-DY(wLF9qI!O)CTdy_gX#^kCc#rEW4(o zAo}ThtpXo+P#NMFVR+WAE)nsGt;J%?x1n}vcX)k0kNF^aG3P26!V}TP8WoAmPkFBp};afRz5sKs1yF1=!4l)*C3l zy);SQ&n)86SID1MSuEN@8Rb;kw%rs>==$K0!qw{X;HyIq+4u*On}jie zc+Vm}zI^;&2)UM@!Pww5qqXe?{|K=0HkPnC1lz_UzWn{@cL=fZ=X|TTd5OWy+-|{V z1r#{E%gxT6qjh}<4RdTdBxYi@{Q>Ry7vcuqA{}3bYLogR1i}E@SS4~1ppNQ6_5@v6~rB|>3|gARYqDlV6#3($69jy zdv95I$hP?J%;=f{VGXFF=)!n>2tw@Aj}nyHqkGq06G}iV={};iFR-&S!lEdlWe{4z ziqa=h4oHw5xG|#F-a)4`Y)h=@0vTbd>X^PgfoTiz1Mz{bL2RL-2^3A3&lGrdHGoJ& z5s1XuBXOQU$Cq{}$#wT*Sd)OjsEdnZ66YD(69>#^Rn@CHKRc~Mx4f6fmm;zBtk?K zsMGlg`4dkdIzG`sx`bRoWG7*{4D*kWD@wfp6TUz~$;X8+LEg3F}WCIgsFqGgfuAWAq_$Z<(o*p zUW-|dcbSxvK&Du(7AAQ4Q4|nwZFM4hR?QYDL3dgeCu`!R;H{@vE);dq9kZTnWecJW zvimGb4_1L(jyBL%T0bro$QI{ntI0q8ZkmyGxrK3Qp^JSeciJ>@G`jHkd0E!$Tnn<6 z^9%A$`(1^FmegoLAKXg9<}B6K)9nkLEjE zjH?OzKYk=^nMKFs6YXMs*fNh}K`Yz*3smCK)fO~_EzKZ4?9i7Zn|+>dHFId{WDJvY Z@E6)Xluz0W-<<#e002ovPDHLkV1oSj@K*o; diff --git a/Projects/App/Sources/Presentation/Tab/MainTab.swift b/Projects/App/Sources/Presentation/Tab/MainTab.swift index 685e78be..f5b05f9a 100644 --- a/Projects/App/Sources/Presentation/Tab/MainTab.swift +++ b/Projects/App/Sources/Presentation/Tab/MainTab.swift @@ -8,17 +8,13 @@ import SwiftUI enum MainTab: Int, CaseIterable, Identifiable { - case home, diary, alarm, mypage + case home, mypage @ViewBuilder var view: some View { switch self { case .home: CalendarMainView() - case .diary: - EmptyView() - case .alarm: - AlarmMainView() case .mypage: MypageView() } @@ -28,10 +24,6 @@ enum MainTab: Int, CaseIterable, Identifiable { switch self { case .home: return "홈" - case .diary: - return "감정일기" - case .alarm: - return "알림" case .mypage: return "마이페이지" } @@ -41,10 +33,6 @@ enum MainTab: Int, CaseIterable, Identifiable { switch self { case .home: return "Home" - case .diary: - return "diary" - case .alarm: - return "alarm" case .mypage: return "mypage" } diff --git a/Projects/App/Sources/Presentation/Tab/TabBarView.swift b/Projects/App/Sources/Presentation/Tab/TabBarView.swift index c20c1ee2..fc5b11bf 100644 --- a/Projects/App/Sources/Presentation/Tab/TabBarView.swift +++ b/Projects/App/Sources/Presentation/Tab/TabBarView.swift @@ -28,6 +28,7 @@ struct TabBarView: View { .resizable() .frame(width: 25, height: 25) .tint(tabBarViewModel.selected == item ? Color.sub : Color.symGray3) + Text(item.title) .font(PretendardFont.smallMedium) .tint(tabBarViewModel.selected == item ? Color.sub : Color.symGray3) From b5ef8287cab678282a96a44544972c94b4727067 Mon Sep 17 00:00:00 2001 From: Park Seo Yeon Date: Fri, 1 Mar 2024 22:53:50 +0900 Subject: [PATCH 2/7] =?UTF-8?q?Fix,=20Design:=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EB=B0=8F=20=EC=84=A4=EC=A0=95=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EB=A1=9C=EA=B3=A0=20=EC=82=AC=EC=A7=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SignLogo/AppleLogo.imageset/AppleLogo.png | Bin 1116 -> 0 bytes .../SignLogo/AppleLogo.imageset/AppleLogo.svg | 3 + .../AppleLogo.imageset/AppleLogo@2x.png | Bin 3187 -> 0 bytes .../AppleLogo.imageset/AppleLogo@3x.png | Bin 6186 -> 0 bytes .../SignLogo/AppleLogo.imageset/Contents.json | 15 +---- .../SignLogo/KaKaoLogo.imageset/Contents.json | 15 +---- .../SignLogo/KaKaoLogo.imageset/KaKaoLogo.png | Bin 731 -> 0 bytes .../SignLogo/KaKaoLogo.imageset/KaKaoLogo.svg | 9 +++ .../KaKaoLogo.imageset/KaKaoLogo@2x.png | Bin 1443 -> 0 bytes .../KaKaoLogo.imageset/KaKaoLogo@3x.png | Bin 2354 -> 0 bytes .../DesignSystem/Common/SimiView.swift | 60 ++++++++++++++++++ .../App/Sources/DesignSystem/Font/Font.swift | 4 ++ .../Login/View/LoginIntroView.swift | 13 ++-- .../Login/View/LoginModifier+LinkView.swift | 2 +- .../Presentation/MyPage/MyAccountInfo.swift | 55 ++++------------ .../Presentation/MyPage/UserProvider.swift | 41 ++++++++++++ 16 files changed, 144 insertions(+), 73 deletions(-) delete mode 100644 Projects/App/Resources/Assets.xcassets/SignLogo/AppleLogo.imageset/AppleLogo.png create mode 100644 Projects/App/Resources/Assets.xcassets/SignLogo/AppleLogo.imageset/AppleLogo.svg delete mode 100644 Projects/App/Resources/Assets.xcassets/SignLogo/AppleLogo.imageset/AppleLogo@2x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/SignLogo/AppleLogo.imageset/AppleLogo@3x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/KaKaoLogo.png create mode 100644 Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/KaKaoLogo.svg delete mode 100644 Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/KaKaoLogo@2x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/KaKaoLogo@3x.png create mode 100644 Projects/App/Sources/DesignSystem/Common/SimiView.swift create mode 100644 Projects/App/Sources/Presentation/MyPage/UserProvider.swift diff --git a/Projects/App/Resources/Assets.xcassets/SignLogo/AppleLogo.imageset/AppleLogo.png b/Projects/App/Resources/Assets.xcassets/SignLogo/AppleLogo.imageset/AppleLogo.png deleted file mode 100644 index 9c71c926cc90e22ae93f5557ca84b6a9be99c1a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1116 zcmV-i1f%5^P>$_BX!vY|^h z1w=r(+8A4)i-oWy(8xka#*$2rr>D2+dVW=1)zi}+OU7ovezWvaRquP>+o~9Q5oLFG zx4N>jQe=aaMx!y+wC%-~(>iK4o9~@AH^-hq4i676Rw|W$xy4J!kVT#7hz&xvx3}wU z*S+U?9(ulqtyb&Sz}$FzeEf&6fqc(L+rB@~1|f(Dp6j+HnCrSevHF?~N){Fta*pGK ztp^WQPfkuglHgCW?zBm;x3~A^%hl>!4xk=(I*}0Je`{;&f6vU!*m8Vvaj`f%JNxd? z(9rvw^Ev=L3U{8y_G4J*~foS+z1YPpk^Y4RWQr0@r#_ zxlDg!0OdWDHt4w^S>32st3R`h^e`)zO0UVuv2~~wVwaVQ2_~@dl{2o^Ad^0jpp-;E zus+hmjMBFPn9dqhtN^?Dh>9`2(`;4j6cEA6Y@}f-^6h?LJ4`~Er_0ti|$bO|Av+(|%FwXN=`UCG$LYTNd=EYmc4z+Bh< zpDteC9tPcVK&@DY4O8Qo%u%kqOgr~i8yg$LeZj6?UAswXdrRwzqo)cRI*hEHy5?r?H`RRxg185EIjrbGp>VF)4)tt>MPABeZQp0Kk6_# zyxgH6zXG~DAQ-K2ds2-T6YSo_>MtIML}%@#Qu!@%t$2i)G015-my_OVG%9jj6>hwx zWQt#7m~E62#dDjjFAdP+z*wzT`-`^w-&lf!Ne@)dCU#(AWEz2qqmV7@r?FaXHLbTV zn3R!`kxv58Ur)M5s*R=H3P~+sQYK;0S*Jtm=UJV=PLcin{W_fszoGbDqE={$2piPV zmuUO=hZH;ce7-6~^g+H*xMXoYN!T8_Z?#-5&(nC5J%zx*!NGYd(hFN#TYb-kJ3Bii iIa diff --git a/Projects/App/Resources/Assets.xcassets/SignLogo/AppleLogo.imageset/AppleLogo.svg b/Projects/App/Resources/Assets.xcassets/SignLogo/AppleLogo.imageset/AppleLogo.svg new file mode 100644 index 00000000..28446792 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/SignLogo/AppleLogo.imageset/AppleLogo.svg @@ -0,0 +1,3 @@ + + + diff --git a/Projects/App/Resources/Assets.xcassets/SignLogo/AppleLogo.imageset/AppleLogo@2x.png b/Projects/App/Resources/Assets.xcassets/SignLogo/AppleLogo.imageset/AppleLogo@2x.png deleted file mode 100644 index caa7737698ec1178225d694e98691c9d130ef6a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3187 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 IM6N<$f-)-HrvLx| diff --git a/Projects/App/Resources/Assets.xcassets/SignLogo/AppleLogo.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/SignLogo/AppleLogo.imageset/Contents.json index d0499889..86a1c1bb 100644 --- a/Projects/App/Resources/Assets.xcassets/SignLogo/AppleLogo.imageset/Contents.json +++ b/Projects/App/Resources/Assets.xcassets/SignLogo/AppleLogo.imageset/Contents.json @@ -1,19 +1,8 @@ { "images" : [ { - "filename" : "AppleLogo.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "AppleLogo@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "AppleLogo@3x.png", - "idiom" : "universal", - "scale" : "3x" + "filename" : "AppleLogo.svg", + "idiom" : "universal" } ], "info" : { diff --git a/Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/Contents.json index 89978d04..f6842f51 100644 --- a/Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/Contents.json +++ b/Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/Contents.json @@ -1,19 +1,8 @@ { "images" : [ { - "filename" : "KaKaoLogo.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "KaKaoLogo@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "KaKaoLogo@3x.png", - "idiom" : "universal", - "scale" : "3x" + "filename" : "KaKaoLogo.svg", + "idiom" : "universal" } ], "info" : { diff --git a/Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/KaKaoLogo.png b/Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/KaKaoLogo.png deleted file mode 100644 index 0406b2a0ecb8435f80d34993aca1c556e28a317d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 731 zcmV<10wn#3P)X1^@s6%>pGE00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yPcJ1_MKD_R zP%F_Wf@o@`hmaDe6s<|BRjTpb0NVhmX3+l5 z&LcXV&Mt%)!)mtx=s>%b0;GV_??i|&k))^E=H^$=1A+H7i%vS7O%G;f&Y<%vg7bc; z63+Q&D#XOw)zzv056d>0r+@Tq=9txLOQ+KwAY>=h z3n9VX2E*CM^Yh-aq9+FitjT2Z1Dfs7AQ)pmceJ*S%=&yE3vIMu;NHLGZfXumXE*#$YRSAbHxveakmE{AJYy<<#>6Wf8huiD@ z1$9z3yob!@gN*Yz+@BvPc;U^;$`fc1v|NXVvAvi?54ob)8Y#GK{07F};vN&ENJszx N002ovPDHLkV1hX)PtX7W diff --git a/Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/KaKaoLogo.svg b/Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/KaKaoLogo.svg new file mode 100644 index 00000000..658982ee --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/KaKaoLogo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/KaKaoLogo@2x.png b/Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/KaKaoLogo@2x.png deleted file mode 100644 index dd2742dd6f8225fa7584d21bc5e3185316c0d4bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1443 zcmV;U1zh@xP)400009a7bBm000&x z000&x0ZCFM@Bjb+0drDELIAGL9O(c600d`2O+f$vv5yP zTUQ*%&wZQ3rfQX_8)-CAL8q=8g%uz5v57@&=^q`Vo7-O-d)dOevcC$#{uqog$Hq41 zpl;B$ly;PLx(* zoZtD~^F!zvTMG=unTDDg-RS73iFGUkgHjGE` zAjU`>Z(}r?_U!WVtML&1L_$lA#$;Nf`Oxihy$cuGi8cW6yq#p2A4~?rsn#1e=8#Ne z39TzEOm=!a?|WRXW8khP{9wVAXkfE#UH9Na1ikU)3@}d=K~h zPPjE2)}!TFSw|sDX+SDLVA(e-b93Jg*B(;n%bA%*$WD$U6(Q~fUbp+pLuF-Yq1rQpRJ zB-y#TdLY=iPU!0L^6N#M{=Wl+ zVidKEwgBR}(~`rn;%^HOy12A753fC{7YjmNnFhl>e_Mdif&2GoA?i*cl>^5u{q6nz z3;wpisf%F(!!YNN`mqKZ)@4SFR(l!*t2QX{0BHC%*dB7z++#F$z!P{CsSwEQ{=7am zwm;Y&@-+>o=@U>Y@FKM#2%L8N_Rm8#5uuC|4<1Y!_4*w6T8vZ#oap~_WpME4P;Ft4 zQc@BUj*%oeh*SbBO}jZi|FdxI5fj^krKP#EdBavYaM-nL#QK-n7&d#pqO{OZST`nS}fnm#O21E5Fo9$ZE zu1F$P7K<555~nzhdj%h*%aL>mMIzk8sugVO1~u?`IlpeIDO z(5jrAe0ba$(fWxViB>ok*E~$id7k6`gCwQH$MgSojg8%mb$UiZwotFnCnfrxg}`xQ z)$QKK5JW0W0WC?>2^`OpAi@bnES90^sa&&p;1{da?LRQyhjg-qf)@^jyA|-xEOhvw zYkd3ylEB{+6KJE6yuJ9-)YL@7*=c#GHaI0e3z2cRRFRv7toc!9GVO&V+Ujou4^PAA z)0-0$XX3fG;)N`aQZ!w;_Wg14@Vh1>qp*8&^0X2~ipW}{uy;NZ3ZiBpxE!(Gy?b7% x0@sk`QHYvJunnBg$jaIUS;{%3i+sjbUDDVIP002ovPDHLkV1g#gtHS^Q diff --git a/Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/KaKaoLogo@3x.png b/Projects/App/Resources/Assets.xcassets/SignLogo/KaKaoLogo.imageset/KaKaoLogo@3x.png deleted file mode 100644 index 4083afa31727586f31d2198b5108ac02f63bfca0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2354 zcmV-23C;G2P)75q00009a7bBm001F4 z001F40Y#QEU;qFB0drDELIAGL9O(c600d`2O+f$vv5yPd1oI-bMcXi`Rw<-bCexUt?X+Vwbvo17 z#yHcrFbSGEoupxErxo!%fXR4&RHjI@z!AAa5K!bzIreUMZ@0fSlT2Rr?)JDnxR?FR z+;H6U?A_k?zWaNA&)XuTq7sYXC`x&)s!IF6o}T38>FGvuM#h&?1tIM|in?zuJQinX zC(kh$2olH1vxg4xwG9nCib6Cf3V7_Hhq7^J;Q36AMw0}O zOrOt321;JJ#jb$Ni@UEn7G@w zZ%=k!ytvB8vQKghvk7!Gq8S2yzzGoje2U3bm%U=eg}S=ByJ!Z8xVV)iB@4Q*U3;2k zmhK6Uh z*2Hoc2!_}pF>5K4`P;`Q6c@ZWJOR3nQjk-?CT^LwwyD$GUz7z0vsEnX6ZKhT5IR zLaAH@p`gHG`4tHJgG3Ql#C`W}bwN(f0Td!3iThzoOC`@Rd*V41NFjb*Xs~OFb8{=j zD_8Duvc-L>xcD1hntmBRi9iX6*l0r=b8w^0wo2|Xvc#<_FE_ayjh-a)6TvD5b?yeMb*0zs{xMSd1Q?vJ zC|SDH8mwMWaVN*e_a$na^@|`R)030W2dfrP+((x$xB3`nJyQ7skUe}Sn0o_?3$5eN z!L?C4i8-4*I!g#&kd#a?w;IG`TxD#Vz1y~f$AVd=| z$WHZibv^92++P9YbVW!dDA2js;IB+l+`Z-HBm``=A(H_w2t}e^Qe~3;`-9{?1 z@%Yh8I$IzJaaABv367`}WDMg{Ws>4D7MMNX0Lp z50jLU;r9v;*vDOKvD7jQ^CP4p38B>3l5E^3s6L6%S0$%K8~R^&pi`<016=mx8U^4LY;i z+1EETKQ+|?F3v|P_rSHWvKFDmDR+|7($=49Yx|F!%CZ-HIERO?=bFvK9K(oH$%#1L>(%OX&z!q@ zwL$IyAuWEc+_UG1PN(~gxK{ur5aJdpz0vsFrq0g8p&S>I12=Ep?1Miqee;0_i~`T^ zhSoBqA14+OK62743s$e*AL^cnX{`e*-Lj>5tgp}LAA+smt{9zQiQ!cv}RPvL+mn>hSPgyVnFmOw!*H^9Ex^+u~-F^cpfZ{GI$;&f)X!;q*hkpVl zrcjgvZk-}X^7Ta)%f2^GpB_aD60u9Te9f9AL;d~#g%P!AUE}K^N%E*sr+el22Oo5z z2oSMWexSEk1Fj&WDFll#70#y@W)R-~YF^&K!zWJ;qX-f)aVe5q=3y8V4T$j+!|{JX zV^yD#pZ|V+eLZdO>qC(yV&Z~DW^GfTkLOt!7HktZ?kpmRmaWCbP1PUI&~|sDnIaro&&6sqU8$+5t!LWXL%u(P(nQ3$ZkAmFLS>>5;w{9(aY%)BZGQII zcdDza@42k7u#j@KwNV)c1D=$ULb5k+5{9%i0ZmPLTvJor(wrOy(m?tPGXgVk$;%-k z&Rw@?(Q{s}SJwRr?%lLUtNrJ~dGmH0X>J}zaYRI%OVjkX;W7AX)x@V#cEyL(%t=5JPIqKxO3Z%9~bW|Y6wte5C+_T zajvWDukkAC$0#l?q(McJfgIclx#m$ADcX15;cz9wh89J`LQ_+d_+zd9{Ob?~1}UBH zyG7f!?PzwnTqr?M)IP=e`T6dVk&EEUdpF1wS6xG|=uLv6UVOKsqZcI@iiQQx_;~&& z!Xng984NF+@92ojOh69G##{^=2D{#ZUe$RB123NK=;&5A3o3|h{`~vJo)uD2QHfFh Y4^hf(OI`WDga7~l07*qoM6N<$f;p3Jw*UYD diff --git a/Projects/App/Sources/DesignSystem/Common/SimiView.swift b/Projects/App/Sources/DesignSystem/Common/SimiView.swift new file mode 100644 index 00000000..c820d47d --- /dev/null +++ b/Projects/App/Sources/DesignSystem/Common/SimiView.swift @@ -0,0 +1,60 @@ +// +// SimiView.swift +// SYM +// +// Created by 박서연 on 2024/03/01. +// Copyright © 2024 Mogong. All rights reserved. +// + +import SwiftUI + +enum SimiType { + case nothingPast + case nothingCurrent + case nothingYesterday + case exists +} + +struct SimiView: View { + private var simiType: SimiType = .exists + + var body: some View { + HStack(spacing: 0) { + VStack(alignment: .leading, spacing: 12) { + Text("오늘의 기록") + .font(.bold(18)) + .frame(maxWidth: .infinity, alignment: .leading) + Text("오늘의 감정이 기록되지 않았어요 \n시미가 당신을 기다리고 있어요!") + .frame(maxWidth: .infinity, alignment: .leading) + .lineSpacing(2) + .font(.medium(14)) + + Button { + print("감정기록하기 버튼 탭") + } label: { + Text("감정 기록하기") + .foregroundColor(.white) + .font(.bold(16)) + } + .padding(.vertical, 14) + .frame(maxWidth: .symWidth * 0.45) + .background(Color.main) + .clipShape(RoundedRectangle(cornerRadius: 10)) + .padding(.top, 10) + } + + Image("SimiSad") + .resizable() + .scaledToFill() + .frame(width: 130, height: 130) + .padding(.top, 30) + } + .padding(15) + .background(Color.bright) + .clipShape(RoundedRectangle(cornerRadius: 20)) + } +} + +#Preview { + SimiView() +} diff --git a/Projects/App/Sources/DesignSystem/Font/Font.swift b/Projects/App/Sources/DesignSystem/Font/Font.swift index 342868bd..148ee0d3 100644 --- a/Projects/App/Sources/DesignSystem/Font/Font.swift +++ b/Projects/App/Sources/DesignSystem/Font/Font.swift @@ -12,6 +12,10 @@ extension Font { static func bold(_ size: CGFloat) -> Font { return SYMFontFamily.Pretendard.bold.swiftUIFont(size: size) } + + static func medium(_ size: CGFloat) -> Font { + return SYMFontFamily.Pretendard.medium.swiftUIFont(size: size) + } } /// 디폴트 폰트 (PretendardFont) diff --git a/Projects/App/Sources/Presentation/Login/View/LoginIntroView.swift b/Projects/App/Sources/Presentation/Login/View/LoginIntroView.swift index aac30fc2..6f94f3ef 100644 --- a/Projects/App/Sources/Presentation/Login/View/LoginIntroView.swift +++ b/Projects/App/Sources/Presentation/Login/View/LoginIntroView.swift @@ -49,9 +49,11 @@ struct LoginIntroView: View { Button { authViewModel.send(action: .kakaoLogin) } label: { - HStack(spacing: 35) { + HStack(spacing: 6) { Image("KaKaoLogo") - .padding(.leading, 47) + .resizable() + .frame(width: 30, height: 30) + .padding(.leading, .symWidth * 0.17) Text("카카오톡으로 로그인") .font(PretendardFont.h4Medium) .foregroundColor(.symBlack) @@ -59,9 +61,11 @@ struct LoginIntroView: View { .signupTextBackground(Color.kakao) } - HStack(spacing: 35) { + HStack(spacing: 6) { Image("AppleLogo") - .padding(.leading, 47) + .resizable() + .frame(width: 30, height: 30) + .padding(.leading, .symWidth * 0.17) Text("Apple로 로그인") .font(PretendardFont.h4Medium) .foregroundColor(.white) @@ -79,6 +83,7 @@ struct LoginIntroView: View { .signupTextBackground(.black) .blendMode(.overlay) } + } Spacer().frame(height: 20) } diff --git a/Projects/App/Sources/Presentation/Login/View/LoginModifier+LinkView.swift b/Projects/App/Sources/Presentation/Login/View/LoginModifier+LinkView.swift index 693994ad..6e141c59 100644 --- a/Projects/App/Sources/Presentation/Login/View/LoginModifier+LinkView.swift +++ b/Projects/App/Sources/Presentation/Login/View/LoginModifier+LinkView.swift @@ -24,8 +24,8 @@ struct SignupBackground: ViewModifier { func body(content: Content) -> some View { content + .padding(14) .frame(maxWidth: .infinity, alignment: .leading) - .padding(.vertical, 19) .background(color) .clipShape(RoundedRectangle(cornerRadius: 15)) } diff --git a/Projects/App/Sources/Presentation/MyPage/MyAccountInfo.swift b/Projects/App/Sources/Presentation/MyPage/MyAccountInfo.swift index 2b2fbcd4..c9de95bb 100644 --- a/Projects/App/Sources/Presentation/MyPage/MyAccountInfo.swift +++ b/Projects/App/Sources/Presentation/MyPage/MyAccountInfo.swift @@ -9,28 +9,29 @@ import SwiftUI struct MyAccountInfo: View { - @State private var nickname = UserDefaults.standard.string(forKey: "nickName") ?? "" // 기존 닉네임이 뜨도록 - private let loginProvider = UserDefaults.standard.string(forKey: "loginProvider") - @State private var loginEmail = UserDefaults.standard.string(forKey: "userEmail") ?? "" + @State private var nickname = UserDefaults.standard.string(forKey: "nickName") ?? "" + @State private var loginEmail = UserDefaults.standard.string(forKey: "userEmail") ?? "mogong2024@gmail.com" @State var isPressed: Bool = false @State var nicknameRules = NickNameRules.allow @EnvironmentObject var authViewModel: AuthenticationViewModel @Environment(\.dismiss) private var dismiss + private let loginProvider = UserDefaults.standard.string(forKey: "loginProvider") + var body: some View { NavigationStack { VStack { + Spacer().frame(height: 30) + Image("SimiSmile").resizable() .aspectRatio(contentMode: .fit) - .frame(width: .symWidth * 0.4) - .padding(.top, 24) + .padding(.horizontal, 95) VStack { VStack(alignment: .leading) { - //TODO: - 닉네임 글자수에 따른 조건 처리 Text("닉네임") - .padding(.leading, 20) .font(PretendardFont.h5Bold) + VStack(alignment: .leading) { TextField("닉네임을 입력해주세요", text: $nickname) .customTF(type: .normal) @@ -44,6 +45,7 @@ struct MyAccountInfo: View { nicknameRules = .defult } } + switch nicknameRules { case .allow : Text(NickNameRules.allow.rawValue) @@ -61,17 +63,10 @@ struct MyAccountInfo: View { VStack(alignment: .leading) { Text("가입계정") - .padding(.leading, 20) .font(PretendardFont.h5Bold) - ZStack(alignment: .trailing) { - TextField("아이디", text: $loginEmail) - .customTF(type: .normal) - .disabled(true) - - userProviderLogo() - .padding(.trailing, 8) - } + UserProvider(userEmail: "\(loginEmail)", providerType: "Apple") + } Spacer() @@ -84,12 +79,13 @@ struct MyAccountInfo: View { // disabled 추가해서 비활성화 가능 .disabled(1 > nickname.count || nickname.count >= 6 || nicknameRules == .reject) } - .padding(.horizontal) } + .padding(.horizontal, 20) .font(PretendardFont.bodyBold) Spacer() } + .customNavigationBar(centerView: { Text("닉네임 수정") }, rightView: { @@ -107,31 +103,6 @@ struct MyAccountInfo: View { } return false } - - @ViewBuilder - func userProviderLogo() -> some View { - let imageSize: CGFloat = .symWidth * 0.05 - let circleSize: CGFloat = .symWidth * 0.08 - - ZStack { - Circle() - .foregroundStyle(loginProvider == "Kakao" ? Color.kakao : Color.black) - .frame(width: circleSize) - - if loginProvider == "Apple" { - Image("AppleLogo") - .resizable() - .aspectRatio(contentMode: .fit) - .frame(width: .symWidth * 0.05) - .offset(x: -0.8, y: -0.5) - } else { - Image("KaKaoLogo") - .resizable() - .aspectRatio(contentMode: .fit) - .frame(width: imageSize) - } - } - } } #Preview { diff --git a/Projects/App/Sources/Presentation/MyPage/UserProvider.swift b/Projects/App/Sources/Presentation/MyPage/UserProvider.swift new file mode 100644 index 00000000..c0235216 --- /dev/null +++ b/Projects/App/Sources/Presentation/MyPage/UserProvider.swift @@ -0,0 +1,41 @@ +// +// UserProvider.swift +// SYM +// +// Created by 박서연 on 2024/03/01. +// Copyright © 2024 Mogong. All rights reserved. +// + +import SwiftUI + +struct UserProvider: View { + let userEmail: String + let providerType: String + + var body: some View { + VStack { + Text(userEmail) + .foregroundColor(.symBlack) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.vertical, 20) + .padding(.leading, 20) + .background(Color.symGray1) + .font(.medium(14)) + .clipShape(RoundedRectangle(cornerRadius: 15)) + .overlay(alignment: .trailing) { + Image(providerType == "Apple" ? "AppleLogo" : "KaKaoLogo") + .resizable() + .frame(width: 20, height: 20) + .padding(7) + .background(providerType == "Apple" ? Color.black : Color.kakao) + .clipShape(Circle()) + .padding(.trailing, 15) + } + + }.foregroundColor(.symBlack) + } +} + +#Preview { + UserProvider(userEmail: "mogong2024@gmail.com", providerType: "KaKao") +} From 61403e4256b8c18a240f8622da155790835de66c Mon Sep 17 00:00:00 2001 From: Park Seo Yeon Date: Fri, 1 Mar 2024 23:37:41 +0900 Subject: [PATCH 3/7] =?UTF-8?q?Design:=20=ED=83=AD=EB=B0=94=20=EB=94=94?= =?UTF-8?q?=EC=9E=90=EC=9D=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TabBar/Home.imageset/Contents.json | 12 +++++++++ .../TabBar/Home.imageset/Home.svg | 3 +++ .../TabBar/HomeDefault.imageset/Contents.json | 15 ++---------- .../HomeDefault.imageset/HomeDefault.png | Bin 417 -> 0 bytes .../HomeDefault.imageset/HomeDefault.svg | 3 +++ .../HomeDefault.imageset/HomeDefault@2x.png | Bin 679 -> 0 bytes .../HomeDefault.imageset/HomeDefault@3x.png | Bin 942 -> 0 bytes .../TabBar/mypage.imageset/Contents.json | 15 ++---------- .../TabBar/mypage.imageset/mypage.png | Bin 475 -> 0 bytes .../TabBar/mypage.imageset/mypage.svg | 3 +++ .../TabBar/mypage.imageset/mypage@2x.png | Bin 825 -> 0 bytes .../TabBar/mypage.imageset/mypage@3x.png | Bin 1178 -> 0 bytes .../mypageDefault.imageset/Contents.json | 15 ++---------- .../mypageDefault.imageset/mypageDefault.png | Bin 532 -> 0 bytes .../mypageDefault.imageset/mypageDefault.svg | 3 +++ .../mypageDefault@2x.png | Bin 919 -> 0 bytes .../mypageDefault@3x.png | Bin 1334 -> 0 bytes .../Tabbar/Home.imageset/Contents.json | 23 ------------------ .../Tabbar/Home.imageset/Home.png | Bin 274 -> 0 bytes .../Tabbar/Home.imageset/Home@2x.png | Bin 339 -> 0 bytes .../Tabbar/Home.imageset/Home@3x.png | Bin 431 -> 0 bytes .../Sources/Presentation/Tab/MainTab.swift | 4 +-- .../Sources/Presentation/Tab/TabBarView.swift | 10 +++++--- 23 files changed, 38 insertions(+), 68 deletions(-) create mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/Home.imageset/Contents.json create mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/Home.imageset/Home.svg delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/HomeDefault.png create mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/HomeDefault.svg delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/HomeDefault@2x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/HomeDefault@3x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage.png create mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage.svg delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage@2x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage@3x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault.png create mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault.svg delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault@2x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault@3x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/Tabbar/Home.imageset/Contents.json delete mode 100644 Projects/App/Resources/Assets.xcassets/Tabbar/Home.imageset/Home.png delete mode 100644 Projects/App/Resources/Assets.xcassets/Tabbar/Home.imageset/Home@2x.png delete mode 100644 Projects/App/Resources/Assets.xcassets/Tabbar/Home.imageset/Home@3x.png diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/Home.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/TabBar/Home.imageset/Contents.json new file mode 100644 index 00000000..8b49d9c1 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/TabBar/Home.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "Home.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/Home.imageset/Home.svg b/Projects/App/Resources/Assets.xcassets/TabBar/Home.imageset/Home.svg new file mode 100644 index 00000000..f17a9226 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/TabBar/Home.imageset/Home.svg @@ -0,0 +1,3 @@ + + + diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/Contents.json index 4746dc41..b361a7ab 100644 --- a/Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/Contents.json +++ b/Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/Contents.json @@ -1,19 +1,8 @@ { "images" : [ { - "filename" : "HomeDefault.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "HomeDefault@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "HomeDefault@3x.png", - "idiom" : "universal", - "scale" : "3x" + "filename" : "HomeDefault.svg", + "idiom" : "universal" } ], "info" : { diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/HomeDefault.png b/Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/HomeDefault.png deleted file mode 100644 index aa14ba75b0c0e5ad6b23a4887329fd44f8a91450..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmV;S0bc%zP)pXd7!uvTotH>H0&ziNbbPq$o9NJ_D13OmBBJ4f5OLT&*tyne zwE@e_R|!!DgpX-J0{R*QzuWQ#iv6ENS>}}Q(*S@@!3eswwzn=iuFJIn(R0=;r^O8r zv|$wxVyj`Fb@tqRarv9MD2g!wG~pLWvz*y>Z$1R;GOr5x47htr+pNT~JWB`afeQMDLVIwWqZ00000 LNkvXXu0mjffA6J- diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/HomeDefault.svg b/Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/HomeDefault.svg new file mode 100644 index 00000000..c833155e --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/HomeDefault.svg @@ -0,0 +1,3 @@ + + + diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/HomeDefault@2x.png b/Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/HomeDefault@2x.png deleted file mode 100644 index 75289ae1f16734d97d2be805c8eb6777263f451b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 679 zcmV;Y0$BZtP)m(k$2GX=^UaV^Er2<*nH7``qwrcI>lH>oFwQHod z!Z^TFL>JyOwahNG_FO=(@nWLFbG2(u{NEK*fxHWfn?(uQwD9-bOE@b0@ur2>=*%LD zT8{eAz~)k8y(hMSx9I{X1Z-0X*rpJ$O(9^LE$|ZPP1dRb667&F&6~p}AZ2{??(M5Y z_s`wyK|}4qT3~=KuLlwg>{Tm956QUZEiPi)6auy>1Z-0X*rpJ$jTQ)yodD(p$WGwI z0_sIGrFus@gT}59P1A32&Fk#@m7XgmK8*j7>EuByWZn07MlghH-aodc0ru8YTebiI N002ovPDHLkV1n?YG7A6z diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/HomeDefault@3x.png b/Projects/App/Resources/Assets.xcassets/TabBar/HomeDefault.imageset/HomeDefault@3x.png deleted file mode 100644 index 0f43aefa21fd254aa9e6e49f04227a7960e3fa60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 942 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!oCO|{#S9FJ79h;%I?XTvD9BhG z6{|3v(CoHps4_G-ZOwi(-(4-t8y1D7)xz`I%I88imaM!l) z>%OT@w@v1kd_VtMl2P)q6wkFQZ+`@2#~zCJ{@Bc<*V=ZzXlsRBUd|ndHjWb$uJs?> zCDofHl~8-_v&D{uI%4IA*Y+x=w6yg6__p_V)jXNz%5z%`a}|}11WPWyoSLHY?9|Mp zTPHZOdcUo=J;Ct4DJuML?ZQ&t`@f=^><@2y^ybm4=j+ar0fMNyh5S%uWWp6{`8)mn#{ zQ2{mrvU3k8A8rYfo)om!(d_a@?MutvEoC)bzk7MqLB=NyCM&HsF7ULHn|pA}uj%3& zyd-T7OH42*RToMz@-uO>>;r0;cG8QR`xMYcYActtmTh!BwYX9-Q*!zr7TczhH(W8@ zB|p!8>;7EX`>d`>?WIJNe?VX2LZf%hO_!#*e`X3jHrMj#Cjo}s&jAbesGo4HG|^ws zBg`{J{=JQvq8-ye>s3!wWp_KzXJ4)TG;=`@>rbuzXKa&qaYwv9wnjw%lFoC!7fSz* zHFTuyu5NhvQe;N;1GiG0tqslzX-(F*txpDL>n%N_SAUXQr=x*YaDxJqn9G4CjtBup zZlwfA7ED2nhH#d7A}fjn)?PVm@bl>X$)7f?_+j%>w6`q0S^WdY(w^sjp&pKl@7{Ml znf`!teX!128D|03(hnZ*t}RGimL^p(Q4OoPD1r)S-#R{E=Dn78^_ykd$}RtxP000>X1^@s6#OZ}&00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yPAMwG@YQ`pmc&J0|am~KrnSk*(eKK8UTyJn}=9QX5jy3~D=oYP~deaivKF*iB1r zxYGSh_|oONaFQ7B%I*&CD&yl(dm)mhXRJP^sbbDq>%9Y+ z4e$pl0D3czc6ZsMb54K_DlryrHw~l6+vX%(MoK*?0EVCCLxlJWxuZpe_`g0@gV`2E Rd};sy002ovPDHLkV1h0E#qIzA diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage.svg b/Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage.svg new file mode 100644 index 00000000..6c92e818 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage.svg @@ -0,0 +1,3 @@ + + + diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage@2x.png b/Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage@2x.png deleted file mode 100644 index 2b3ea2e52c1a21fb98f66612a5b9ae228a29cbae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 825 zcmV-91IGM`P)maEB@*ju{{D%(6RS>A)LIsx&a0jFTORQvv&tR=&TQV~| zGnxQ#Y`yHRwAu|qhiECsP?m=v#6D=fM}Nv_jO({IGzvgmgHrb}8m&;u0y+Yr14zID zO?*z{z~^%$YC+>K30gr*S_vTm8BPAiTfm1|SV4Ik3k3_&Cnv^*Zs5gr+ES3q&G7Q_ z76K3ufId5$lZYjBC&G}Kd)j*k;BArmK@$2!;`w>*^8qg*wL2{#21@<$aWl3M8`w(y zgK9~Q!G`{6Ke-D4KSs>*8c&2_Y*$1kEQ{EEqOwMOg!skTXLuH=tdR!hvz->HW8(o* zBE%0@thg;=a;MZNHE~_y79zxNNDbn?>k_w+ws}++RGD-mjY23soHvNX*v4uDE{k-T zOSL6ydNU|#93tOBhK5T>0mEU_^rm}fpU)p@`AZ)3bUtaEE626gkQ&65>k`g}cn_&j z>dtiuCq-F6YDOdHNzp09W}OVv_69whb4uhbzf^OAR4|{-5@JtiDXc<;J8l({zab({ zX>1@Ch=q?Qu!YpIGKE-_<;Xo9 zEn;Iq>*XNoS_Z^hvmujpc4iklg(T>OaQW2LJ_s4Gh%GzCyb)3_t^Z-TBDSn+G0$%H zHrT5UQ3k_j?|nDxS%_U3v`*hb;6ihy%;I?at97kGG;>0!TXU5~QuPPBK&dP9f|0%e z&^NiU$OOJVM}l_CA@xAQptFn-GP4K$uZlU4DV09~5Y!f%qc+2^00000NkvXXu0mjf DR%m1I diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage@3x.png b/Projects/App/Resources/Assets.xcassets/TabBar/mypage.imageset/mypage@3x.png deleted file mode 100644 index 52e904b01e1b7edcfdbc372896bb937ca7489d06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1178 zcmV;L1ZDe)P)002t}1^@s6I8J)%00009a7bBm001F4 z001F40Y#QEU;qFB0drDELIAGL9O(c600d`2O+f$vv5yP$zDs5fW^AW~1VTS!PqPLlsf z$?tjmgtnoPU*DZ&>E0kTgiO;8y>wwd??M!P1t}Byv--Q_&D&;l1 z3D@9Oq-AOmtunDFni4vJJ34w$7l;!&PN=TsPyv;QrR$Oq4^VA1ts|$;9^lp0BRD1k z$H?KZPlJ7iW`t5Cbk}^Kag4w*PQ@w*cmwSqbuE~)G%N>}LfepXK!xAQ1#}{oJUcs7 zp$}~(iVj>%X0652cfF!UCD2}GB-j_*yQF>1QqzNW3#I6k_jg!WE z3Kkfrp(p9Lj7rDPl#Vknz&x^q_zr#vrBKhP#?fUIS>=QAPw-DHg>iJ5Mb>OxqsE<8`HmzPkYszB{oGT@1Yn7|Ih6)UXBVqSdb z8x|qM6HCe*LV|fdyB%3^%vyQii516F2#X5EV*ckIz`FSSRfo~&Paw1S8D3m`;{1Y1 z&6+?M`~W6=v4miMNGp+Y0!;W~#j*45ltwT(54Ko(by4*}`3&OJWOv$Zo+ZQ+_zdDL z7+@w=9FOS({hUUq&SwClQeq^Q-gA@E=;}0%l=t=TNJr6)chRMyDvHKnh_P7u>Ijj6 zPatMCZAbR~S)3&Tq2hdJ3S3U907XQkQ;IaD;P*g&Yo3dU4*c&&FX(_dlw$qZGcK1nNfJ zY^a7-;Y+M!4PFlv@j&|m>!dI`eW}X8S>=XB0?Kq$ABF3+LfqG^SEp(ZnnFdG5cjVA zhwi*Pg$Yv?_5|94Q`4pkJ4*ABv>7KJL>tq9>eafY;~0DaacuK2ZPo{0xWJSb#>Xu& zO9&7$2cq77G4r zWEBN{&ms%o2cgB%>9?;_t9kQ%5V*tB1PJOBUy07*qoM6N<$f<59P=Kufz diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/Contents.json index e06fd0c6..7c890818 100644 --- a/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/Contents.json +++ b/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/Contents.json @@ -1,19 +1,8 @@ { "images" : [ { - "filename" : "mypageDefault.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "mypageDefault@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "mypageDefault@3x.png", - "idiom" : "universal", - "scale" : "3x" + "filename" : "mypageDefault.svg", + "idiom" : "universal" } ], "info" : { diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault.png b/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault.png deleted file mode 100644 index 5999c6f3eae0ec86aad7b40173212276f514cc0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 532 zcmV+v0_**WP)P000>X1^@s6#OZ}&00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP2MSc^q*^|jIv=?(xZ0953o!^aTE_!C1KtKQ`{_BYKAb*hv!P`s|4?;@z7}M1A<8GqF znl4J-a@iAa2IdU_gZGgqNECR@>#H+Ec0W?` zS0q~mc%M}2eSu8g!1SmF7LvS9KI=eU`@g|M0TJ8PixXWc8NSat + + diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault@2x.png b/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault@2x.png deleted file mode 100644 index cc35f9c00a5eeb72118d3eded8e8cac96df3a83f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 919 zcmV;I18Dq-P)}P1NK$)Qu*A*=q|b(Vu4WI#Ztd)u2$2!RD5_;S}{H^NU*i4X{&Aouj{ZH}=; zWFjJ}!U{pe>f5c2n$dSm27B%#mWTs-Z{lX!LL{)=@%Yknfmj%3a=BgI1wcDSSj1V3 zB80rZB5I*!5r3b!gajbOL!Es_%Od_}mk7FZD=p%0dVNTcjN=qJSO!63loqic?J^{c zZCOXEF-jqb^bQh+_mu-zq*I;Pm|}E9+1q~ERnFR0Qjic4`)@X@V8{|h?C)hH_niA61&9QRKerNV5nB*9<9|bBZbszP z!io@#Ei&m!{j`sX;3Vq9NyDTfuU#^=i0U!d zekX#slXa+L9c7G&6{PMPw+KPzlq#oA^XEy6NGv#`vGhVpkP4`odGV~WTP!X-T`Uxm zKrcj#AXocGNLocqc}mQj5WnHyNvnt%2;Izc7W0Rj%>}zNvg@fAArS01qsO^!)=Y@E zGEm|z1bwjFzWH`C`y?-EXy$}v+M1hKM1mXE6a+e-{Eg!W0INoh{uaL;!J5Ol(XmB< tsp)})h4cHN#Xfc_i9W0?oRGOt`vnE1T_?za6kPxS002ovPDHLkV1hr}pFIEo diff --git a/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault@3x.png b/Projects/App/Resources/Assets.xcassets/TabBar/mypageDefault.imageset/mypageDefault@3x.png deleted file mode 100644 index 1b353ff6a024013b5e938ddc75b96402b4c159c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1334 zcmV-61002t}1^@s6I8J)%00009a7bBm001F4 z001F40Y#QEU;qFB0drDELIAGL9O(c600d`2O+f$vv5yPupgF96a}!di3W0Sdm)-nkDN=XUW7dip z95g_PNz7_M381(o9(0jdykwYGo+Nc}nepA;x0G)&(sn5(q7m!2b2?2|4Lr9zih< zG1@N|7giwwiL(xLSotRJ?#S*Jw=)@u#bUFjIe!68HOpm3$W8*QB*q6LJWh z8?uD8mrgmTvdR}!{+Ljf;;CWA;Kw8+3S+|v{ zQ(dUGsbl-L>ksYK?!rfD=vwM#3 zw@hnzjKqqoz?|J8UTjO^n&R2;w0pH3m&+CN1|Y{&`q?!p+??3523NYn{sBF$Jh%T4 z&RoxbJ*itxBvwI-nkItXlH%CvB!WHahQIxOxm;GE815JMj}79n&yKY$7Rrh6sHpKt zNT6I;{ptIK2QP~}C{~$WZwzD0ga6kJXH+PrGR`IMS=Ml|S=3rWJMb*|l!E@q`Qkmx zQlG+H?eC@nEsuD2GWzd3V)3g{Xb+XB=(;TMHg2>4{nic3Qb%Z+I|2XJvN*88oKfz) z4`Luz?0z#Iryl0^eGoXq%LEC7ihYNKn$LcZGk6~ao^-GNnvv~HQi6G*lK_W~Zueo% sqtF`b&~cT&H5Y6g{1#q#=R|((^b diff --git a/Projects/App/Resources/Assets.xcassets/Tabbar/Home.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Tabbar/Home.imageset/Contents.json deleted file mode 100644 index 04d54485..00000000 --- a/Projects/App/Resources/Assets.xcassets/Tabbar/Home.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "Home.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "Home@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "Home@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Tabbar/Home.imageset/Home.png b/Projects/App/Resources/Assets.xcassets/Tabbar/Home.imageset/Home.png deleted file mode 100644 index 283d2fa77692d4a0503f55167cf20cefec24d252..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;wmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIBP0X`wF?gc*o>*}DWp#j9GuLmIr8%)Yh<8}h7=Pn8I3uZ`o-==W?{wjm> z0uDAegn+`Oo-U3d5|@(`7#J5iuvsMB+k2bg+{Sx*tBrfk?yEMB=~^vy@h)jDCkY9QEs1k{d3l_6KTJ?|Hfh@2nP@JgFne=kzy+yuHxC>* z;A_VIfoF7@vZ~sif<-DXiX31st*6&MQzU+OFiSSZY zxfs>uO)UWv+*XQw_LG&A{`R97sjB7Zgn?=K0gXmrwA^4&A=QhTVbNBZiub1oT9{k7g>ert%wwk0p; z_-ag+^zBwH2`lpXbwNb+rz+Ngn(0GMa4yxz;I*m MboFyt=akR{0BdcwI{*Lx diff --git a/Projects/App/Sources/Presentation/Tab/MainTab.swift b/Projects/App/Sources/Presentation/Tab/MainTab.swift index f5b05f9a..9ae07c97 100644 --- a/Projects/App/Sources/Presentation/Tab/MainTab.swift +++ b/Projects/App/Sources/Presentation/Tab/MainTab.swift @@ -23,9 +23,9 @@ enum MainTab: Int, CaseIterable, Identifiable { var title: String { switch self { case .home: - return "홈" + return "감정일기" case .mypage: - return "마이페이지" + return "내정보" } } diff --git a/Projects/App/Sources/Presentation/Tab/TabBarView.swift b/Projects/App/Sources/Presentation/Tab/TabBarView.swift index fc5b11bf..e0e3c470 100644 --- a/Projects/App/Sources/Presentation/Tab/TabBarView.swift +++ b/Projects/App/Sources/Presentation/Tab/TabBarView.swift @@ -23,10 +23,10 @@ struct TabBarView: View { tabBarViewModel.selected = item print(item) } label: { - VStack(spacing: 8) { + VStack(spacing: 0) { Image("\(tabBarViewModel.selected == item ? "\(item.imageName)" : "\(item.imageName)Default")") .resizable() - .frame(width: 25, height: 25) + .frame(width: 39, height: 39) .tint(tabBarViewModel.selected == item ? Color.sub : Color.symGray3) Text(item.title) @@ -38,7 +38,9 @@ struct TabBarView: View { } } .frame(maxWidth: .infinity) - .frame(height: UIScreen.main.bounds.height * 0.1) + .frame(height: 50) + .padding(.top, 10) + .padding(.bottom, 8) .background( Rectangle() .cornerRadius(30, corners: [.topLeft, .topRight]) @@ -49,7 +51,7 @@ struct TabBarView: View { color: .symGray2, radius: 4, x: 0, - y: -7 + y: -6 ) } } From 1fa79f901d1df65cc4984456169e2a049f5aa7a1 Mon Sep 17 00:00:00 2001 From: Park Seo Yeon Date: Sat, 2 Mar 2024 01:28:47 +0900 Subject: [PATCH 4/7] =?UTF-8?q?fix:=20200=EA=B8=80=EC=9E=90=20=EC=9D=B4?= =?UTF-8?q?=EC=83=81=20=EC=8B=9C=20=EC=9E=85=EB=A0=A5=20=EB=B6=88=EA=B0=80?= =?UTF-8?q?=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Projects/App/Sources/DesignSystem/Form/TextEditor.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Projects/App/Sources/DesignSystem/Form/TextEditor.swift b/Projects/App/Sources/DesignSystem/Form/TextEditor.swift index 86a231c1..12d2c180 100644 --- a/Projects/App/Sources/DesignSystem/Form/TextEditor.swift +++ b/Projects/App/Sources/DesignSystem/Form/TextEditor.swift @@ -38,6 +38,12 @@ struct CustomTextEditorStyle: ViewModifier { .foregroundColor(Color.symGray4) .padding(.trailing, 15) .padding(.bottom, 15) + .onChange(of: text) { newValue in + if newValue.count > 200 { + text = String(newValue.prefix(200)) + } + } + } } } From a96083a9bb45e5a78af1594351bda95efd436ed5 Mon Sep 17 00:00:00 2001 From: Park Seo Yeon Date: Sat, 2 Mar 2024 03:05:29 +0900 Subject: [PATCH 5/7] =?UTF-8?q?Design:=20=ED=8C=9D=EC=97=85=20=EC=BB=B4?= =?UTF-8?q?=ED=8F=AC=EB=84=8C=ED=8A=B8=20=EB=94=94=EC=9E=90=EC=9D=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EB=B0=98=EC=98=81=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CustomAlert/CommonButtonView.swift | 48 +++++ .../CustomAlert/CommonDoubleBtnView.swift | 73 ------- .../CustomAlert/PopupViewDemo.swift | 144 ++++++------- .../PopupViewModifier+Extension.swift | 198 +++--------------- .../Presentation/MyPage/SettingView.swift | 2 - .../Record/Views/RecordStartView.swift | 5 +- 6 files changed, 147 insertions(+), 323 deletions(-) create mode 100644 Projects/App/Sources/DesignSystem/CustomAlert/CommonButtonView.swift delete mode 100644 Projects/App/Sources/DesignSystem/CustomAlert/CommonDoubleBtnView.swift diff --git a/Projects/App/Sources/DesignSystem/CustomAlert/CommonButtonView.swift b/Projects/App/Sources/DesignSystem/CustomAlert/CommonButtonView.swift new file mode 100644 index 00000000..737e24c6 --- /dev/null +++ b/Projects/App/Sources/DesignSystem/CustomAlert/CommonButtonView.swift @@ -0,0 +1,48 @@ +// +// CommonButtonView.swift +// SYM +// +// Created by 박서연 on 2024/01/27. +// Copyright © 2024 Mogong. All rights reserved. +// + +import SwiftUI + +/// 팝업 뷰 생성시 겹치는 색상 뷰 +struct CommonButtonView: View { + let title: String + let desc: String + + var body: some View { + VStack(spacing: 12) { + Text(title) + .font(.bold(18)) + Text(desc) + .font(.medium(14)) + .lineSpacing(3) + .padding(.vertical, 3) + .multilineTextAlignment(.center) + } + } +} + +#Preview { + CommonButtonView(title: "title", desc: "desc") +} + +// 팝업 배경 모디파이어 +struct CustomPopupModifier: ViewModifier { + func body(content: Content) -> some View { + content + .padding(23) + .background(Color.white) + .cornerRadius(15) + .padding(.horizontal, 45) + } +} + +extension View { + func customPopupModifier() -> some View { + self.modifier(CustomPopupModifier()) + } +} diff --git a/Projects/App/Sources/DesignSystem/CustomAlert/CommonDoubleBtnView.swift b/Projects/App/Sources/DesignSystem/CustomAlert/CommonDoubleBtnView.swift deleted file mode 100644 index a2a467df..00000000 --- a/Projects/App/Sources/DesignSystem/CustomAlert/CommonDoubleBtnView.swift +++ /dev/null @@ -1,73 +0,0 @@ -// -// CommonDoubleBtnView.swift -// SYM -// -// Created by 박서연 on 2024/01/27. -// Copyright © 2024 Mogong. All rights reserved. -// - -import SwiftUI - -/// 팝업 뷰 생성시 겹치는 색상 뷰 -struct CommonDoubleBtnView: View { - let title: String - let boldDesc: String - let desc: String - - var body: some View { - VStack(spacing: 15) { -// Spacer().frame(height: 12) - Text(title) - .font(PretendardFont.h4Bold) - - if !boldDesc.isEmpty { - Text(boldDesc) - .font(PretendardFont.h5Bold) - .foregroundColor(Color.errorRed) - - } - - if !desc.isEmpty { - Text(desc) - .font(PretendardFont.bodyMedium) - .foregroundColor(Color.errorRed) - .lineSpacing(1.5) - .multilineTextAlignment(.center) - } -// Spacer().frame(height: 40) - } - .padding() - } -} - -#Preview { - CommonDoubleBtnView(title: "title", boldDesc: "boldDesc", desc: "desc") -} - -struct CustomPopupModifier: ViewModifier { - func body(content: Content) -> some View { - content - .padding(.horizontal, 20) - .padding(.vertical, 25) - .frame(maxWidth: .infinity) - .background(Color.white) - .cornerRadius(15) - .padding(.horizontal, 40) - - /* - .padding(.horizontal, 20) - .frame(maxWidth: .infinity) - .padding(.top, 25) - .padding(.bottom, 25) - .background(Color.white) - .cornerRadius(15) - .padding(.horizontal, 60) - */ - } -} - -extension View { - func customPopupModifier() -> some View { - self.modifier(CustomPopupModifier()) - } -} diff --git a/Projects/App/Sources/DesignSystem/CustomAlert/PopupViewDemo.swift b/Projects/App/Sources/DesignSystem/CustomAlert/PopupViewDemo.swift index 30206aa4..48251981 100644 --- a/Projects/App/Sources/DesignSystem/CustomAlert/PopupViewDemo.swift +++ b/Projects/App/Sources/DesignSystem/CustomAlert/PopupViewDemo.swift @@ -6,76 +6,76 @@ // Copyright © 2023 Mogong. All rights reserved. // import SwiftUI - -//struct PopupDemo: View { -// @State private var isShowingPopup = false -// @State private var isShowingGuide = false -// @State private var isShowingAlone = true -// -// var body: some View { -// VStack(spacing: 10) { -// Button(action: { -// self.isShowingGuide.toggle() -// }, label: { -// Text("가이드 라인 팝업 뷰 사용 방법") -// }) -// -// Button(action: { -// self.isShowingPopup.toggle() -// }, label: { -// Text("일반 커스텀 팝업 뷰 사용 방법") -// }) -// -// Button(action: { -// self.isShowingAlone.toggle() -// }, label: { -// Text("로그아웃 버튼 테스트") -// }) -// } -// /// 가이드 라인 팝업 뷰 사용 방법 -// .popup(isShowing: $isShowingGuide, -// type: .guide(title: "알겠어요"), -// title: "생각이 잘 떠오르지 않으세요?", -// boldDesc: "", -// desc: "잠시동안 눈을 감고 그때의 상황을 떠올려봐요. 거창하지 않은 작은 생각이라도 좋아요!", -// confirmHandler: { -// self.isShowingGuide.toggle() -// print("확인") -// }, -// cancelHandler: { -// print("취소 버튼") -// self.isShowingGuide.toggle() -// }) -// -// -// /// 일반 커스텀 팝업 뷰 사용 방법 -> 현재 취소 확인 둘 다 똑같이 동작하는 예시입니다. -// .popup(isShowing: $isShowingPopup, -// type: .doubleButton(leftTitle: "아니", rightTitle: "아주 좋았어!"), -// title: "로그아웃 하시겠어요?", -// boldDesc: "탈퇴 전 유의 사항", -// desc: "• 탈퇴 후 7일간은 재가입이 불가합니다. \n• 탈퇴 시 계정의 모든 정보는 삭제되며, \n 재가입후에도 복구 되지 않습니다.", -// confirmHandler: { -// print("아니") -// self.isShowingPopup.toggle() -// }, -// cancelHandler: { -// print("좋았어 버튼") -// self.isShowingPopup.toggle() -// }) -// +struct PopupDemo: View { + @State private var isShowingPopup = false + @State private var isShowingGuide = true + @State private var isShowingAlone = false + + var body: some View { + ZStack { + Color.red + VStack(spacing: 10) { + Button(action: { + self.isShowingGuide.toggle() + }, label: { + Text("가이드 라인 팝업 뷰 사용 방법") + }) + + Button(action: { + self.isShowingPopup.toggle() + }, label: { + Text("탈퇴 버튼") + }) + + Button(action: { + self.isShowingAlone.toggle() + }, label: { + Text("로그아웃 버튼") + }) + } + } + /// 가이드 라인 팝업 뷰 사용 방법 + .popup(isShowing: $isShowingGuide, + type: .guide(title: "닫기"), + title: "[사건] 쓰기 꿀팁!", + desc: "언제, 어디서, 누가 관련되었는지 기록하며 \n사건을 요약하는 제목을 붙여보세요!\n고민하지 말고 생각나는대로 적어봐요:)", + confirmHandler: { + self.isShowingGuide.toggle() + print("확인") + }, + cancelHandler: { + print("취소 버튼") + self.isShowingGuide.toggle() + }) + + + + /// 일반 커스텀 팝업 뷰 사용 방법 -> 현재 취소 확인 둘 다 똑같이 동작하는 예시입니다. + .popup(isShowing: $isShowingPopup, + type: .doubleButton(leftTitle: "그만두기", rightTitle: "탈퇴하기"), + title: "탈퇴 하시겠어요?", + desc: "사용하신 계정 정보는 회원 탈퇴 후\n모두 삭제되며, 복구가 불가합니다.", + confirmHandler: { + print("아니") + self.isShowingPopup.toggle() + }, + cancelHandler: { + print("좋았어 버튼") + self.isShowingPopup.toggle() + }) + // /// 로그아웃 버튼 -// .popup(isShowing: $isShowingAlone, -// type: .doubleButton(leftTitle: "아니", rightTitle: "아주 좋았어"), -// title: "기록이 도움이 됐나요?", -// boldDesc: "", -// desc: "") { -// self.isShowingAlone.toggle() -// } cancelHandler: { -// self.isShowingAlone.toggle() -// } -// } -//} -// -//#Preview { -// PopupDemo() -//} + .popup(isShowing: $isShowingAlone, + type: .doubleButton(leftTitle: "그만두기", rightTitle: "로그아웃"), + title: "정말 로그아웃 하시겠어요?", + desc: "로그아웃 후에는 서비스 이용이 불가해요.") { + self.isShowingAlone.toggle() + } cancelHandler: { + self.isShowingAlone.toggle() + } + } +} + +#Preview { + PopupDemo() +} diff --git a/Projects/App/Sources/DesignSystem/CustomAlert/PopupViewModifier+Extension.swift b/Projects/App/Sources/DesignSystem/CustomAlert/PopupViewModifier+Extension.swift index 4a372b73..c0bbd9c9 100644 --- a/Projects/App/Sources/DesignSystem/CustomAlert/PopupViewModifier+Extension.swift +++ b/Projects/App/Sources/DesignSystem/CustomAlert/PopupViewModifier+Extension.swift @@ -8,40 +8,29 @@ import SwiftUI public enum PopupType { - /// 버튼이 2개인 팝뷰, 왼쪽메인 오른쪽 그레이5 case doubleButton(leftTitle: String, rightTitle: String) - /// 가이드라인 팝뷰 (버튼1개) case guide(title: String) - /// 버튼이 2개인 팝뷰, 왼쪽 그레이5 오른쪽메인 - case switchColorDoubleBtn(leftTitle: String, rightTitle: String) } struct PopupView: ViewModifier { @Binding var isShowing: Bool - /// 팝업 타입 + let type: PopupType - /// 팝업뷰 제목 let title: String - /// 팝업뷰 소제목 - let boldDesc: String - /// 팝업뷰 내용 let desc: String - /// 팝업뷰 확인 버튼 함수 let confirmHandler: () -> Void - /// 팝업뷰 취소 버튼 함수 let cancelHandler: () -> Void + let fontHeight = UIFont.preferredFont(forTextStyle: .caption1).lineHeight init(isShowing: Binding, type: PopupType, title: String, - boldDesc: String, desc: String, confirmHandler: @escaping () -> Void, cancelHandler: @escaping () -> Void) { self._isShowing = isShowing self.type = type self.title = title - self.boldDesc = boldDesc self.desc = desc self.confirmHandler = confirmHandler self.cancelHandler = cancelHandler @@ -57,32 +46,17 @@ struct PopupView: ViewModifier { switch type { case .doubleButton(_, _): ZStack { - VStack { - CommonDoubleBtnView(title: title, boldDesc: boldDesc, desc: desc) + VStack(alignment: .center, spacing: 18) { + Spacer().frame(height: 3) // 총 26 .top + CommonButtonView(title: title, desc: desc) bottomView } .customPopupModifier() } case .guide: ZStack { - VStack(alignment: .center) { - Text(title) - .font(PretendardFont.h4Bold) - Spacer().frame(height: 15) - Text(desc) - .font(PretendardFont.bodyMedium) - .lineSpacing(1.5) - .multilineTextAlignment(.center) - Spacer().frame(height: 32) - bottomView - - } - .customPopupModifier() - } - case .switchColorDoubleBtn(_, _): - ZStack { - VStack { - CommonDoubleBtnView(title: title, boldDesc: boldDesc, desc: desc) + VStack(alignment: .center, spacing: 18) { + CommonButtonView(title: title, desc: desc) bottomView } .customPopupModifier() @@ -90,7 +64,7 @@ struct PopupView: ViewModifier { } } .opacity(isShowing ? 1 : 0) - .animation(.easeInOut, value: isShowing) + .animation(.easeIn, value: isShowing) } } @@ -100,60 +74,17 @@ struct PopupView: ViewModifier { multiButtonView(leftTitle: leftTitle, rightTitle: rightTitle) case .guide(let title): guideView(title: title) - case .switchColorDoubleBtn(let leftTitle, let rightTitle): - switchColorView(leftTitle: leftTitle, rightTitle: rightTitle) } } func multiButtonView(leftTitle: String, rightTitle: String) -> some View { - HStack(spacing: 20) { + HStack(spacing: 22) { Text(leftTitle) - .padding(.vertical, 15) - .frame(maxWidth: .infinity) - .foregroundColor(Color.white) - .background(Color.main) - .clipShape(RoundedRectangle(cornerRadius: 16)) - .onTapGesture { - confirmHandler() - } - - Text(rightTitle) .padding(.vertical, 15) .frame(maxWidth: .infinity) .foregroundColor(Color.symGray5) .background(Color.symGray1) - .clipShape(RoundedRectangle(cornerRadius: 16)) - .onTapGesture { - cancelHandler() - } - } - .font(PretendardFont.h4Bold) - .padding(.horizontal, 10) - } - - func guideView(title: String) -> some View { - VStack { - Text(title) - .padding(.vertical, 15) - .frame(maxWidth: .infinity) - .foregroundColor(Color.white) - .background(Color.main) - .font(PretendardFont.bodyBold) .clipShape(RoundedRectangle(cornerRadius: 10)) - .onTapGesture { - cancelHandler() - } - } - } - - func switchColorView(leftTitle: String, rightTitle: String) -> some View { - HStack(spacing: 20) { - Text(leftTitle) - .padding(.vertical, 15) - .frame(maxWidth: .infinity) - .foregroundColor(Color.symGray5) - .background(Color.symGray1) - .clipShape(RoundedRectangle(cornerRadius: 16)) .onTapGesture { confirmHandler() } @@ -163,21 +94,33 @@ struct PopupView: ViewModifier { .frame(maxWidth: .infinity) .foregroundColor(Color.white) .background(Color.main) - .clipShape(RoundedRectangle(cornerRadius: 16)) + .clipShape(RoundedRectangle(cornerRadius: 10)) .onTapGesture { cancelHandler() } } - .font(PretendardFont.h4Bold) + .font(.bold(16)) .padding(.horizontal, 10) } + + func guideView(title: String) -> some View { + Text(title) + .padding(.vertical, 14) + .frame(maxWidth: .infinity) + .foregroundColor(Color.white) + .background(Color.main) + .font(.bold(16)) + .clipShape(RoundedRectangle(cornerRadius: 10)) + .onTapGesture { + cancelHandler() + } + } } public extension View { func popup(isShowing: Binding, type: PopupType, title: String, - boldDesc: String, desc: String, confirmHandler: @escaping () -> Void, cancelHandler: @escaping () -> Void) @@ -185,101 +128,8 @@ public extension View { self.modifier(PopupView(isShowing: isShowing, type: type, title: title, - boldDesc: boldDesc, desc: desc, confirmHandler: confirmHandler, cancelHandler: cancelHandler)) } } - -struct PopupDemo: View { - @State private var isShowingPopup = false - @State private var isShowingGuide = false - @State private var isShowingAlone = false - @State private var isShowingSwitch = true - - var body: some View { - ZStack { - Color.red - VStack(spacing: 10) { - Button(action: { - self.isShowingGuide.toggle() - }, label: { - Text("가이드 라인 팝업 뷰 사용 방법") - }) - - Button(action: { - self.isShowingPopup.toggle() - }, label: { - Text("일반 커스텀 팝업 뷰 사용 방법") - }) - - Button(action: { - self.isShowingAlone.toggle() - }, label: { - Text("로그아웃 버튼 테스트") - }) - - Button(action: { - self.isShowingSwitch.toggle() - }, label: { - Text("Switch 버튼 테스트") - }) - } - } - /// 가이드 라인 팝업 뷰 사용 방법 - .popup(isShowing: $isShowingGuide, - type: .guide(title: "알겠어요"), - title: "생각이 잘 떠오르지 않으세요?", - boldDesc: "", - desc: "잠시동안 눈을 감고 그때의 상황을 떠올려봐요. 거창하지 않은 작은 생각이라도 좋아요!", - confirmHandler: { - self.isShowingGuide.toggle() - print("확인") - }, - cancelHandler: { - print("취소 버튼") - self.isShowingGuide.toggle() - }) - /// 일반 커스텀 팝업 뷰 사용 방법 -> 현재 취소 확인 둘 다 똑같이 동작하는 예시입니다. - .popup(isShowing: $isShowingPopup, - type: .doubleButton(leftTitle: "확인", rightTitle: "취소"), - title: "탈퇴 하시겠어요?", - boldDesc: "탈퇴 전 유의 사항", - desc: "• 탈퇴 후 7일간은 재가입이 불가합니다. \n• 탈퇴 시 계정의 모든 정보는 삭제되며, \n 재가입후에도 복구 되지 않습니다.", - confirmHandler: { - print("아니") - self.isShowingPopup.toggle() - }, - cancelHandler: { - print("좋았어 버튼") - self.isShowingPopup.toggle() - }) - - /// 로그아웃 버튼 - .popup(isShowing: $isShowingAlone, - type: .doubleButton(leftTitle: "확인", rightTitle: "취소"), - title: "기록이 도움이 됐나요?", - boldDesc: "", - desc: "") { - self.isShowingAlone.toggle() - } cancelHandler: { - self.isShowingAlone.toggle() - } - - /// 로그아웃 버튼 - .popup(isShowing: $isShowingSwitch, - type: .switchColorDoubleBtn(leftTitle: "아니", rightTitle: "아주 좋았어!"), - title: "기록이 도움이 됐나요?", - boldDesc: "", - desc: "") { - self.isShowingSwitch.toggle() - } cancelHandler: { - self.isShowingSwitch.toggle() - } - } -} - -#Preview { - PopupDemo() -} diff --git a/Projects/App/Sources/Presentation/MyPage/SettingView.swift b/Projects/App/Sources/Presentation/MyPage/SettingView.swift index 4bfbbe86..4be78d62 100644 --- a/Projects/App/Sources/Presentation/MyPage/SettingView.swift +++ b/Projects/App/Sources/Presentation/MyPage/SettingView.swift @@ -64,7 +64,6 @@ struct SettingView: View { .popup(isShowing: $isShowingWithdrawalPopup, type: .doubleButton(leftTitle: "확인", rightTitle: "취소"), title: SettingConent.removeTitle.rawValue, - boldDesc: SettingConent.removeBoldDesc.rawValue, desc: SettingConent.removeDesc.rawValue, confirmHandler: { print("탈퇴하기") @@ -100,7 +99,6 @@ struct SettingView: View { .popup(isShowing: $isShowingLogoutPopup, type: .doubleButton(leftTitle: "확인", rightTitle: "취소"), title: SettingConent.logoutTitle.rawValue, - boldDesc: "", desc: "", confirmHandler: { print("로그아웃") diff --git a/Projects/App/Sources/Presentation/Record/Views/RecordStartView.swift b/Projects/App/Sources/Presentation/Record/Views/RecordStartView.swift index 90063c8b..1776b420 100644 --- a/Projects/App/Sources/Presentation/Record/Views/RecordStartView.swift +++ b/Projects/App/Sources/Presentation/Record/Views/RecordStartView.swift @@ -119,13 +119,14 @@ struct RecordStartView: View { .popup(isShowing: $recordViewModel.isShowingOutPopUp, type: .doubleButton(leftTitle: "그만두기", rightTitle: "이어쓰기"), title: "잠깐! 일기 작성을 중단하시나요??", - boldDesc: "", desc: "여기서 그만두면 지금까지 작성한 글이 모두 사라집니다!") { dismiss() } cancelHandler: { recordViewModel.isShowingOutPopUp.toggle() } - .popup(isShowing: $recordViewModel.isShowingGuidePopUp, type: .guide(title: "닫기"), title: "[\(recordViewModel.recordOrder.rawValue)] 쓰기 꿀팁!", boldDesc: "", desc: "\(recordViewModel.recordOrder.guideMent)", confirmHandler: { + .popup(isShowing: $recordViewModel.isShowingGuidePopUp, type: .guide(title: "닫기"), + title: "[\(recordViewModel.recordOrder.rawValue)] 쓰기 꿀팁!", + desc: "\(recordViewModel.recordOrder.guideMent)", confirmHandler: { }, cancelHandler: { recordViewModel.isShowingGuidePopUp.toggle() From 231a0af356469b034255a9943c43b3080b1558c7 Mon Sep 17 00:00:00 2001 From: Park Seo Yeon Date: Sat, 2 Mar 2024 04:12:29 +0900 Subject: [PATCH 6/7] =?UTF-8?q?fix,=20refacotr:=20UserDefaults=20static?= =?UTF-8?q?=ED=99=94,=20=EB=A7=88=EC=9D=B4=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EB=B7=B0=20=EB=94=94=EC=9E=90=EC=9D=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../App/Sources/Data/UserDefaultsKeys.swift | 16 ++++ .../DesignSystem/Common/RecordView.swift | 2 +- .../CustomAlert/PopupContent.swift | 25 ++++++ .../Services/AuthenticationService.swift | 3 + .../Protocol/Services}/DIContainer.swift | 0 .../Authencation/AuthenticatedView.swift | 14 +-- .../Authencation/AuthenticatedViewModel.swift | 4 +- .../Calendar/View/CalendarDetailView.swift | 2 +- .../ViewModel/CalendarViewModel.swift | 2 +- .../Login/View/LoginIntroView.swift | 2 +- .../Login/View/LoginNicknameView.swift | 2 +- .../Presentation/MyPage/MyAccountInfo.swift | 8 +- .../Presentation/MyPage/MypageView.swift | 59 +++++++++---- .../Presentation/MyPage/SettingView.swift | 88 +++++++++---------- .../Record/Views/RecordStartView.swift | 4 +- 15 files changed, 140 insertions(+), 91 deletions(-) create mode 100644 Projects/App/Sources/Data/UserDefaultsKeys.swift create mode 100644 Projects/App/Sources/DesignSystem/CustomAlert/PopupContent.swift rename Projects/App/Sources/{Data/Repositories => Domain/UseCases/Protocol/Services}/DIContainer.swift (100%) diff --git a/Projects/App/Sources/Data/UserDefaultsKeys.swift b/Projects/App/Sources/Data/UserDefaultsKeys.swift new file mode 100644 index 00000000..2248972b --- /dev/null +++ b/Projects/App/Sources/Data/UserDefaultsKeys.swift @@ -0,0 +1,16 @@ +// +// UserDefaultsKeys.swift +// SYM +// +// Created by 박서연 on 2024/03/02. +// Copyright © 2024 Mogong. All rights reserved. +// + +import Foundation + +// 유저디폴트 키 모음 +struct UserDefaultsKeys { + static let nickname = UserDefaults.standard.string(forKey: "nickname") ?? "" + static let loginProvider = UserDefaults.standard.string(forKey: "loginProvider") ?? "" + static let userEmail = UserDefaults.standard.string(forKey: "userEmail") ?? "" +} diff --git a/Projects/App/Sources/DesignSystem/Common/RecordView.swift b/Projects/App/Sources/DesignSystem/Common/RecordView.swift index cfeaf0ee..26d9f00c 100644 --- a/Projects/App/Sources/DesignSystem/Common/RecordView.swift +++ b/Projects/App/Sources/DesignSystem/Common/RecordView.swift @@ -33,7 +33,7 @@ struct RecordView: View { var recordCount: Int = 0 @State private var isShowingRecordView: Bool = false - @State private var nickname: String = UserDefaults.standard.string(forKey: "nickname") ?? "" + @State private var nickname: String = UserDefaultsKeys.nickname var body: some View { HStack { diff --git a/Projects/App/Sources/DesignSystem/CustomAlert/PopupContent.swift b/Projects/App/Sources/DesignSystem/CustomAlert/PopupContent.swift new file mode 100644 index 00000000..d1a9281f --- /dev/null +++ b/Projects/App/Sources/DesignSystem/CustomAlert/PopupContent.swift @@ -0,0 +1,25 @@ +// +// PopupContent.swift +// SYM +// +// Created by 박서연 on 2024/03/02. +// Copyright © 2024 Mogong. All rights reserved. +// + +import Foundation + +struct PopupContent { + let title: String + let desc: String + + // 일반 팝업 + static let logout = PopupContent(title: "로그아웃 하시겠어요?", desc: "로그아웃 후에는 서비스 이용이 불가해요.") + static let remove = PopupContent(title: "정말 탈퇴 하시겠어요?", desc: "사용하신 계정 정보는 회원 탈퇴 후\n모두 삭제되며, 복구가 불가합니다.") + static let stopDiary = PopupContent(title: "잠깐! 일기 작성을 중단하시나요?", desc: "여기서 그만두면 지금까지 작성한\n글이 모두 사라집니다!") + + // 가이드 팝업 + static let thinking = PopupContent(title: "[생각] 쓰기 꿀팁!", desc: "긍정, 부정적인 생각 모두 있는 그대로 적으며\n~하다고 생각했다, 왜~일까?와 같은 표현을\n활용하면 더욱 명확히 표현할 수 있어요!") + static let issue = PopupContent(title: "[사건] 쓰기 꿀팁!", desc: "언제, 어디서, 누가 관련되었는지 기록하며\n사건을 요약하는 제목을 붙여보세요!\n고민하지 말고 생각나는대로 적어봐요:)") + static let behavior = PopupContent(title: "[행동] 쓰기 꿀팁!", desc: "어떻게 행동했는지, 그래서 결과는 어땠는지\n돌이켜보며 해당 행동이 나에게 어떤 영향을\n미쳤는지 기록해보세요!") + static let stop = PopupContent(title: "잠깐! 일기 작성을 중단하시나요?", desc: "여기서 그만두면 지금까지 작성한\n글이 모두 사라집니다!") +} diff --git a/Projects/App/Sources/Domain/UseCases/Protocol/Services/AuthenticationService.swift b/Projects/App/Sources/Domain/UseCases/Protocol/Services/AuthenticationService.swift index 39dd499d..4a0e8bfc 100644 --- a/Projects/App/Sources/Domain/UseCases/Protocol/Services/AuthenticationService.swift +++ b/Projects/App/Sources/Domain/UseCases/Protocol/Services/AuthenticationService.swift @@ -362,10 +362,13 @@ extension AuthenticationService { switch providerID { case "google.com": provider = "Google" + case "apple.com": provider = "Apple" + case "password": provider = "Kakao" + default: provider = "Unknown" } diff --git a/Projects/App/Sources/Data/Repositories/DIContainer.swift b/Projects/App/Sources/Domain/UseCases/Protocol/Services/DIContainer.swift similarity index 100% rename from Projects/App/Sources/Data/Repositories/DIContainer.swift rename to Projects/App/Sources/Domain/UseCases/Protocol/Services/DIContainer.swift diff --git a/Projects/App/Sources/Presentation/Authencation/AuthenticatedView.swift b/Projects/App/Sources/Presentation/Authencation/AuthenticatedView.swift index c9d827a9..a1119df5 100644 --- a/Projects/App/Sources/Presentation/Authencation/AuthenticatedView.swift +++ b/Projects/App/Sources/Presentation/Authencation/AuthenticatedView.swift @@ -12,7 +12,7 @@ import Combine struct AuthenticatedView: View { @StateObject var authViewModel: AuthenticationViewModel private let firebaseService = FirebaseService.shared - var nickname: String = UserDefaults.standard.string(forKey: "nickname") ?? "" + var nickname: String = UserDefaultsKeys.nickname var body: some View { VStack { @@ -34,19 +34,7 @@ struct AuthenticatedView: View { } .onAppear { authViewModel.send(action: .checkAuthenticationState) - -// if nickname.isEmpty { // 닉네임이 없다면 닉네임 입력받도록 -// authViewModel.authenticationState = .unauthenticated -// } } - - // MARK: - 다른거 뷰 실기기 테스트하고 돌아오는 경우 사용하는 로그아웃 버튼 -// Button { -// authViewModel.send(action: .logout) -// print("ddd") -// } label: { -// Text("로그아웃") -// } } } diff --git a/Projects/App/Sources/Presentation/Authencation/AuthenticatedViewModel.swift b/Projects/App/Sources/Presentation/Authencation/AuthenticatedViewModel.swift index 13c0b419..0a09fd4e 100644 --- a/Projects/App/Sources/Presentation/Authencation/AuthenticatedViewModel.swift +++ b/Projects/App/Sources/Presentation/Authencation/AuthenticatedViewModel.swift @@ -34,13 +34,13 @@ class AuthenticationViewModel: ObservableObject { @Published var isLoading = false @Published var authenticationState: AuthenticationState = .initial @Published var userId: String? - @Published var loginProvider: String = (UserDefaults.standard.string(forKey: "loginProvider") ?? "") + @Published var loginProvider: String = UserDefaultsKeys.loginProvider private var currentNonce: String? private var container: DIContainer private var subscritpions = Set() private let firebaseService = FirebaseService.shared - private var nickname: String = UserDefaults.standard.string(forKey: "nickname") ?? "" + private var nickname: String = UserDefaultsKeys.nickname init(container: DIContainer) { self.container = container diff --git a/Projects/App/Sources/Presentation/Calendar/View/CalendarDetailView.swift b/Projects/App/Sources/Presentation/Calendar/View/CalendarDetailView.swift index 56564bec..a927cf48 100644 --- a/Projects/App/Sources/Presentation/Calendar/View/CalendarDetailView.swift +++ b/Projects/App/Sources/Presentation/Calendar/View/CalendarDetailView.swift @@ -33,7 +33,7 @@ struct CalendarDetailView: View { // MARK: - HeaderView: 환영글 struct HeaderView: View { - private var nickname: String = UserDefaults.standard.string(forKey: "nickname") ?? "" + private var nickname: String = UserDefaultsKeys.nickname var body: some View { HStack { diff --git a/Projects/App/Sources/Presentation/Calendar/ViewModel/CalendarViewModel.swift b/Projects/App/Sources/Presentation/Calendar/ViewModel/CalendarViewModel.swift index 807f15cc..a426df9a 100644 --- a/Projects/App/Sources/Presentation/Calendar/ViewModel/CalendarViewModel.swift +++ b/Projects/App/Sources/Presentation/Calendar/ViewModel/CalendarViewModel.swift @@ -28,7 +28,7 @@ final class CalendarViewModel: RecordConditionFetch { // 서연 추가 func checkingDateFuture() { if popupDate { - self.impossibleMessage = .init(message: "미래는 기록이 불가능해요!") + self.impossibleMessage = .init(message: "미래 날짜는 아직 기록할 수 없어요") } else { self.impossibleMessage = nil } diff --git a/Projects/App/Sources/Presentation/Login/View/LoginIntroView.swift b/Projects/App/Sources/Presentation/Login/View/LoginIntroView.swift index 5c7f1181..045aa59e 100644 --- a/Projects/App/Sources/Presentation/Login/View/LoginIntroView.swift +++ b/Projects/App/Sources/Presentation/Login/View/LoginIntroView.swift @@ -13,7 +13,7 @@ struct LoginIntroView: View { @EnvironmentObject var authViewModel: AuthenticationViewModel @EnvironmentObject var tabBarViewModel: TabBarViewModel @State private var yOffset: CGFloat = 0 - private var nickname: String = UserDefaults.standard.string(forKey: "nickname") ?? "" + private var nickname: String = UserDefaultsKeys.nickname var body: some View { ZStack { diff --git a/Projects/App/Sources/Presentation/Login/View/LoginNicknameView.swift b/Projects/App/Sources/Presentation/Login/View/LoginNicknameView.swift index add2ee79..d80c999f 100644 --- a/Projects/App/Sources/Presentation/Login/View/LoginNicknameView.swift +++ b/Projects/App/Sources/Presentation/Login/View/LoginNicknameView.swift @@ -20,7 +20,7 @@ enum NickNameRules: String, CaseIterable { struct LoginNicknameView: View { @EnvironmentObject var authViewModel: AuthenticationViewModel @StateObject var loginNicknameViewModel = LoginNicknameViewModel() - @State private var nickname: String = UserDefaults.standard.string(forKey: "nickname") ?? "" + @State private var nickname: String = UserDefaultsKeys.nickname var body: some View { NavigationStack { diff --git a/Projects/App/Sources/Presentation/MyPage/MyAccountInfo.swift b/Projects/App/Sources/Presentation/MyPage/MyAccountInfo.swift index c57ee5f7..e89eb82a 100644 --- a/Projects/App/Sources/Presentation/MyPage/MyAccountInfo.swift +++ b/Projects/App/Sources/Presentation/MyPage/MyAccountInfo.swift @@ -10,14 +10,14 @@ import SwiftUI struct MyAccountInfo: View { - @State private var nickname = UserDefaults.standard.string(forKey: "nickName") ?? "" - @State private var loginEmail = UserDefaults.standard.string(forKey: "userEmail") ?? "mogong2024@gmail.com" + @State private var nickname = UserDefaultsKeys.nickname + @State private var loginEmail = UserDefaultsKeys.userEmail @State var isPressed: Bool = false @State var nicknameRules = NickNameRules.allow @EnvironmentObject var authViewModel: AuthenticationViewModel @Environment(\.dismiss) private var dismiss - private let loginProvider = UserDefaults.standard.string(forKey: "loginProvider") + private let loginProvider = UserDefaultsKeys.loginProvider var body: some View { NavigationStack { @@ -65,7 +65,7 @@ struct MyAccountInfo: View { VStack(alignment: .leading) { Text("가입계정") .font(PretendardFont.h5Bold) - UserProvider(userEmail: "\(loginEmail)", providerType: "Apple") + UserProvider(userEmail: "\(loginEmail)", providerType: authViewModel.loginProvider) } Spacer() diff --git a/Projects/App/Sources/Presentation/MyPage/MypageView.swift b/Projects/App/Sources/Presentation/MyPage/MypageView.swift index bcb3a959..55561058 100644 --- a/Projects/App/Sources/Presentation/MyPage/MypageView.swift +++ b/Projects/App/Sources/Presentation/MyPage/MypageView.swift @@ -18,8 +18,7 @@ struct MypageView: View { var body: some View { NavigationStack { RecordView(isShowingMainView: false) - .padding(.vertical, 25) - + .padding(.vertical, 20) CustomerSupport() Spacer() @@ -39,31 +38,57 @@ struct MypageView: View { @ViewBuilder private func CustomerSupport() -> some View { - VStack(alignment: .leading) { + VStack(alignment: .leading, spacing: 26) { Text("고객지원") - .font(PretendardFont.h3Bold) - .padding(.bottom, 28) + .font(.bold(20)) - VStack { - CustomerSupportButton(buttonTitle: "리뷰 남기기") - CustomerSupportButton(buttonTitle: "서비스 이용 약관") - CustomerSupportButton(buttonTitle: "개인정보처리방침") - } + CustomerSupportButton(buttonTitle: "리뷰 남기기") // 앱스토어로 이동 + SettingViewLinker(title: "서비스 이용 약관", url: "naver.com") + SettingViewLinker(title: "개인정보처리방침", url: "naver.com") HStack { Text("버전 정보") - .font(PretendardFont.h4Bold) - Spacer() + .font(.medium(17)) + .frame(maxWidth: .infinity, alignment: .leading) Text(appVersion ?? "0.0") - .font(PretendardFont.bodyBold) + .font(.bold(14)) } } - .padding(.trailing, 16) .foregroundStyle(Color.symBlack) } } +// 링크로 이동 뷰 +struct SettingViewLinker: View { + let title: String + let url: String + + var body: some View { + HStack { + Text("\(title)") + .font(.medium(17)) + linkView("", url) + } + } + + private func rowView(_ label: String) -> some View { + Image(systemName: "chevron.forward") + .font(PretendardFont.h4Medium) + } + + @ViewBuilder + private func linkView(_ label: String, _ url: String) -> some View { + if let url = URL(string: url) { + Link(destination: url) { + rowView(label) + .frame(maxWidth: .infinity, alignment: .trailing) + } + } + } +} + +// 리뷰 남기기 private struct CustomerSupportButton: View { let buttonTitle: String var body: some View { @@ -72,12 +97,12 @@ private struct CustomerSupportButton: View { } label: { HStack { Text("\(buttonTitle)") - .font(PretendardFont.h5Bold) - Spacer() + .font(.medium(17)) + .frame(maxWidth: .infinity, alignment: .leading) Image(systemName: "chevron.forward") .font(PretendardFont.h4Medium) } - .padding(.bottom, 26) + .foregroundColor(.symBlack) .contentShape(Rectangle()) } .buttonStyle(.plain) diff --git a/Projects/App/Sources/Presentation/MyPage/SettingView.swift b/Projects/App/Sources/Presentation/MyPage/SettingView.swift index 4be78d62..336e242a 100644 --- a/Projects/App/Sources/Presentation/MyPage/SettingView.swift +++ b/Projects/App/Sources/Presentation/MyPage/SettingView.swift @@ -8,47 +8,45 @@ import SwiftUI -enum SettingConent: String { - case logoutTitle = "로그아웃 하시겠어요?" - case removeTitle = "탈퇴하시겠어요?" - case removeBoldDesc = "탈퇴 전 유의 사항" - case removeDesc = "• 탈퇴 후 7일간은 재가입이 불가합니다. \n• 탈퇴 시 계정의 모든 정보는 삭제되며, \n 재가입후에도 복구 되지 않습니다." +class SettingViewModel: ObservableObject { + @Published var isShowingLogoutPopup = false + @Published var isShowingWithdrawalPopup = false + @Published var notificationToggle = false } struct SettingView: View { @Environment(\.dismiss) private var dismiss @EnvironmentObject var authViewModel: AuthenticationViewModel - @State private var isShowingLogoutPopup = false - @State private var isShowingWithdrawalPopup = false + @StateObject var settingViewModel = SettingViewModel() private let firebaseService = FirebaseService.shared var body: some View { NavigationStack { VStack(spacing: 26) { - Toggle(isOn: .constant(true), label: { + Spacer().frame(height: 30) + + Toggle(isOn: $settingViewModel.notificationToggle, label: { Text("푸시 알림 설정") }) .tint(Color.main) - .padding(.top, 32) - + + VStack(spacing: 26) { Button { - isShowingLogoutPopup.toggle() + settingViewModel.isShowingLogoutPopup.toggle() } label: { - Text("로그아웃") - .frame(maxWidth: .infinity, alignment: .leading) + Text("로그아웃").frame(maxWidth: .infinity, alignment: .leading) } Button { - isShowingWithdrawalPopup.toggle() + settingViewModel.isShowingWithdrawalPopup.toggle() } label: { - Text("회원탈퇴") - .frame(maxWidth: .infinity, alignment: .leading) + Text("회원탈퇴").frame(maxWidth: .infinity, alignment: .leading) } } - .font(PretendardFont.h5Medium) + .font(.medium(17)) .foregroundStyle(Color.symGray4) } .padding(.horizontal, 20) @@ -61,51 +59,45 @@ struct SettingView: View { EmptyView() }, isShowingBackButton: true) - .popup(isShowing: $isShowingWithdrawalPopup, + .popup(isShowing: $settingViewModel.isShowingWithdrawalPopup, type: .doubleButton(leftTitle: "확인", rightTitle: "취소"), - title: SettingConent.removeTitle.rawValue, - desc: SettingConent.removeDesc.rawValue, + title: PopupContent.remove.title, + desc: PopupContent.remove.desc, confirmHandler: { - print("탈퇴하기") - if let userId = authViewModel.userId { - // 이거는 애플 로그인 탈퇴 - firebaseService.deleteUserData(user: userId) { result in - if result { - authViewModel.send(action: .unlinkApple) + if authViewModel.loginProvider == "Apple" { + firebaseService.deleteUserData(user: userId) { result in + if result { + authViewModel.send(action: .unlinkApple) + } } + } else { + firebaseService.deleteUserData(user: userId) { result in + if result { + authViewModel.send(action: .unlinkKakao) + } + } } - // 이거는 카카오 -// firebaseService.deleteUserData(user: userId) { result in -// if result { -// authViewModel.send(action: .unlinkKakao) -// } -// } - - // 팝업 버튼 토글 - self.isShowingWithdrawalPopup.toggle() - - } else { - print("🔥 Firebase DEBUG: 회원가입 정보 없음, 유저 정보 삭제 시 에러 발생") - } - + settingViewModel.isShowingWithdrawalPopup.toggle() + } else { + print("🔥 Firebase DEBUG: 회원가입 정보 없음, 유저 정보 삭제 시 에러 발생") + } }, cancelHandler: { - print("취소 버튼") - self.isShowingWithdrawalPopup.toggle() + settingViewModel.isShowingWithdrawalPopup.toggle() }) - .popup(isShowing: $isShowingLogoutPopup, + .popup(isShowing: $settingViewModel.isShowingLogoutPopup, type: .doubleButton(leftTitle: "확인", rightTitle: "취소"), - title: SettingConent.logoutTitle.rawValue, - desc: "", + title: PopupContent.logout.title, + desc: PopupContent.logout.title, confirmHandler: { print("로그아웃") - authViewModel.send(action: .logout) // 로그아웃 - self.isShowingLogoutPopup.toggle() + authViewModel.send(action: .logout) + settingViewModel.isShowingLogoutPopup.toggle() }, cancelHandler: { - self.isShowingLogoutPopup.toggle() + settingViewModel.isShowingLogoutPopup.toggle() }) } } diff --git a/Projects/App/Sources/Presentation/Record/Views/RecordStartView.swift b/Projects/App/Sources/Presentation/Record/Views/RecordStartView.swift index 1776b420..199552c1 100644 --- a/Projects/App/Sources/Presentation/Record/Views/RecordStartView.swift +++ b/Projects/App/Sources/Presentation/Record/Views/RecordStartView.swift @@ -118,8 +118,8 @@ struct RecordStartView: View { } .popup(isShowing: $recordViewModel.isShowingOutPopUp, type: .doubleButton(leftTitle: "그만두기", rightTitle: "이어쓰기"), - title: "잠깐! 일기 작성을 중단하시나요??", - desc: "여기서 그만두면 지금까지 작성한 글이 모두 사라집니다!") { + title: PopupContent.stop.title, + desc: PopupContent.stop.desc) { dismiss() } cancelHandler: { recordViewModel.isShowingOutPopUp.toggle() From fdb40d85d5020e277d55200df0e9d2eee670f01d Mon Sep 17 00:00:00 2001 From: Park Seo Yeon Date: Sat, 2 Mar 2024 04:22:12 +0900 Subject: [PATCH 7/7] =?UTF-8?q?refactor:=20simi=20=EC=95=A0=EB=8B=88?= =?UTF-8?q?=EB=A9=94=EC=9D=B4=EC=85=98=20=ED=9A=A8=EA=B3=BC=20modifier?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Login/View/LoginIntroView.swift | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/Projects/App/Sources/Presentation/Login/View/LoginIntroView.swift b/Projects/App/Sources/Presentation/Login/View/LoginIntroView.swift index 045aa59e..97e5b03b 100644 --- a/Projects/App/Sources/Presentation/Login/View/LoginIntroView.swift +++ b/Projects/App/Sources/Presentation/Login/View/LoginIntroView.swift @@ -27,12 +27,8 @@ struct LoginIntroView: View { .resizable() .scaledToFit() .padding(.horizontal, 50) - .modifier(CloudFloatingAnimation(offset: yOffset)) - .onAppear { - withAnimation(Animation.easeInOut(duration: 0.8).repeatForever()) { - self.yOffset = 10 - } - } + .animationSimi(yOffset: yOffset) + VStack(spacing: 4) { Text("SYM") .foregroundColor(Color.main) @@ -109,3 +105,23 @@ struct CloudFloatingAnimation: GeometryEffect { return ProjectionTransform(CGAffineTransform(translationX: 0, y: offset)) } } + +extension View { + func animationSimi(yOffset: CGFloat) -> some View { + self.modifier(AnimationSimi(yOffset: yOffset)) + } +} + +struct AnimationSimi: ViewModifier { + @State var yOffset: CGFloat + + func body(content: Content) -> some View { + content + .modifier(CloudFloatingAnimation(offset: yOffset)) + .onAppear { + withAnimation(Animation.easeInOut(duration: 0.7).repeatForever()) { + self.yOffset = 10 + } + } + } +}