From db45b991f3b359b512604a94ab01b457cb8a62d1 Mon Sep 17 00:00:00 2001 From: CJewon <112820744+CJewon@users.noreply.github.com> Date: Mon, 18 Nov 2024 13:46:46 +0900 Subject: [PATCH 01/10] =?UTF-8?q?Revert=20"[=EC=B5=9C=EC=A0=9C=EC=9B=90]?= =?UTF-8?q?=20Sprint4=20(#155)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit e46d37a17fb6acf41c63dc0a4c66148acc4f0e9b. --- css/login.css | 232 ----------- css/main.css | 363 ------------------ css/reset.css | 129 ------- css/signup.css | 243 ------------ img/Img_home_top.png | Bin 56736 -> 0 bytes img/banner-img.png | Bin 67116 -> 0 bytes img/close-eyes.png | Bin 835 -> 0 bytes img/google-icon.png | Bin 1619 -> 0 bytes img/hot-items-img.png | Bin 13620 -> 0 bytes img/ic_facebook.png | Bin 386 -> 0 bytes img/ic_instagram.png | Bin 396 -> 0 bytes img/ic_twitter.png | Bin 334 -> 0 bytes img/ic_youtube.png | Bin 286 -> 0 bytes img/kakaotalk-icon.png | Bin 1490 -> 0 bytes img/open-eyes.png | Bin 720 -> 0 bytes img/register-img.png | Bin 10603 -> 0 bytes img/search-img.png | Bin 27707 -> 0 bytes ...0\353\213\244\354\226\274\352\265\264.png" | Bin 3784 -> 0 bytes ...0\353\213\244\354\226\274\352\265\264.png" | Bin 1519 -> 0 bytes index.html | 145 ------- js/inputFocus.js | 76 ---- js/login.js | 0 js/signup.js | 125 ------ login.html | 80 ---- signup.html | 112 ------ 25 files changed, 1505 deletions(-) delete mode 100644 css/login.css delete mode 100644 css/main.css delete mode 100644 css/reset.css delete mode 100644 css/signup.css delete mode 100644 img/Img_home_top.png delete mode 100644 img/banner-img.png delete mode 100644 img/close-eyes.png delete mode 100644 img/google-icon.png delete mode 100644 img/hot-items-img.png delete mode 100644 img/ic_facebook.png delete mode 100644 img/ic_instagram.png delete mode 100644 img/ic_twitter.png delete mode 100644 img/ic_youtube.png delete mode 100644 img/kakaotalk-icon.png delete mode 100644 img/open-eyes.png delete mode 100644 img/register-img.png delete mode 100644 img/search-img.png delete mode 100644 "img/\355\201\260\355\214\220\353\213\244\354\226\274\352\265\264.png" delete mode 100644 "img/\355\214\220\353\213\244\354\226\274\352\265\264.png" delete mode 100644 index.html delete mode 100644 js/inputFocus.js delete mode 100644 js/login.js delete mode 100644 js/signup.js delete mode 100644 login.html delete mode 100644 signup.html diff --git a/css/login.css b/css/login.css deleted file mode 100644 index b5d0be368..000000000 --- a/css/login.css +++ /dev/null @@ -1,232 +0,0 @@ -/* 모든 요소의 크기를 테두리 포함하도록 설정 */ -* { - box-sizing: border-box; -} - -@font-face { - font-family: "Pretendard-Regular"; - src: url("https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Regular.woff") - format("woff"); - font-weight: 400; - font-style: normal; -} - -body { - font-family: "Pretendard-Regular", "Noto Sans KR", Arial, sans-serif; - display: flex; - justify-content: center; - align-items: center; - height: 100vh; -} - -.login { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - width: 640px; -} - -.logo__container { - display: flex; - justify-content: center; - align-items: center; - width: 396px; - height: 132px; - gap: 8px; - padding-bottom: 40px; -} - -.logo__link { - text-decoration: none; - color: #3692ff; -} - -.logo__title { - font-size: 66px; - font-weight: 700; - line-height: 89.56px; -} - -.login__container { - display: flex; - flex-direction: column; - gap: 24px; - width: 100%; -} - -.form__container { - display: flex; - flex-direction: column; - gap: 24px; -} - -.form__group { - display: flex; - flex-direction: column; - gap: 16px; - width: 100%; -} - -.form__group-input { - height: 56px; - border-radius: 12px; - border: 0px; - background-color: #f3f4f6; - padding: 15px 24px; - width: 100%; -} - -.form__group-input, -.form__group-input::placeholder { - font-size: 16px; - line-height: 26px; - font-weight: 400; -} - -.error { - border: 2px solid red; -} - -.email__error-message, -.password__error-message { - color: red; - padding: 0px 16px; - display: none; - font-size: 14px; - line-height: 24px; - font-weight: 600; - transform: translateY(-8px); -} - -.form__group-label { - font-size: 18px; - font-weight: 700; - line-height: 26px; -} - -.form__group-input-container { - position: relative; -} - -.form__group-img { - position: absolute; - right: 24px; - top: 15px; -} - -.login-button { - width: 100%; - height: 56px; - border-radius: 40px; - background-color: #9ca3af; - display: flex; - justify-content: center; - align-items: center; - text-decoration: none; - color: #f3f4f6; - font-size: 20px; - line-height: 32px; - font-weight: 600; - border: 0; -} - -.login-button:hover { - cursor: pointer; -} - -.social-login__container { - display: flex; - justify-content: space-between; - align-items: center; - padding: 16px 23px; - width: 100%; - border-radius: 8px; - background-color: #e6f2ff; -} - -.social-login__icon { - display: flex; - justify-content: center; - align-items: center; - gap: 16px; -} - -.social-login__container > p { - font-size: 16px; - line-height: 26px; - font-weight: 500; - color: #1f2937; -} - -.sign-up__container { - display: flex; - justify-content: center; - align-items: center; - gap: 4px; -} - -.sign-up__container > p { - font-size: 14px; - font-weight: 500; - line-height: 24px; - color: #1f2937; -} - -.sign-up__link { - font-size: 14px; - line-height: 16px; - font-weight: 500; - color: #3692ff; -} - -@media screen and (max-width: 767px) { - .login { - padding: 0 16px; - width: 100%; - max-width: 100%; - margin: 0 auto; - } - - .logo__container { - width: 100%; - height: auto; - padding-bottom: 24px; - } - - .logo__img { - width: 51px; - height: auto; - } - - .logo__title { - font-size: 34px; - line-height: 44px; - } - - .form__container { - gap: 16px; - } - - .form__group { - gap: 8px; - } - - .form__group-label { - font-size: 14px; - line-height: 24px; - } - - .login-button { - font-size: 20px; - line-height: 32px; - } - - .social-login__icon { - gap: 16px; - } - - .sign-up__container { - gap: 4x; - } -} diff --git a/css/main.css b/css/main.css deleted file mode 100644 index e99794658..000000000 --- a/css/main.css +++ /dev/null @@ -1,363 +0,0 @@ -* { - box-sizing: border-box; -} - -@font-face { - font-family: "Pretendard-Regular"; - src: url("https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Regular.woff") - format("woff"); - font-weight: 400; - font-style: normal; -} - -body { - font-family: "Pretendard-Regular"; -} - -a { - text-decoration: none; - cursor: pointer; -} - -.header { - position: fixed; - width: 100%; - height: 70px; - top: 0; -} - -.header__container { - display: flex; - justify-content: space-between; - align-items: center; - box-sizing: border-box; - margin: 0 auto; - padding: 9.5px 0px; - max-width: 1120px; -} - -.header__logo { - display: flex; - align-items: center; - gap: 8.5px; -} - -.header__logo span { - font-size: 26px; - font-weight: 700; - color: #3692ff; -} - -.header__login-button { - width: 128px; - height: 48px; - background: #3692ff; - border-radius: 8px; - font-size: 16px; - font-weight: 600; - color: #f3f4f6; - display: flex; - justify-content: center; - align-items: center; - line-height: 26px; -} - -.main-banner { - margin-top: 67px; -} - -.main-banner, -.sub-banner { - background: #cfe5ff; -} - -.main-banner__container, -.sub-banner__container { - margin: 0 auto; - width: 100%; - max-width: 1110px; -} - -.main-banner__img, -.sub-banner__img { - width: 100%; - height: auto; -} - -.main-banner__container { - display: flex; - align-items: center; - padding-top: 200px; - gap: 7px; -} - -.main-banner__text-container { - display: flex; - flex-direction: column; - gap: 32px; - padding-bottom: 60px; -} - -.main-banner__title, -.sub-banner__title, -.feature-section__content-box__title { - font-size: 40px; - font-weight: 700; - color: #374151; - line-height: 56px; - white-space: nowrap; -} - -.main-banner__cta { - width: 357px; - color: #f9fafb; - background-color: #3692ff; - height: 56px; - border-radius: 40px; - display: flex; - justify-content: center; - align-items: center; - font-size: 20px; - font-weight: 600; - line-height: 32px; -} - -.feature-section { - padding: 138px 0; - width: 100%; - margin: 0 auto; -} - -.feature-section__container { - display: flex; - justify-content: center; - align-items: center; - padding: 0 23.5px; - gap: 64px; - background-color: #fcfcfc; - max-width: 100%; - width: 988px; - margin: 0 auto; -} - -.feature-section__content-box { - display: flex; - flex-direction: column; - justify-content: center; - align-items: flex-start; - gap: 12px; -} - -.feature-section__content-box__label { - color: #3692ff; - font-size: 18px; - font-weight: 700; - line-height: 26px; -} - -.feature-section__content-box__title { - padding-bottom: 12px; -} - -.feature-section__content-box__description { - font-size: 24px; - font-weight: 500; - line-height: 32px; - color: #374151; - white-space: nowrap; -} - -.feature-section__image-left { - order: 2; -} - -.feature-section__content-box--right { - text-align: right; - align-items: flex-end; -} - -.sub-banner__container { - display: flex; - gap: 69px; - justify-content: space-between; - align-items: center; - padding-top: 143px; -} - -.footer-section { - width: 100%; - height: 160px; - background-color: #111827; -} - -.footer-container { - width: 1120px; - display: flex; - justify-content: space-between; - align-items: center; - margin: 0 auto; - padding-top: 32.5px; - max-width: 100%; -} - -.footer-ul { - display: flex; - justify-content: space-between; - align-items: center; - width: 100%; -} - -.footer-ul > li a { - font-size: 16px; - font-weight: 400; - line-height: 19.09px; -} - -.footer-ul > li:first-child { - color: #9ca3af; -} - -.footer-ul > li:nth-child(2) { - display: flex; - gap: 30px; -} - -.footer-ul > li:nth-child(2) > a { - color: #e5e7eb; -} - -.footer-ul > li:last-child { - display: flex; - gap: 12px; -} - -@media screen and (max-width: 1199px) { - .header__container { - padding: 9.5px 24px; - } - - .main-banner__container, - .sub-banner__container { - flex-direction: column; - padding-top: 84px; - } - - .main-banner__container { - gap: 0px; - } - - .main-banner__container > .main-banner__title br { - display: none; - } - - .main-banner__title { - text-align: center; - } - - .main-banner__text-container { - padding-bottom: 211px; - gap: 24px; - align-items: center; - } - - .feature-section { - padding: 24px; - } - - .feature-section__container { - flex-direction: column; - align-items: flex-start; - background-color: #ffffff; - padding: 0px; - gap: 24px; - } - - .feature-section__content-box { - text-align: left; - width: 100%; - gap: 16px; - } - - .feature-section__content-box__title { - padding-bottom: 8px; - font-size: 32px; - } - - .feature-section__content-box__title > br { - display: none; - } - - .feature-section__content-box__description { - font-size: 18px; - line-height: 26px; - } - - .feature-section__content-box__description--right { - text-align: right; - } - - .feature-section__image { - width: 100%; - height: auto; - } - - .feature-section__image-left { - order: 0; - } - - .sub-banner__container { - padding-top: 201px; - gap: 217px; - } - - .footer-container { - width: 536px; - } -} - -@media screen and (max-width: 767px) { - .header__container { - padding: 9.5px 16px; - } - - .header__logo-img { - display: none; - } - - .main-banner__text-container { - padding-bottom: 132px; - } - - .main-banner__title, - .sub-banner__title { - font-size: 32px; - line-height: 44.8px; - } - - .main-banner__cta { - width: 240px; - font-size: 18px; - line-height: 26px; - } - .feature-section__content-box { - gap: 8px; - } - - .feature-section__content-box__label { - font-size: 16px; - } - - .feature-section__content-box__title { - font-size: 24px; - line-height: 32px; - } - - .feature-section__content-box__description { - font-size: 16px; - } - - .sub-banner__container { - padding-top: 121px; - gap: 131px; - } -} diff --git a/css/reset.css b/css/reset.css deleted file mode 100644 index 45a05ecf8..000000000 --- a/css/reset.css +++ /dev/null @@ -1,129 +0,0 @@ -/* http://meyerweb.com/eric/tools/css/reset/ - v2.0 | 20110126 - License: none (public domain) -*/ - -html, -body, -div, -span, -applet, -object, -iframe, -h1, -h2, -h3, -h4, -h5, -h6, -p, -blockquote, -pre, -a, -abbr, -acronym, -address, -big, -cite, -code, -del, -dfn, -em, -img, -ins, -kbd, -q, -s, -samp, -small, -strike, -strong, -sub, -sup, -tt, -var, -b, -u, -i, -center, -dl, -dt, -dd, -ol, -ul, -li, -fieldset, -form, -label, -legend, -table, -caption, -tbody, -tfoot, -thead, -tr, -th, -td, -article, -aside, -canvas, -details, -embed, -figure, -figcaption, -footer, -header, -hgroup, -menu, -nav, -output, -ruby, -section, -summary, -time, -mark, -audio, -video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; -} -/* HTML5 display-role reset for older browsers */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -menu, -nav, -section { - display: block; -} -body { - line-height: 1; -} -ol, -ul { - list-style: none; -} -blockquote, -q { - quotes: none; -} -blockquote:before, -blockquote:after, -q:before, -q:after { - content: ""; - content: none; -} -table { - border-collapse: collapse; - border-spacing: 0; -} diff --git a/css/signup.css b/css/signup.css deleted file mode 100644 index 2edde8e49..000000000 --- a/css/signup.css +++ /dev/null @@ -1,243 +0,0 @@ -/* 모든 요소의 크기를 테두리 포함하도록 설정 */ -* { - box-sizing: border-box; -} - -@font-face { - font-family: "Pretendard-Regular"; - src: url("https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Regular.woff") - format("woff"); - font-weight: 400; - font-style: normal; -} - -html { - height: 100%; -} - -body { - font-family: "Pretendard-Regular"; - display: flex; - justify-content: center; - align-items: center; - height: 100%; -} - -.signup { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - width: 640px; -} - -.logo__container { - display: flex; - justify-content: center; - align-items: center; - width: 396px; - height: 132px; - gap: 8px; - padding-bottom: 40px; -} - -.logo__link { - text-decoration: none; - color: #3692ff; -} - -h1 { - font-size: 66px; - font-weight: 700; - line-height: 89.56px; -} - -.signup__container { - display: flex; - flex-direction: column; - gap: 24px; - width: 100%; -} - -.form__container { - display: flex; - flex-direction: column; - gap: 24px; -} - -.form__group { - display: flex; - flex-direction: column; - gap: 16px; - width: 100%; -} - -.form__group-input { - height: 56px; - border-radius: 12px; - border: 0px; - background-color: #f3f4f6; - padding: 15px 24px; - width: 100%; -} - -.form__group-input:focus { - border: 1px solid #3692ff; - outline: none; -} - -.form__group-input::placeholder { - font-size: 16px; - line-height: 26px; - font-weight: 400; -} - -.error { - border: 2px solid red; -} - -.email__error-message, -.password__error-message, -.nickname__error-message, -.checked-password__error-message { - color: red; - padding: 0px 16px; - display: none; - font-size: 14px; - line-height: 24px; - font-weight: 600; - transform: translateY(-8px); -} - -.form__group-label { - font-size: 18px; - font-weight: 700; - line-height: 26px; -} - -.form__group-input-container { - position: relative; -} - -.form__group-img { - position: absolute; - top: 15px; - right: 24px; -} - -.signup-button { - width: 100%; - height: 56px; - border-radius: 40px; - background-color: #9ca3af; - display: flex; - justify-content: center; - align-items: center; - text-decoration: none; - color: #f3f4f6; - font-size: 20px; - line-height: 32px; - font-weight: 600; - border: 0; -} - -.signup-button:hover, -.form__group-img:hover { - cursor: pointer; -} - -.social-login__container { - display: flex; - justify-content: space-between; - align-items: center; - padding: 16px 23px; - width: 100%; - border-radius: 8px; - background-color: #e6f2ff; -} - -.social-login__icon { - display: flex; - justify-content: center; - align-items: center; - gap: 16px; -} - -.social-login__container > p { - font-size: 16px; - line-height: 26px; - font-weight: 500; - color: #1f2937; -} - -.login__container { - display: flex; - justify-content: center; - align-items: center; - gap: 4px; -} - -.login__container > p { - font-size: 14px; - font-weight: 500; - line-height: 24px; - color: #1f2937; -} - -.login__link { - font-size: 14px; - line-height: 16px; - font-weight: 500; - color: #3692ff; -} - -@media screen and (max-width: 767px) { - .signup { - padding: 0 16px; - width: 100%; - max-width: 100%; - margin: 0 auto; - } - - .logo__container { - width: 100%; - height: auto; - padding-bottom: 24px; - } - - .logo__img { - width: 51px; - height: auto; - } - - .logo__link-header { - font-size: 34px; - line-height: 44px; - } - - .form__container { - gap: 16px; - } - - .form__group { - gap: 8px; - } - - .form__group-label { - font-size: 14px; - line-height: 24px; - } - - .signup-button { - font-size: 20px; - line-height: 32px; - } - - .social-login__icon { - gap: 16px; - } - - .login__container { - gap: 4x; - } -} diff --git a/img/Img_home_top.png b/img/Img_home_top.png deleted file mode 100644 index 7ce56caaa1ed71c95c2d7fb7ff44b9ef8b37f76d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56736 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 N(H*nf<$BIB{{y#m?gRh; diff --git a/img/banner-img.png b/img/banner-img.png deleted file mode 100644 index 58b29043e9202c0d3aa13b6d8def8328f99ee717..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67116 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 N002ovPDHLkV1mIIh1~!E diff --git a/img/google-icon.png b/img/google-icon.png deleted file mode 100644 index f75dc76162756aee1e04293796c7dd74ef5f9ef0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1619 zcmV-Z2CVssP)`Td_iJ} zBxpiHfPnFm7%CFP3$zuAkpx*J(b5VmrF%QK@&8YE+udH^oZW4k_$A#=X6K*t?aX&( z{`p2h2_U5m$1ST)1?m-`T2Yj6raq=fao!a&R<3F7R3Af;P*5QHOtW5>%A<HR12{8cNJTV31!EEEbwF&;=-R>ZWdL#Aa*%XXyey3&>Y;5e=q!?9i; zroA3xg}y$so*!b-!yWL@H%Aap$(<$Wmi~c-m@4v7r9K1EVU( z4%~N!^j>}@3PCa{>(Zuujx{%4;Af@N=DF)hL>YZ#oiQo^xp0FJkuH!@vLtiq| zGB_d|dV6l65cjz`b%A#eg|57sF6K99r)oX_^~UMeNXNbb~_n zT|@G~9+LAe_~1kkOTiIC@()!#w^I zf}r}{k6@z8>N|D!9>gNF~kh?bu}#_{e>n68DiW8&ncGx+4xZan+-8}x&E@?x6q zGvF7Tv9V*6;Y!CM%i1Co(ah&5zj)>Qw{Wbh!*_c@Gg99D0<_dTtY2kd-74L8tW7zw z3)x(z>n$EbN+|Y|n}Zkysg zB0$PHabZ6NbT=4k1SbA)Ef%A zz~PbRsVUVp!D!&V+5Ah96lI}?b}oqY7P^ZVlPd%6ll!J?iC0lduscLAV_T_+XYV$6 zRCzhYSbN49C<`7%UX?qD0p|^5oe2w*7pcIN4efccGHoWEjoL# z=%t8~(?q$?Fbw~xUMUFYg2;qz+g{A4THAH&a<6X57mJxGx1+LBkCx)<_CE+H$-s=} R`>p^0002ovPDHLkV1jon2n+xK diff --git a/img/hot-items-img.png b/img/hot-items-img.png deleted file mode 100644 index 249652e34efcc51c79498d38b53dca73b4ab4409..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13620 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 diff --git a/img/ic_facebook.png b/img/ic_facebook.png deleted file mode 100644 index a3e343c77d9341cf03b384183500b83902fe8e3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 386 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`j)FbFd;%$g$s6l5$8 za(7}_cTVOdki(Mh=P*c9qjCa51t<_BIQLjb$QWi|nO5{^%5?i!% z7xz!U;3G9#oOUmixUX7v?Q&-7>XsSp&WShQH%|Ll-?g`MtL-;)lEILhYWbyF8ed`NpS6Zm>^WZ zz&F7`mVxU4WAO%O#svw*3>q9KO`k?g<2`o1c=~J8xA(F?r?LJpI_IVIsG-gAc)9rV zJFL4B1iAbJA7y{AyRTYt;Jb#-M#*oFd%n)r*^y3o(9aH)mEWWyG@wL7&_ zcU}(&Zj232(|E0x+oUti*}$!sDYxm^ibTcAcjtqO?oLyX}f?|7SnH zcS~mLBF)s(rhOvOJD=IN{5#!KD_Ut(W%H2FK3NXe7PO$Gw3>-`>Z^c-L-V=+I# zTflr{Ng-1q(;Wx11eO~QYIs?-r(Am^|98@KwYMLuu4}9QDs}NOFn({CGQlKxs=%Y9 zwZ4s3*gnX{*fZ)-M=u&o>irM^Lwtzu8%(01TjphmoL9>UAAT+kC$&x z|16p3#n0aQv?ZSmn(lo&^I4l{t^4K~55t#lpRj|cG`VQSV~ZztQy; zO`LIAUBRGLj&XC6skXK?=hQd$$Mt4N^2_E~_SA6*&7VGFde=jSrPoUQ58Lj382|R= b`${G^u?U^U1i5&icNsig{an^LB{Ts5!Ag3S diff --git a/img/ic_youtube.png b/img/ic_youtube.png deleted file mode 100644 index 874150b0bad7e30db4ccc41a1f7ece06851d4bd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`j)FbFd;%$g$s6l5$8 za(7}_cTVOdki(Mh=6DAShYWaJ^aYtyn2ngEFNDru zFl*qIXbe5YmNUVCF_kGfIQ&)kqg6j&PhR)^@jRi^h8ryB)O2WUDAoD6w`#>7>oZ@{ zzMk9Zct}b6V%4OSN4F+a=pYWjyH&Y(+v>jNM0Sw~jgSS-8#nScI1nLdejn}nN1CtjWZ dUvxvxzP{y-PUVrw$w22bc)I$ztaD0e0sv^0Xp{f| diff --git a/img/kakaotalk-icon.png b/img/kakaotalk-icon.png deleted file mode 100644 index bd767800535807645a71ebf12a6e340d942e82ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1490 zcmV;@1ugoCP)^Kzar43FneS!lBKTBzNEpkxHdDMCt(t zIM?p60@ZG+3Rjh05DeNxHZ>krSO8LMD zJW00ormmnO=#qD(gfMggl0n>6_DuB#R?|B2jzr1Cd0x85K+eE9KmyDcMSgA|5YO1j z*%CcW#r%>N*KsjFoFkA#nh8(DPP@F-gIp>W6ugu;Z;}N1AEc06YAo1Frm04WB;%#^ z_Jifj$Vee0%>wNd(Klso8)Uffm?zz!!Sob37fh0%IP9mw4c2TRO3{76Bo&B*hxgsB zzgIIonOyK<3fe$6TZXNzmyr170Csi`VQ;qpxtvhX412S696sZxdM0qix^YQ`` zTw3@C&VtG5_hA|d>%h{g@=@k0I#wMr^X*%|pP3|q)}Xa=xw50Ii>> zt+0q|JGlUvpEJh7c0!L=Uev}Ev1F?HKQiCM&3Dzd%m*#!j1yAu*}afCE1!if#$K0&6Qwx??{mw^m){nawie35PnC=QSPL<1vA*E z=Ds11BK#T7bJ=4pZf<7577T(I^~`T4v$K8dn~#_Oh5O(BrN&R!_SM+@+yEbv-rRTv zq0n1)OQ9zHFgWOe8I1V7y<+V?eXIjhFYmNNvdkQf4xrX^u!1f^=B(G`Nzexo!IOch zk*2)dNrKGPlqmWd`Cg?oUaBSVQ0Pj_wJ3Xx;>X;&J=C~X^`q_JuIv_DYnA+MZ?|~r zKKWQE)UU>CPySO^Y$hN&Hh}YeHJ`onfx2d^{z&f9kEF<_$@i%Q6HFT`RFOfVB11mV zN@C*Xd$?euvs09kxk;l$YO$KWf@WR?)Fu)jH=uwcvu

RF=tQ1w4AVtKO@8Rs~;N zZEXdm04dY#;Q9FXIEdK^PETz&1XVXdq?cDdv6aEhgtZ>of&;#p9oF)rPM}djfiW59 zWx;-M5^NR#-2f?oGJz8~N1`QgCo2JE4+@e8`1QUvo8M-jj6s@=j%j7aOz-g8Gd>Vl z&EVm}lFl1uwc8=mor2z7Uis8E-!=e`fas#yJnEoOz3ZR}YE-_S_)S+F^Q;HE`?nQI z9aA^(6a~`={G4>tggR*4io|udBFVb?Z-E*Xqo3DmIGK0IM|-B;mPNynBt|=tq_Nw& zSuV3V)M{8~0m`8k$Y)hIG;$fbjiM}1S>sv>C9R?#%n0+B4@N!~z+=?6U zb*Ejx+0oqG^{{Q6>BWNRF?F*+C!pvqhy&A(WJOLBq}@x*wTS0IVdw%VnY&!#9@TLj z`L=()q2p`jf*IVx#_;8~G6VS`2eHIBtm+c9&^FO}9R3--hKE>TCRte00W1T*MV?4u svxC1Y@g!sAG?9B!*qaAF~q5uE@07*qoM6N<$f@7}K4gdfE diff --git a/img/open-eyes.png b/img/open-eyes.png deleted file mode 100644 index 32765f0b2c9af2a51208296273b255d5298f4aff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720 zcmV;>0x$iEP)8~qW#7Ihzvm3lHZ)M1t6Q9 zj(WjA6IfQWuzd8h35X2@DBR&TXNul%5cuvw`V`BD zEh1>IldMV;H#pwnkN4UqMf6T}1$)<}U~F(Xwd zzN&4d?M%QiDgA}*7%Kwbdp9Lk8acd?(fJ2Askt!L37E#VNi8Oy``^=cszgin>Z|8Y zR|N4v@G2=&HaZPZr6`u`C1p$c< zU5@d1)PJ51o;4)5_CS%)(aneXj@r;-xmrSC<~0g^)pYCNNDre>Hq~4Yo=Fe~vkx7* zX~mfmkq~h5ILc2InPna6zqHWMG^o%^?}Xc6D0=ZctO>KRv;5&JkymWKtgFp35JEc2aW@+)D5O0000AP|G*b2Tss zM6Ck?Q8oR21$ZLNeWC&Uy6XPi#0vzXW2XF2fl%q}z(Xo8u*MTmNk1nM_~WwuW8KFf zP6?5zIy5-(FD*=ZI}TcvC4 ztb51z?r$W&f&G}6y5LR_i6Z*VC?T4*&jYYfr^ADTA8CQ>=lwfm_=VAXb(WaU#I9~8 z%j@CzERkos2I23G{sO5QJ=jioFwKM5tqytet82M8Ma6`e86NJc=(+T*xWIlP22JA+ z2Z0WPpXB^zJ45V#4-bXRMaje_Bv?u)Jvv3az6x5qkM5tOfn1S)+4F=yaI=nfXnZ{9 zMbg5^4h=|EOsGG=69zkA-oFSC5J&fbB~H%&0fF96q@EqEfBfi7IP|narI~2C)U|6; zfmHKzeutdnWze4s_UMOxy#0eOy9{#w(ylr5s8cMtw9g`;$us)LzSf%b7r)Njw5KeBq8=a1VN!(LR3k%X;wTz~)+vM%G#a ze+{`?jo266FRo}D`)D9Fsy0)BEAL*$+1x^_n&qbaFb_O|)D8QoJT7pBw$r#VfUloD zLo~8T?`5iJ*SwcT?nSHq0Z-Bg`M%8xe5#_2pH5bVuyK0puqsVA-EKlHLuaMfkqCas zMb4|?Uf9r2;uA%@+XF_uNg9P20igmfo^>{X(xXr|4A~rGYIz;ll{YDiyM#&ol34gUbc? zuO<6y_-F3Sp<3o@{)L|Xn7O*zJ=Mr03Wu2)uU{9C6oGHP{QWQlqvzOaYP>E|JN-!C z;_h8BLU3)_uxTL7s;EgvO@ZD;g%c6^L-_C$Y{`aW(>}gczwkC*iSrDZ}+$B zsg;;k4rT-_B+A90vE#wA)O)!={_V^tk4+?J)Nl;p({(>%Y3tRT^VHOGCQ@z~Gh*4h z2C8YiZtk`5mW$zXLBn*5RLiASNlWf4ty#BgnMf6d-O$rNUsF*=&SJzZ6Q~m_HV~Esdk&M-07MY~ELelZC-1HzG%e3%`k8DO2o_%{iKH7C= zHFy1#_c}bG=8ekpu$B*@UZwjzrg`>0#@}KbHaLeuG*5YdRt(J*34bsiF}K1_v^@>9 zRl|r(;RiiolgiJ(`o@HM&ApCcyK%FeJ_Pe-CFMEaq;ZCHi`v7X-158o+W(L)g(%|v?r>m=LVWPP(Txt-s_762AL4JeFzPl?SU>6ab#2E~R*{CV5B3U^r%i|2_Yy+rScy>`yZ^3=-H z!RbR;(QAj~0YuYvN>NFZ;f(7hF?5!6^e?8+IY$mLUf-Sm6>NAt)qgN*1nn1B@=!$I z97XPd(3M|UhH|@Gw_*x=5@}S*{RK%}#28|(7Gx@p5&4e2TlgoG8p5O{Qm(~eVh1g1 zkaXKx3n64dJu|j*3i+)M-D%Z2ja9%8BC}b14Ml{y)+*|I2718PEG34I@7xP-uI{zB zUVSZ==2H8{*L5}Y=AKFmjSKW2aVcz1m9e*g-;i8kcOUr**LGGdH->mFAd6#1HR3(j zj(DpBmzGa)w*`cK5eW1~9?ow+y)^pgvtDgC(?a32MrC<+32D|rTEO|5Ar3jmXd84Z zY!zoCQT?x+%}%WL{#+O#* zVk)G~&EB!0t?oc!^A?vWTTaviZngzOJo|P7`bn}-VTq1CQ~bDz>AWa>S>pRiHNX0F zrBF625Wk76$?>xYpUq>p7PeBQEyV7i>AFIkCUoQ!669_auvr_Vpr>$l5KUHaT&4<% zDiC0?V3a#Mi=oLZo%a6cU3{P6pQEY%^%(8hrR9p(dM4Z+wpdbYQs`)b4K;-0e6|UD zkn1I$J<&vckouFxE&6Ognd51xlER5$UpSIzpB49==Ukj|#@FUYd>`%{LCO>x<4NVl z-*JVnlpIYm$b2>JS5fH?+Av)lwh0|#s&$RSB`DrdAeF?|wva2S{Cs*BE6csR^#kUg zh<#=#SLAXrwt;&=h==Rd#X)~aEU7ngqWJb(TDtRFVe>z4KiWyrOM58$%F@);b77gS zq;aRAIKbrFH|!9#eCPJA^`8;*#9e$X{a@N2;%T2(YV%^EFO+5Fd~R0-w+`Eoa0-pQ?I#iBj|)rJQh4r)sy=dj@kpU+I|-;w4j?1416}RDEqNcNVhK+>qJIcyRcP zUj(YDEvHq|&B=koV<9iBu;_M4$+rxAYgYw?T`X+h>~1Emy!nu+z+y1rJzT%!AO|;N zl9zG>t3B*>rqkXhqz|14Cf|0ix+}sbewgiK>iK=%)+KV&u+d>Tn?lC3op7|h zA7d1)mlRR&2ESu{>Z>{nRPUnX)~a`7OaM|M&f+FukbmpX&+n&vlA#V7l{;yM8+wJ( za!%4w0RWl0e&c*nh zp0JStaa~<~o{}$ZYC>o86U3u-5e@6r)FD)rF2|CE!}f#fP4FqBXa6ftKnq%k2><-Z zr+aRUx-5&uK3s7v2&-$*{gN}?0j@ViTkZb1%NRIc)&t;1mi zr#T|HuYO^4v*dLICL%eVd57@UQY<{LMKB!Af{I7FHWGh+_jK^@o_PA04!sNlJBy0Q zeaPQ9<)fAlX&ufZX!;gk)p^RSi+WA?l&1+k6$#Ic%)|x2M*G7mJ+@T1MdysFF`Wd# znf(w)_!j?B#5&stttBx^ZOb#8aV6|`J@^5ViSPQyN%9|XX4I!NC zRTw^8XjN`T1XDBOQsv&vdSC28Y;66!d+Ashk<^f&cdef@1-|}{-t76= zGg8<&EYb3ZOjbXT`xAUcw*2fFBie+oP&((*RUPwf2V%-<22uDD|DU_$uLT!3K8lXW z{$9A>kz5<3ggyK^)O`UjtK!dW;pex(6!B#hH6coev)PjnG3B6jeaSWe6P zJsqSn-bVlrJtv8os=^a@k1tyqtI9t3^-t~UC**DU@$}awDOvbwUO$M->C)z9Nmv+ z*9Ua#izGSEeH7TTn6c`#x55x!m8v6JNHm35Gj2B1HU=4dTN7Yi59ak1w`u+$2~Uj3 zHX;v%r@++4AsVZpqfc(qvF$${bmWysZ0(7Ye%437ysyFz-`z0Utx4tH!N-;*#oKCk z%xutD&StLi2?a3$d|6NgQmUg9d&t$`6)llmEnI=*Z!<^ZW7gi4_?z0V3ntfl|(s{CxN zok!as)hE5lm(_M?um0)p;*Ww7X>5+g=xmQRP2^4`+;h7k^~;uKNHKCMvE2kcYAQAL zbOg9UqY4QiPr0Tq%7IbAT448YsBTTNUx$PKeFGQ4aMWr%Mwu&J`TUcu%L^$wO=*94 zzlDh(JX8LLWJEG2s1HKCc08=H|CG8-*o1xK`Mtj;9)sJ_WqMfWdY;i%7@-3Oo#Cx!l8qW)e4J{1?6s?2Rq(#=a2TJxZWq(EgV#QJCJMC5mEJ7+sPNB+dM5wVyx+xkklEAjT~(+t_QCa>HB@}<@H1dmlw3RdZV{A!?yhX z)*N1 z^;)MKrxHi)bMH_v=C3Xn%$T(~@52)|b@PDIQ0Mq!+5O`vxCceXyn#c#Lc0q-7;_vglA?I1!Ns>VGh4G>r+C^dqwC` zOhyonlaVCK&3LoY*>m^TwypA}u$0*kw*l*fq3A8mIgNWYk zO%>Jh{W6GPV_CTEu3rwz18zn3@-qivAek!DUtMz_Mgi3c}%p#kak({$-!1 zIy?Z$ll;vSg(HYz-iC<6B@TdHaa-U4-mITKT=;Ng{VR85Uuj?C@@S>f{?mn#w+Us# zV4%)#88K2hvoTTei+akb%vFwy!)P_PQg<+R@D)>EM|ef@9fvVe_I(;vy(G3eMMu|u z`*OMLD&D1i4K~Y%ypH667u8dV%9+WKZupO+=WU`z~+o!Xq7Tf@6v-EZ4yz5BnJdk3+jGOyvBa$;l7sKeIQ=t zz_Rj%F;Ih<8YS}|?a2Sv8gd!rV}BBcW)$vzTFGK#NfEMzL*q976tC1K*7`3 zQyYw(dR@$TxNK%n{oICyGGA_Q4Kg=VYcFhJdeJwHXzwZT;*>J245?aN)mg5 z61Xx%E)c)JZEEwRwJ4Jo=9q^%Q*}}>*2n(GHEg9kaMR2T#QIBmCKl>7CE(&J>$j~W zQkx?Xjy`k_W0Y?AvQyWRIJEw@bVVuv2c2bGb(6NGY1Xo$Y=0OS)Hf%YC8W6OKfFl> zA8Ol0*(?hL^i6@W!Wos0#@<)`Q(K3hJ~R4Z&KRq{IWdQyPYNXj(Dg?zNkZ;*unhuD zj5{elQ#&Ou(JRN%`Y!Y?1B{7DL-;l=Xzc-@i+0<6^Jfa~&3qt-`wZ9r2Ww$STtp;C z&`nrTr)rz>^9_~^clMsk1sn_vSH3n>SN;?|J0AmAcowOjTD7#QecjZu2k#S1^ML*1 zFsIDl`G(uQG6K-fwH7Sgt|B(ZfWMDJVT+C zt@_0*$^9z!@@wX+S&vw^BnORRhm0m@;1jp2qx7`Nzl^VZ@#Ww{a2Z!(VyvFd7I1F#IaB0o0waA_Ne8LT^)MPtM~XEV zs%IyO>9E-xX+&CE*#}~Al7>!g1@%%L=iSVy982>#Po|H9=Z8fI?iUSGmAj)}3icLT zYdUu_l^@7@$4E}Mc)CmXv-hnwLFax>u=}5s%@5xP%WCawIkrySpr!+OytT$&Yb4*a zHX?q)zJMjOB#oAeBu6&xLtphgG#CE*i-7kjsuC+$XU?z_eZbn=F_TdipoWz_-EKJUQo8~yI5B1Zr?l7@hmorMP6-*mOv>M@i}{X zX&2Xh#d>PCUAxxhL3jaElcV758R~OzlR#`7&rKqg!{-+Wp9lCer z-Mk#Ip8PAg2`JYNQQgj8*wM6!qnv(sfWmg;-qUIx8(2rjrDa3zsx+XZYo~jAZiP4o zR9rKfd&n~AN>SHiTjpDR^5oJar77E$_?sd&gwS~_RVxns6b&>D3bX?~ z<(<${8jZj_Q8jF*B4zI7?7H4sxl6uS4BHLD`y*5pC~E1;LraoJr}2$=mZ^(B2oKv+ z^W9^y0J(RY)2xF|6q!c4&aMmLxZNK{qA@cU2O1Iz5{7ser#I5dh`!ZJP+dR+5wLR! zVNwU~dOS3K-V#)AW`L@-?(AW|#T7>rSSICKx64BfrKl>>gR9T_EWce7Wxp*zgKnNX z9ZGTC*w~0k94k#2l5z1T)@%T(#q!8=4hjOoUA%r3eBQfXJx!WEz>J?STZ+{#te~-k zf=4pl-#12i$bJICh!fPnUsaSD$P}>|ijnm_qp{h^unZv9=o>&=JZ$Q*lCrXO^Q$xd z-ObB%RiP9@7j}W_73DqWa;HPhW%sIv10Sp)&ZJU$-wT4&bdEQq0MuxCiVV8F6G&EA zHMGEnIkou#d2q)& zy+Wl$r2xaRi#rtP%UA%txbEP3^2Jp>u==;e?IjI3SkvSE#CJXhdLIH9$v~cxwV!mF(TF&wQlrH~8sPxFa zeo|iuC+9?I?B&UmDD4rxq6i9c{DO9qNqpONLm>J``K#o4{TDkuz^ z7;cYt+ND_BIDBrvhm-sFv+$TX_^TOQz2v~DQ2!gVj=H@TvGap}N1_QCKj zep-)4zO2u!!yAw7HGi#ES{`{03sxU02W|0;u-2^wQZt*co&#ytaC&7i zgp0N)&V9RU!k1iJxHwb#`RW==%YI|fOQX&Qz>yQvmg{~G$euBv6Xt6anP$eusHo!CqFX6cDK4u!n)u_0+K+;64`If_S^59n6e4Ef3in zV3%(L$Dzzl~@)zn^-9IFAF&Oh>@ zzXA*OPXHW_dB-C~KFY-V4jMlmLTBxgE{!z%_)4$&Ds<6$0QD<$wC>k0KnAD$GHQkuC6gcC#0Z`|OveQ%3Cws10)Wn_Q!porInx z*DjWzx`hHA{>My7Q4Ol>5Vzp`9id!N9HbZG};#@GPc_?m1ksb<(J})+*Nd zN}<0~LYPLLwXs&!635$Bpd*vb?%>^xf~L=tc*F)LGL>Jx7dm%+(0}ox!q-2@$AGzd zMRwHswZLxttXi$hPRx$tFAaJao+VxMxW|1gya0gccc_d8j#Fw3-jpUYffyilHV>Rg zT*`36PY$~Pp6Xb3g5U_Ryyi{{cdj(IDfrP%TVN%*#M$X!A^LJHxZW;?WCH56^5SsW zvpQ;I7;!3*BG+f1UeyuVJF*D5y2i+~v)MmZ zSu9!#l$s4LaK{BV&Pj&L!GFfpVwD$?5$g zPSr|XwIZ7ge9J&Lh*~rT@YTTU`F6?Iqz4R%mwgWvzMtk;OpO8I3COG`K(b^97A zdNEUE;M8Y+GrP;w4lHrweD4I@xfW400@Uly)zY&Ll=5oBPO)88hklo+>Cq1nY6v$yGSF1T ze(`Nn2}^oWT0nkZYy^^+J!>=5 zl6pv((799pV10K2X!2{od+>fBMal04nFqOC5!lArH(+O%MS+bxLr3!h$;*1HH&Q(v z=3Y~eu&9pk5e} zlu56p6o3;$#p{lSx=n(1F1L|ou~dpZz({hibEmneUj++w2vMngOo{K!cY762`4LR;GZ}(y#!EL7G7QaA`if4fO)|6$Oj{!JN-uQ!I?~pC-v5k`7x*-_}m?ZbG;teAGlw=v_KaG_dlLWL~`jMP<-q`^4iX`ns)8O~V z9xnn`eRv93RWp0efUD;NoXZ5EqAeCG|?#6kXR)E_fcdO z1~L@Hb+_+fTzZwVlav9i?teb9c9`fnBFaO(!q5XYj+C>!w}TeE(ON@d`iKktk5JR@ zR$1Um1&qL-=CgpMG;p(AgjmW?@JH4GPvucK_KJ7 zrGp=F2%d}j_H)8v+9go%BI}}<^0`-UmN3tKBQ3oalN0A45a^|$aM$_w&!1luY%I4X zeS&zrBP9YKxtZjMpGGBpBpjxUzCK}6Y1~BN9|Yb7f&49YnR(z-6)7uC38r;>_uOuu z+hPa@yMvjRK>jbCI@Ety?3RQ1{7ZXx|fcPv00r9EzEA;ya?e|B~_XgHZOdSXT z0gv|a`vj4ahW$SH38)|{08ufHfArpgH077(hk&S#gn!nDf`G7`6c^%Ga{YAH2482b zuDqFyhG9k@|+};@4+HrD4M>o z@=W|XM~k>nOvuv$%5rgF6*#EaYvf~p^7N_MFW;bx-EG^>+YUV177WK9Jb~l&3+1(U zOLu8N?~W4S?YiaILW<=Y&)dP<7^`X&SDlfnau$9<0%KlOJn&|8hke+M82nW+(KQ*P{u4 z(SA&&)?I(lcvJY~;@gt8+hL)&#A<&>w8_JtZ0C!{{kX6u0n$R!Ocj`sV6_Gj0tub=dM-&Fzq z=X5d7m%#*&qwL(vLr@j6IME3fj#nSQc0K;)&*R<@sh?nY3yUKdt8}ULc+7E+D%heacip<1AO&?8(gT4&#n4_$TTE%Lcjq|KC6O5w1KgS{kghOlfbgrIAD;@a(w%^2e9n2J`cWy%&=w)@93s3@pm|CnJ2^Aok((3DXB zEl@#5M+`L=Gh3mmmn%V(u*{wgCLEKI3c^tiAG~xjN)%nWk*Jusv7$_;OVu5jegPy; zQWqB+zAe5=ms5_nwP0RSF+W)nxj0JhrqKANHTe`5L8L--K~@cLd+`n)v^#2j|LuXj zc&zX0a4H>_&BRVA8?Q)R+N~^c)aF&RvUhAA@1k!ow4mK2?jLlFE^LPwCX={yhM+Us z3_r-B-T)b~^j3169D{f^5j z>HD9a2_l^Cw6|I%E9wb9gYqZo-JhKtCHIgr7h`rrQKTWFn{3Y#iXYWCDQ&6fMO-w;mm z29ho>VAoDX*~U(wB;%AfU{?wzklMeFfF~EE5qo&HmB&rLA!j*Lz&jy5h=a8t2llCh=SW;YK zFupXF|7?N|PHs{98WiC0b$$w!!9aj|b${V`1~!+nLF4mS_IR;`wADUNuaVmRV-Rk1 z!pQ99y@s`UaQ>#Z&&j|x{(!;kwLcvR*(hJ%2M34HEga*>9|indO!MQi7kr>W$SaU*$_q_9EMI45L##RJBO4dzy0eQd31_TGen1*`4tw$e7^Q7 zz@qGH#X5K%W?XE~>hREop3|UJYNW+sfq$s29{yKtq)S_IrA%&6*-Tl*N;9h4{K)0_ zP|rM*J(>MDk}f#SeCC=oP!IQ|uI zHHwsy!KMb=^LeRg)|*_Q!gVQx(66j-4v$AjepR8x7?)cm)XZLzjw$1}a74%E$Bj_< zX`iVw@a3zB#^R)!r&?|qob`o8tp*DAWdLcIXM5Cyq~jGS2T>kVHJTHVD)+5CHr^qW zzLlbL;W&fR%u(P%s}Xl68R9z^OFL#aZE$(cuDzH9n$Y+uUA0pZ(Ux1=|06(kyt2vB zDz-N$B+D@%Nz1K^-RJR7n9+y!*eEDknuRS^^7$<~#709sln38?CqOAYcvv%d$hO41 zBSm(0jywuhp{A&3QaYQ|65~}tfgKB$+#e0#*Nb1gGFqXX=ZEjJ$36NPL^g&Mk^-`b zmy6j4cpX*~09?MO!s=LUsmyt~`lFEjIAki}5`c;F`TH73`FGUXe8f__u;hMJ~p59_M zVU^WnRz2vQ_LiJgKQGW`so#o^=LsiU2(59NSb{S#>)+Y>;ch1M%7+(t_3BrP_L*u?2v^u!n$*ZvP{y#IWe z^-cyyy2&yg%qhR?SyQX9d{4Tbu+}tzZIH1=o9x;a`!cT7?}Z-Jl<|b1q<`5MX@>Ud zlSvVEpP3KFSQ9^w&S9;fPK0X;mLx@^54VEG9#Sq5HT!aE$1@bQ$p5hZeV4i~YpY}@ zU~EMSE{UN};w?rjTGUu%ZJd3`x{BS)?*X!; zZ%br2ycUuuoYm;*#L*g*eXk?>P5Ax58{sX5uWbrZd9(RQ_K;|uobNt+*%% z19{)mBqf88i)d_ctVDJ9$Z;eob?;Xnz1GOxRY>(?sUQZvxg#M7XZBUgf5xei3gh;} zQXFK}FWGag`UY*lPAg;FJ_);H%G>k+GM=b9)#}kdA#PsPDX`#d8_g|;Jv1tjq<*$N z-zt|^bwa9_8XtM78*1Tn(7xz*5?Yul#0WTuvR>av>l-4_A!k#^tM3ea1ouS0K{tzr zZE8+ytxR~WqO8`sy<5tjxqL(aU!E2sd%1;+PD%TzMlvH5W!?az!&Hq1wd#W%1HjzB ze;OThp`@A$6)v;C3|o3bF`4FqX7|F(&&Hm+T!i-EK+LH*42_yTby5Y}xaMNq8~MV+ z`Yw&5zZ#SFj0Y0Z>>!e$0%7%pn-BW(vnka&NF(E&y)ho)mcn5hqN@Gs7^H&Bv{c_L zgfzWglbe;K7YgJXfI($IBLO}AvH^M|J(wB){=?R8s(1 zHEG2!glR;&X6yVKj0Nb0ibb89?*3q+YQD4If_1HB+3U-f9{S9=xs!2Zv5MLo(Is{{$BEaK%8p;WkYhJoi( z>(z5B%@!9qHonbKIbvkLG|u9*=HsyIT)LnV1()A$&tMhZ_m2(h(Q*_v)MymoH|2Gk!$G>N1?e zt{D5_1=6(v5V;aG&=@X{m-k{8d(VIRgPT{b9t{zE3lac{MazaVt>h2K2j)OAy{X{p z&BdD{cCj`)JC{fdaLa@P3dxgYoqgQwA=Y1pJV_qDQa4&XW|pcP!2IF{_%J# z22L7$qPs{K8H73LaoI_c;7aL9YakHbD7ChuHaHA*Kq#8Oa3&<&C`3ftXnTU`e{yqX z4JoT)>Z%LbYp&6lqBA!vzf#1Ce{D zrQEFy4 zZ)vIb7?dvvw=Js*>ai`l5!$0(g6-1?s}g5{EbbLW{dG&Zt(%o2JvV1IzPK*nN{7aY z>X|2pA8DQ(qJ%cM*S#E5TYR!Hn^{qn9XEN(&NZZ+YC(s7)9>Hn>E3NekO#~{JCh!B zu23LhK3>LNTB6t(^SJx2g?+x@n5boH?{9bgt4Q{>27rHBXgPj_z^?be@?~$$V9E2V zq>!I9!78*hVod(m5MOJ+y`;Q~m_biKOpX;?_-!Z>O)!QF0{_nj{+&TxN};*cdlfTr zsUWG4)A_ZMN4})T5yYSu1y725ssm8zoT*GbW_Kg^m@r0hrXra}zW76q2wf#Ze7{Tb zJjU6VdoT~a*6_~DGB_sm_-8-Q9f|e;f`sBGa#dyppj5Wt_20Awdb|hwVojG$2otNO zk~oW!fq2~uR{Xs2K#diihwpZ-NdLcx$6Hkc@m?NiIx-wSp$lbcD;3~3WnX3L8x%a` znp=q%^q%zWq7Ef`;Xn%ZL7Vkz>zao-($Qm<(B##?G56=P_+hfs(~(IoDQ9TzZ95v@M^A!oh<5$fN+? zhG&aE>;gj}q)uO&<4j~6lv9Ycv>Fu7alBRe@!mN%{Ou`ClQlzZ>_hr3pjgDEKV_)BEsT1)k*uDLP~r>n3ht+8&;>~ zztY_qKV#Q1AxG{wneD3`Le=fkUJnM0e&A>*YRO>Q5sXIdT#o3@Oz7>+}Z>%C**_$ZlLY0etwiI&zWCXf@RI-dFRhv)(DXZhjo%tn?fe7EpLt3Urt1a zG`?S((mnD_O}@)gp}s5RU#CqL9am$anRXZJg=f!Z667`ww{0w}@m=+3zV~%1N8iHY z#-(Zwo-HH}ZA?+VfGE4ZCpcXxiL`WhSC+vLPq3Lz9`7c&E&+KEhHl#NZ<#<$NoRvQ zRY7DcwDs*l-=Fh!$w*24)(u7RMNcH{(GJEWBiAGQiweL_%{Ac;rJ78^I9T`*A0eGd zvxqhTUm-+3Q*Xdys6vv`YnXf(dwAHOINRAkPzs~(x@1ZmrS`D_%lN3NpGO=EJ%JfwAinQWcc9kv-KCAzVvw{~r&C0yAQ%v~@5jPgQI4 zs`0?@WFgw=C<5^oYaAYTI={8xc3v_F*QyTZ_TTm#Z))ZT@`v^-LEO4z0oDQ-UNNKz z{dq?~OjMCPHFgT?s|j5i*l+}MdSyOXce6wU3Ra2$)to|(Wfm%lmtVGiI(9zfR58~e zbdI%jvugMW*{cVL#4H4lE6)_0u5@v9@o0f^p-MEFq zP&0vw#6_bA<0k=|EqBvD+K`9V|{STxHH{mBK`}v`$*^Fn#bqCMk8tscD zAM^pPt%$`2DAkOmjl&%|4>&aHnTmPd)9E@xiOE?Evs%K`LLIm%HG)Q!f&@BBbPU#$ zmB~AzjW)XvilFe>aaML2@DCRkSxv#s8k`&f0fKQXQvVE$zMUy6<7nnNQu>H7p{yQ^ z#%5Z%`!2FZS*e5CQq~6|L2LDvF-pQtQriOIOo1Voh>;wBHzOu&YR}lYX!@C+6 zIOMd`WczdhJX~C5#e!KrTzw5#Q{>alESu;G`dg$*y6}%_EW)IZqRhj z;k+9T5jOI(W6yi5dU%-x=hn6FetEylV+1B2yAm=R)dY>esVY0H;R4OJjMVKDm$7=SL!dPN(zKtS`lK7jd&bxsIHM~lKWQt!jt?96{IU{s z!_xA!*&orM@VN8YV|+iba%;449Phn9#%K##*^#ZKjO1qU;rc(2cAQsK=+>3kwUYU{ z#F#)_=(iEObA^IL%vRwR)YNscvod0q)?{NkGLjIfDK%0mViE3v#Oi4D+IArt5M&F!yUGD5+lW8#qn_mmRb)?nben1{asTCd9icV8c z%;xT^ThvJX>gV*)H5?8=R7~HihFQpo;^ezEMa+*c4J_nVZt)x+`p-Fh&%uLTa6)=;O z2wLLFLu!BC6^XBq#D>|J-V%dat{G0TtVZ8R1ePhJ=X!1nsu{P`AWM-oO|3Kt;#DM} z6H|mTF^$XXU=oqf?K(is*boNLMARFvHPtPl#3@w{8T2YpH7f9N&MAx}IfSNbs_2k4 z@6KFm+@iL-cRAemKOt~Q)g0&<{54i20?=?=+R>xhhC2X5g-W92#vAh@449ozad3gq zg)})l%7GpM6V6T-a$v;p$K24I^k_ zPREC|pcbq#RA|EuX;~R%irLnA_;IM%=Ak}3`_D3?)%^zhs>}?Pu_9U(@y>!J!RIfP?^2OdlLGL+r8jOg7At5moGS#lYKk&PcbkV397vwRnZzxNY-i zBj^_u_vb&nO!|ODl_l{tfRmVYgTHJOgR_CV@sT-ZMRs(DD`8)C18Twk*-F z#mm?%W}iBB6C2xl3fH-`VT@vFIugBfXXb;S2dWzk2-T!DT7<i@gW1 zkV~k770q@-VO?te{1ZiolCiSaQM3@N014tk77D>F6lblX;<^juM`+QMUKWs76f{T* zs>S;UNl_P!@&3Wx{O9uy{zMlKsH?&BMI6N=2NCBuz?Hej2ChWWMKfvhn5!3dOAK+y zUo=iHV9KJ3zDEd38j*gV}S@5h=dQEH`Z1~1SHT@3`C~wK`B1V9hRp7cm6z~doUce zrglk~@PN0VK^sE*BeA87&Ie{@uBQsn+IC1)aSvF_rW$IwwIBTH$*S37pW zAwwj5to=)NiWJK^;%tP%_lKOQq2(+h$guk%8Vy;N+{s_&cSXI>pOk+S-5f8nNuk34 zTfF29-%V*I6*kiWj6KPEh`hIh!2O}a1L|`%v^#f$zGn}`CFV+)qj-m=3#vwAv07`3 z_=SfNNdnNiYt~p+cW$8TK>jYvn4k7j8SFdE6~ZDYY(B|$G|g~f-bXQgUG`I&#F0^- zRMiCA^E;h@;_=Kbv=K}xJtHEBOZbvf=aOIjpa(}i|L;$yrml`LT&gF4I*T~dP&1K8 zc!-&D=97|<#JFF+dp_7bbvo^}_&K{7J50@jo49XVDEDk<6Ro(u{<8+GUV0TGTIaAC zFm{H@{+ZAPddSyZf}1+7!55{!-s^I_3}qJZD?h8|OtMrb)inak!Njw`-u-uzEu%rP znLb^{EP?52@hwOGVXizYz|@S^l4G=$jze`gG=G*r-WVHtC8wy^@Fe-O zCCBKV4tTXB*|~-+t$sP&B#_j?q(>F6d%hh>qIqJ<2`;(g45MXzvK_lO&K4cVGI!Vx zLk8f%``Y@VC$r;7+UwEY`$GlLUgv<1qOQ?jii zIxLaulESa@K=MF%OBe`lrgwbyL}0}*gTY^$Z?2- zclC2qKsyn)I<5r%C`;<6CoT!@s`g)lZz5rL&s{I;e>n=A7z7`jX(Qo|4ZHC+~F% zRnWg-6`t!W&F#wP_rIh0OGv4^6zuJ?Xp^Cs;|PMIJKlY!s?laXxS} zJ*r70il8Xf*NiG5tY;Eal{w^(!&rV&!MCsC8W+uQuuCMm=gP2V~cp9 zb{QGoYU2!E-ShSUhv(yWS~8qro=n7nmlr1RRB^_Rr(#!-@n~C~${P9b`px_^Ib%i5 z0b@Kl5= zonq)SIneMQa*8il>#Z?VmbTU>jzp(lK!t&Sx0PStq4Fs0cTHcNU4nmpv{o<)m%8XC zN<9XWD415rI#Me_LPD&VpCw@yxG@pej;)xEI0TI={}#Ia!UexocQu&!yYXnSx^$Hp zKK?3JRxXlDHNPV5kc2&vM$KM*mMdRJX<1(u#f4&5=@vUB)EXysTZkB<4EjB>A`Fc% zi%KFwi*sRcwdDD-GDRd;+hhRv*ZfJ{1LQVYrz0V`$dz3()_z@;y6t)uw$k|*#}%qaEgdC@4dXF^3#I4Y^0W(eW}CP1aS2XQ?1g5 zyl5>E&bnBWGL<3$yIw}%zG=c!$!hc?^59JO)4#&NK*ns{L7)^#4A!S`Ppw1p1-@e! zKkD>Ma$ZpDuiTxHK0d=36&(5}%7op7$KxNFUR>WrcY8LyWAWC%(pOR7dK;&*cD zzw6_Ep=)LS!nc|0-{G-N^G$JfG>M?R;WnZ4ejSeZf4m4zx5mhgW~6K9Y-LuuIP zFJqY5)6F17K%3jgl+_mdxw-NdCDQGIJYip50uyjmulU)0Pn?MhM)D8PAtJ- z21jp~Fz-3lE76)=rqlqrkdnA&3Npq}Y0d+IS#EEczEzb($a!RmP-BFr#0uzi-XeBV zpGx)z!!-hXm`Uv#$5J1{j#CTsw2JQsyconk3;&JFb0?;A9DDP!2IV;g<-+fo%eIKO z@2l(5Ft~0>KB}HLzHC`CB)0jT>reu$c6fYX5qaDhk|Mr+?&p~|a;?$8(1+J}+q1>b zchK*7c8#^tUFxF~gzIwMGw!h&Nef7#XPGy<%+9Z-`>k_by^-iE^7wOC zmO2DlDWRGnvpKXHGRLN^wQH~La1acCBUw!b%CCNLUS$qRuh;XBpRX3 z!+ke4x^jGc0ybL#bg*CLbN+REnDfpHQI`RD!e~>*muYfb{6F7&=Qo$%T}HDKDUoYB zopO0w)I*eM0*pJ2j}GA+m*bOuwXE_k8BcL&hl}g8n3~pUwY4vcj9c#ER@%-25%_J) zjirlxUkj}p74A4er^6IcGYBvNU4 z#?=?hFq$~w=^vzZR9>UkJ0((YA|8Mpg-;h<74o$Cw_Kl?o+(yN5c&u}r@I2Q+C;H0 z7)bgjLHI4tG|No27)$C+YJy~YAbHSRyZc^zrE78PajMR5vp$7^w!3wjjf-R3M7+$~ zjUo5-E8u4c>kscI2a9OQn0e;UF+hq*P>PGFVK_d+I;fm*S5QVZ=GaE+tL$f@MFm6k zDd%Cg7FF$?tL+H<4vmHg9r}h_xmm)~w2 z)qke6U{LqeNHfQZT4B&kP=N_MdplaNrsffSb3KZKG~aW< z`B{%`X2+WjX!hv)+@(v$LCYQ)gBOYoTIai%=qZZ~P$WyuFI~K+1XFq?3d^vkfkz5| zWVCsF*=EeEcO8mXqWx9vGTUO6f{OLhsM0U%GO#tbim?7#q&40zpZ2tEz54$;*2?$3 zP&`Nfx9YqyfR%IP?{HGy__Z@1(PgMB+jQbQ=BbU2L2uPi0@^@K3Z9SxHXj_(OrZYg z8tY6s=3S(6ig+_{P20>NYEIkX;TLMHyK#GQ`??9IqI$_ZEf^e$?;;~lV_LNS&6d#n z{!SX(+KKn&Xl1XZeaCz04qg@v)68|W-gKYr^UkIE>VN;Q2!4o!w=IiB{Z>HOcx(h$ zu5BC+l%g#Q&XHUmouFO4vqsHV<7)A8EBKu+?waE5|n+5de3Hw*bFg! zFrD|feSIg78(ar_7oxAf=KHudUS;>R&s|eH{ja7I+ojfTz%C<0u?s3s_h5fi$eEBI zNqRG`Jrm_FhZy$Y)+AuyZdg@sb|B8!m8ux))4ubEX?_~EUF!gPfrffrUqjF?f| zJ|^z+dK(ZsYWZJ6WmL3FY1)_BW?jJ5KWjW+nbcuy9|HMk&tE{^L|DFs+AW&Q>*>m+#dnu z3mYNxO(T>HY=MN}GI4L{`qO!bEbmQfW|a5M-@BX77L`=O?^$g*A3Y5eNVIpTl2gha zEJL~a$4m9wRI(c&p%__foW`a?mX-$~)?R1vX;>w-H@KxC4K|iqGz4XhL#GSVTF6Mf zLMjd=wY`nbl#pv}LRZ6IhSu{$*FF9jeD0xg8!`@f3{ZVGcI$%Ioes^vmAc*YVYaaX zxt?*mji;vn@qTN&yX`*GZF}?dytk>W%K6a5|6}9G@e9x$;g1h)uInrOmVM`^AgK5L450dhChNLA{R*f#11hE3R zo(_xaxdm+)dhF8W9usVzBKjsu6`Q0}Jqtm$2sXT}Z$Dx`Tc#~wF!=4V6gOQhpFMR7 zu)Op}zU1uN}1Or5g`}2onqF8oV zOp5==?bARX*}#4&PcPmAB6l=5nFp=0?rif%cIvansr85<)zf#H#>-1RahiFnglw&q%jMM8h&Ho~Lim9VNk=cILkS zJvAOIsW$*=B>7KHPLX6Il&SB(M&wka(r=SrIQK-zJo5_1e@7@CQG*^^u)-_+6?K(c zG|mu}Lqs@TRsn`sK3sSAI7>@96M&V{{4dP_30t?5l_%IW&V1wWDs!{mkfa5WXM>cY z&P=pag!Y+%6Zg?BhQs4EmD|9Ix5E1KKKn>B=waV@Mk|!P#Z^fRUDP?s}q)2)4>z$zS!y=a8Ot^O zI)*Jx%>_%wN}ph%U1{%PK=@u%l25rE^`ikNgkKKQT0xGYMDg*E+xWyn_j`nkQc%u7)G|BE3mKW7X^F>@uP@do`H7d_I}O&(t_G!jz|8nYT99}>>D1n9=nNNAa8A~ja%yt@|DD8MN$G;(FT1VFTb^J4CfN`l|{j@BTrSGK{ zbtu%+4jS=Np0orN9%aYEiGxi>onI`~nL97Db)Pqv6OdeoofbyQ313`03Swq5t2bhc zl2PMu4!)6PpTHx?yNdb*Y14O32Pz6uf&*xhP$UxQg%*MfRNIf0YY@Sp1K_Bsk08uD zUB)cIF&vxfQ-(0|rSdsRl*OuTY_^x!)>F;}r36FjMvg`_ZAf{t`2aD6uhM_+u^LNsz6A$Ph)hog`+)+a8n)KvD^5<_(nRi`897H>Tr=qYBk ze8Ke1PQe8ouM4naU0WXr8!`QC41NNofK-am*=JYTLS&Yd12J=ekH}x8vNkk-6$?dn zRq>VPf)Yg`4f5!6BG}-7HKnm)YL;II^yR5e{@XFN*SjaNODX~5#M0?%)KcllT@9m3 zQB+f^th?~!k@t5;tG%%~4_3uNT1{HGhe9))-N1CU$1TD~qE8&(-V*>S#%W0_j(BzW zhr{x6F@tdCF;0V5=`m`-S5ZDq_fh3VR`ZKRdOLrNTPbG8%<*-u7R!iYDDq3|9Ca=B z#&4JB)oaQ~&=Y$V8r!Fl^G5}Goi!DyFrq7O&FR5rBN#<%3DnUBfM5~N0-s&}W=rzH z-gtl{R)+hLq%L{sG~LgC7rJjwpEwRbNGYghlV>dW`^e&j+z{c9vpOBxw#OHyc?yvf zApVmQNmC=z_<}7qt^uUzg+)V+>0LrmtIYwNp{t6?p zX7h$L-);&pR}L0vlG^Y4HWD>?TOWJ3J8m93Xk_WX17mE?3D2o%#}heQL<0mE3 zi^3A)bkwzsi(gM!pr+|r71>c*Tin6BL$Nh*gm3qiJIq~wKj22@^=$E-WI|8rx?U(n zT(?<2#eRYpSKMB@UbLSW6Bvl;q(_tM=Fr`%=iDQR_%*uye^}X(A1fL_Iz&{|iuJHQK^FSyB(mcj9^6U92A23+;F#d)S2W(oxBV z?|Nw?#QrXn+82ZMGuGP1IcfJQg_9O;{T`KY6o1uidiS-jyA4+{9N2rwn<_BUfD`=+ zX%l04xq84W+kVAb8Liy;U&@4!onkME<8}h5f9=%tnnw1SHe49t~Xic@!a zqHvEMr{Q=*mua_UoZK7&H@XTXos#z`eU!)h06^B{VW)3<{uiTwXdORT)xB`r=l1x6 zpIgjb{Lt@bN1dXbDA&Zn>bzTLp36LSY8EC5wU`ep;5L#HG8?K3P2pfQCi6Ayp)F5= zA`)pbFfhGBkm2SkdHtcnWrTY3zZ4Ox)3P>T z*$6tjj2>?qz(_@3{?(^ShaYkK6lcl!kZU+6QD|bLu(VF>OCP%A-#-8=YNEZ>L?X&? z(l<>FR-lO6Zp|k$DzI)tl|QGBM=MSD#nx`Du?_9HJK)}*@4ke8ZA}&FZEskRC!6dK zkR_N$%ZDE;Z|0p@S#QXgTl~a^@L>qxOo`D~$d1GHoK0_{{X;N~lY(1K+?`1sjx27M zB+|de9Q_4aL`YUe#L`b-d5Bai-_67?AjfbyT&wA>cj(M%|6aQrd=HF-r0(m$3(<0x z#Vo}uJQHIrp+|8yo~8uZS~gyW6>xL3CW;*}v2;qF=_PhVlc%)hq9urq*&tvyB{A2z$dysg$BQn2VRYD?I{G1minYpe?5iB?@0|QhmfvwV=){soHxI*Sw_(Y zQ8$XE6I%qsV)4+{{VJl?)n>FN0Fd7?q~&is&QcgPI)bO!J$Bd`bXCPi0m_AdzDyb5 zx&X;DIS9GsYkp?suJ~0!9p-9}6xkStnHQ{Ks^FenMIyKYq)hS0B~<-0KFhl&X8A+v z{c=}YF468!Y%zO{dZ+wWK@3tQ{R9t~G|0N!UdQP*aOo|xQ-B- zsB zsTp>&v`K1h_uL%}5`{oS{U8W7zZBX2i>am3O+%PxTrl3h5ER$NT^KD>bpK*Dbc1ng zb_1L4rK$%_8HFTjQ{oq!rl)Z(m6X$$o$`QzCc+JUle21hTIU zakM_8UU#$T)dF<0cuzhox+E&>#Ur$q)1?vP#v1;aFH7D;5HKGZQ(W;ch4zTk4Ml&H zv=94VNrzEv@ZFRx5{YrXn(S6Wui0-pBZjC&U-=Q|IU>OwW0+TbI zRu6`4h-hJ8!gD`E(Bv$A5-a!{Pnw&lcMy;Mu#+OmG`$16Lp>3*U$V0pwy=ZV$zj52`o$0_PW`=IX)h5UTnt?h#P8uba}gNG-~9&QlD@W zI8vN@7i=>Es7hUHo-iM!u~t?liGDu{;TI4MC*5pD0-9vLSgog8MoJs1Wb}VvQELXT z=+gjt+J!Ybmyg(|lON*aR={Ov3BZHd%C13}u-W`um|M3Ej~XILEvKqEvW#12c#D=A z{XU|BU&5|)zFihAfwH0w21Qv}DLMtS=$%B!8rFL~$#-s`hS!N=2T{wO zX8R47*4uzi)mibfiJ*oFkvu~|z*&iZDmGkZB`UWeBSQiWf)7^ncs%uZY8y>WwY%)$ zys?IL@LweOPW}&Pi@EDPHzFbg=U#}6x6@fdA6kw2m{V?QM1Wx3ASexclYU|mtCCvh zX;$31IgAU$2Iiq#Rwr}HH{EC%>@&*CB-g$^?zD2p$ zUGsB4-aPHzW?cKYH%h^;m88(TgaX6mZdEP4z#3zoC>g_3mQ1fj zcB-P+g;ViQ*cV*gE`pWyiw|JSdE~wN#qQ64F1iq{CcMDgvZ-CLaAK~FM9hzehL<*} zYN~Px-=u-sQS7D3_bj;`-&TY;~(B6XSU)0$gsH+@7lg-_bL|WAAa^ z*Y}{_#rdm!GTWNx0zr+Y&cE);($N-^6N<+lAZdP)Xe?Zpj`&J>(!jI{3{4i1@EMbe z^l4@0v0-qAj24qVL;iFpwLZwk{FBN{fbZuIYXQyA-1J^F5Pr>c?AM=r5^KLT8|HSa z6`k*husS@MPofm^2U>ssDoXcE5{M|x)UnjqLil8eLv4yhd^8o<-ij=VL?<+p>i}Lg ze37L{`tE)m#$B^`x0s7W@3`koXwv*t!DZa|d}PWuP`^ZfXiku#^2~IvNZf#SO8T6n zJCdYc_G6bbHOz;7kG{KN{ssu;PxQ^SvVK>)!tzrYj!pZ6$r4?o_x{h%cE}&Q=}VbV z5YWRYb&p6@O;F@nRJykbd2@7z4JJ3{$}VX4EH~+UF8Ig7K#r-(Ytd8E@MsOpP1!h@ z;GvJ?ecsa{rE~vb+jzdZM1N)uy879%Ci}RKFyS%3zy{`4x?8V^DnH`3*pu*=3z8cm zTz!Z-6`6wrcCXJ+dPrp`eBpuuSANm08SA*qIXY4KI^wzS42g#S?IXU=-KH=N&EwkM z-YnG!{layhg0dDC=;m8F29Tc1(m~9X>{UROKAP_&lYjEXiuoQlGOw3T_+#~1QS9W_#P=7W9()#UO#6KBG zNb|&l)Kzq&TWv{_ylP&l0|r9WmRe7l@eEHP=brP|@wFOF&Oj;!OM-H(RC`gca&(I# z$=ZsTrSCp%zRVQ#g`55EK4oaRkj=Tvm73hh?{1OyuVkTN%>9N{8iKKce?jh=1fOE8AHPEboB z`~IdTdbd0#x=g2g-+f@*$h}9kfaPhPhE?bWr;OSw1-1z$C6OsFC7nso(Y;o)nM+vy z!{U^v>MOI5`|x`NdV8I^z-I0o&!&mrxyO`uZ2Geu;|IrlVy|E|iBB4oiY|8L;)KVQ z2xdJk!uR8_OSy2IR)%w$zfAB-$Mp-v)x2@zkJ)f?a&+k~1`paibRW1dBsE8A@xrIX zi!I6fL&MIEck`UgSms7eJyfUqvh44=iw>2sMf;6Mk-kwF+>-q*+}@Y)Cz7@5TbIZm z9h-0sIEDV+4G#nLQ4K_jf;K>-y^ZM4^cUw+Ai5w$0D(GcbCL2(nyDNFD2dGEg;<`NH;DW z()HZ+`}_glKj8UockbOibMEWRoO5U1?-_L2bl*yNZt9=57dXOSq+sF=hGtG@%`57m zKa(tPe>xj)7?}NGx#npvIDPts-ZZTKc9eFYfJ(?0;b~C->CvTzW8wsw6>jiwfxgam zGez+mS^dY4j>Mx$h!pa;C>)@NHkphbRg3GpSfmxoZS6{2m%(JoN8_Zn-il zdkuY+y$!2fSlBTogzd3I*BamFxVz{%(Ze?eZJ1w<`G>bSqj{_hXV7+32;d13xE;Xd zJ3D&Af3S7Lr*)h*W3=Zh>5Ha9z?d-7*gbwPcURYsPi$WyH~C|+0jx@^7IM>`Kt(Yj z$>rqd4rLHjJB!*i@;#>OUsf+zKYiHeWx+F*WqLLOoj(yI->uhu->VL%r4XC9RiEcA zhX^kkMk)`(!R;!o-^m3jQOEttDl1V+;>ho0UqCR;%A!~gD?m@3Iq62%1hsmM1ijt_ zV_b+JPdG(9Vnn#z-}k2ygW?iz%jP&1^x%ncJhL(>=yg1cIRdpL=^OK(PTH7#Ub6Ms z(|h4iH5sNQt-d6=#dP_eS$ujDfKwik@Ef(Jvvh6AmgA>94HD+`{UD2zazZ^2067 zONeE)$cpB+T7uDNqP*0aJ`JgJzLAJbyyF^S)RjNg&8v?+F`8P9MRk21?lh7z_%?_5eU*c1HOcuq*~FHRqNN;h1_*;nk%F&K z0ZJtiGI>gADqVzKceO>Cld6&*o|TrUX)Oh{hMEdnt2w0fR=iZ(->e}t$ z&g(-D%8`x&)lB38KbvAazp1QwWS4;w%0Wuq~ir4QL;}B(glZ*|00Ha z=C~Le!}G@o#_amDSsH&?yMKa|P{C(Mn7~h6#$>yxtZBvkW+fqc1afmvluamicb_Ql$?g;K-u zQjf+Azqy^!(EirA#^>se$?96PWQHn8l_c+1<9Wd+vtHmYGCBM$A_RyRq6Cn8K`nhb z4Rp30xo_nV#zAe@&L&S~RVymGVdXiYW5LL`LTnm(P_anz7WqV0zVU;WyHn=PT}l4K zd7Dg{mbKxODa<59dseGvxr&>B#H)<> z3vwWiTAg`9PlldcMtcZf3jBTq`UX;1^eusQ8 zB=WcG2b_NTn|kK4QT`_W|A5@I#! zNHST!HO5&z`j)Ns+rtDPw<_qkOBb5=hb?e(bj}2Sr@BapLg43{pKPenU9eHaYp#Pr z{7P5{&OtG8oVu@ClH#E=E6DFtQ66f;ig(L?P-^B07O+vR0=xFtL5Z*|)`le^P}yC~ zc|EV6Th-WTuY|h+p zxn94YP-Zzl^Cn6-$C+57bzOl5TXoK%)GUgNgW<5j%KF3)g_CNrp5;7WjL3RTSbDUV zB;gCh6^W2&^`t2C7_&e+P4av&q`n7xUN7cD&Pk(4t@nZA40J6(lJ8O*w><*(H>n8UJ|-7MHf{ssudVPbIE- z*DI;#7Wta9pV)HLUSmHJz&Tw+qkcrPMk2q=uiVb-Tg%kH6*rk)TElX$;7nxhrtIP> zuTVi<$9C9ussEc5nV|>TrvBaE$W4rm6@nfHA#&CZ$|G;HG<_z|$N9)^Ff0ToM`{NW7ciM-ud#UEX zAD~nmNxNC7*Xqm`N_sx3ytKXU|LZ)!G9e+5FfKmWTCcyu6gDEV4y@Lr(>1xSvZr3n?j{_@2ay?f3P5jILY&^z3wSqUX!+LF0qM z=VuB(t4-l#ksP+_fvI8poq|M?!pXe}Js1?a(>BgQ~F6mTov>#UU^@_6pV{93bq{4&7%$ps8cjE6l zj_@?Q9;K=hs!MSwUQ8}*CLNkn?5v&54%ACrj4H0q(mN>^Bxfz#g*{AYaq{$YWwv<) zBMw^*_h(IaF{F|Lly!e@r!sALgQLfVE9_azJ#kM+rio+II~yBj3bs28Zd)?t|i<~^TZ{q?PQ;KQB0i=*l%Qvb!q&&dERkFg~S zA58J(@wPRUs3#TAN`b(=Ez$3bcRR#`SCy#leDm=8we^JZz9p5CT?Vda(XT$0%l)qL zv8Xq1J73{YUK}iY(!sQ16g^7*C0sipIL&JP1$hHK@I0(YH1D})or!!tf4E!C32 ztNUIJ`s>qt=?vFrY01MJx)v~RzB80p9SUCEZvU>Qqz;kZSwck0F+whMRNF99TsP-$ zRrU`mTUP^U=oKYQL1^)6U5SCs#%1~pr|imw=X`Ac z!ow$WrJ#BbsnYxic{aUIJs@o z=|)dZB2y5h*|EfIWcf=$TY}zOITS_n0;$EfJHw ze?`s8^V~6&;|H-v)#jPMn!1g7c-!ZpGN*L7@CytBJYmdyg=@WUI`@t#z}Db3l8~gu z=(Omo6Bv-#P*cYj&nO0~5)2@<^}D5#MDeUXn^@+g0o)`Q_Z*yD9TVR z;IA_dt zDR_*6_-^uN#AbLAgCa&>8yEjTHQ)D>eoB5A=dpS5I8?mO;Qte-18lxP2T7eNf zryJ$E_=dp}Rn%}oj4{s(XZ06D_tTFThu-H7Iz4{{YV3$lhS27g$vzZ{$nM+D9= zHNB5|z;3J-KIu|vWe3R@BS)LbqSS1==CfO@H<;$b9g|KkB!QFe3;N(mxl+%0IKoawTas!Sc z5a=9J%Ri?SZ!P9NaPfMptB?-xF;$;a+Vx=I9nQA%zU6nY(HK|nLB7~{#U|eA@BfKA z#X&Ufvc)5eRMBZ{{)^m7Zs*XhDGC`hkvT`zx;0oT8P!`qZ0znslKevr=RxVjKt7%d zj?G7W2A?wX*#G`ZM)S*advTS|vaB5NpC=9MoI!lOYGJ8#m{U?8db&bPnoBWqa7o{+ zK2xVXtxi*6KH#3kmv6qBt|xB&vu8@U{Pd!=9Xj$R(UTsTz= zwH;zPkur2p$kgxHB?afmlih_2+fe9}EH#5m7GKYv+^;;|KM4*7Y9tu67|uJS6N_?_ z>$6?(B+=>ijh$$?$VwCoNR<)h={QHLjuaA`rU-(!6*!qnQ&iAXAwT7_RY)VILzo!i zO`5kCcEeBoF7xRYV$_@2?y5;0nq@PtOLzL2TGyZ}GcBJ+D-k7?!b4@s$4P0q5xos@b@U@*r%pN zBJxRW7ujYrYPhEHhF2?oS%r#Gl7A$URxaFp`oijRZ~1ts`o-mvYi8@Y^a`Y&yXezn zV~lZ+eTn)oReV8#_KuK@GiQg$uiScCP+NIkg&I$u*UK$fsa%81me6whtvB%gFr>D3hz(GehOoND|TVIS0Hq z(NI#Y1S^hlYewqY-Xy1V;!PE#rh$u^P6b=MZ8)(xp(%%usmf zi2VVp(6P;$`6efADtnf-@+)xhL!uifQ1>a#k`_G>V~su`@}igBI%jT{CwKUAU=!4` z?MGy`LHl~qVymqztq&+==-vMkm1-+WXqQ*M*GF7n0Z(2F@MCr z01qrxR{Jw?giV3}o23B5b1h@9&FZl6EP^MjO>+A9W+!ISd+~<2Z`(h>2g@TrokC7R$1`oF%KL4^0Pd>p#wSr0l*_XGnq3a19HBx4u5(gMP?lPwf?SQVuJYb%;O8 z)x?J46q!4|d2!PI!om9tXUJpa_N`VR8`fnnpSQuyu89T>K3KG^ZjD1|$Ij~Zo;iOeN!wuWHv<^!<_uFQL{$5oh zrzKtII8c7Mh%0HtpG4fN7`_fIbpXn~znDi_eBgO`NI`P6Q_*z1DjxM&?Mdkm9|5RB zJ^jOJwZF{}VYQ!0m?`9^C?uC7!4j93Y8uBky&HR2f6hv%&dzs9g|}9EPp(~O!%KmOXqg2T}cYr3$PwtALx(qZdf&6CgLzx%sg|HJ0$ zi<&v55%|;#E$&;u#04k#Qzi_&dYR7tBF)?}u*e8=+}agZXdTWJ9G{&-Ku)L#_0d#o z5(Lo)=LdxjsedjS+16`y)S-7$*SZ&)WVO8B2&X7nm{*TNa{N{OH|Y|}V@F(9oH6f&B^yrO9Ig`br1T>#^Rvs zDRGotcpUv!pU=8oHMZcyUlWm=#P`bHM=u#r!^_V<4|0_=rhbFQ3XxYiT@V0n*E-!J(HeThmgo(^yj$Nd-bwxCpDD_416)i zarji!O+TUG4q5A}Bq)Zs{g}2I+r0oGZDT?6*2IS_e`=^caGr$pr(QK_gfG@ZYyJj# z#p{D^FY|)lvjXVbvjy#7=}6r<4KD(4$ui!ovcliz{|_y-c~!-V;r(;aVd@7WJ%IfL z{!EGhj|o5Pec2Mr5W~k@7K7@`n9GDUE@~Tj2FBpkH@w=`PDUoL%{1B6a2sY^iL76R zKr}X{hzD0yz1O+O!7Jk$^kYO>A!=q+mHYvV}4usLk zD-;fb1^zxpMJ&wEYoq781sA2Rwy{|hZFm4lYn}C4M25#PodPVn!a_wwxl6PN`C202>N%6^eXjqXHy2?|*686)UKb>ONch+-n zF!4;z!Rl%BFAbNWf!l(Doqr>I5PMq>w@0i$V`ShV!u3V(M>qQi{=9iJWX0dEBp{Ju zE7UY_Y&=+X-i(cT{U(-;jPH?Wg_Zo6yyD@aE;MgcYxnTmQy}%3ME2tizlXiF!Uvaj zACVAj{NPt9E`G%=l~NqIwKC%!dfsTdZ50O+0h^y?is!awnj`QDuRi72aJK4A%5g~# z$~HsLYIoHDZaTPS$>HAd2)hhGO6t)+-WB+$XI#{#!uMpFc7|n3z8+NkPQ;!x4hFUK zTlAb?E$a)CYZ!Rt*?wZ!w|BZMF}Ua3#BW%l+w*H#U#$d!IF-+vD;KMBvR;8NFHtccJ=$VabK%vi~*y%h9;S_&n zY|8jwN(3q!n_HakXKYJ;e;>M7*ud?mpF(gI5WU;++3&X6%XLl_KJLUBP$8;lzprOC z4p7YBpXlVkOrX{xh;a^H_d7|Cfw4L#DWnU|1h3e)ofB#C@p)Z33?(Q&FkKIds480e>+GyOn3@~_EGYVh=} zRZ{-ri^r7ApZ+a6FwiI3Zsp-tV$B}itD9vhT6umuD@)p|mbdKqT4(+~jo-1X_0hkh zv0ipHX4KAoJM-b_wy$W>=h4f`&7TEVoYpw3P>Tr68K%f_zw%2VQ1ewm3gp$mz3bf- z2Yn(?=VnB$8PO|JM{kU{>A1pg)7-sM^ugUcr)a_|z`!O1YE#&lT5$OKTn{(xrhrGM zLpQSB72n~o5+5^!Q`(O@Rt>456t2CLaoy7}jXTBDn~wV>%szy>Gh_y;{Tmfg#<3x0 z8B&~>X}-aCn2yPE8xAK%*6iDc4n!DaPL&wpP2YM<0zepzI~KOC^8od8dY z7g1%@{asIFuy`f&ic7k`*`l)%};Q2dql`j!=Kz!=c8F|aX#Jiv$5iJFDe@$Q`(hF27y z9OrYXmoR2YxTR^80`+^9Qj+*~@wIBB38;i0ODo$US0lq1@NvDYD$$M2qgpOzRQkzM zuzDl&JL6}X;njS@Iwdr{mrDgLyp(XkW}v>-RlY+kaoZKG(@1C>|-_MB`{w8{wMp6Fo@%zu5WM`uf8dSH|2z(LR{M6=fi0aeM~jlDaZmwZK*_RxqES z>%@T5i{XX_mJ;GmK2}GPD$)&f(={3QWNs5cpk++IRajs&k4XWJFAr{B$`D()U#eP! z?&twA!26KaN8;s%D^Drj&cLvLk4q5wxHcEB$=yD$aoeTp?5OnH%F*ai)?wz^o5W)E zEN14NYZ=k$hXiDs?%1Ff?JN_luy|)oYeJ|Vn6gaIbzXUJU}@|W{;DfhYT7Fo+S2LR zswlrdY!a|fO}7!(~`j*#x=FiO~s(SD0inQDgYLs zdh7PL_5JBpJ;1py^VPI$jhepxR?NUkI3kcgs~$W3miQf+&6%J@+LUUelG}hUi_05x z2=Sx=~jGCn=K=UH2(Uh0oGTyyC;Q1N!h3tK2nx$HAiv7_IaPuyg^w zmha2SrcXE`uy%t@h)%;mU+COqB%_*`)$oR};$1j)f*B!ed2&UfWn4RiAwZ`|%C9yM za`3X}@;dH=6qM0!zueM>9!@9rnQ1D!Y+*&j^iuk<>Ie6j*WuY_$4zf$;_ct4q2`ak zwEP2^|KpWu5FX{xcpFEb&cEF8R!Hy;f7m%;D3IigB(ot^;G^*!enHlqzw-gPjX;X| ziSj5P(_V=ycMqg|DrqNBSud$92mhNj6DFdK(5!Q2LNUJri}#4d3hd7&-0^U}vLsSD z%Z7%MawytNah+$7nCUs=GZmf&?Oad%JPzz1b7(Gc-D3`WU0>%BXb%VJw2v%(gg@#$ z--gwr4n+5Ul8+t8HhaSpI!U%4gpLs*2DM&sVWpF1{?40gNA7SYT4!cjfzAtaIrI0n zUE^&#+F4;{e=l*Fesp7j>56Ew(xJB(jF}2ehkl)UhJ-kv_-5&J6zUM(W_TRNfD>k0 zw|P$6Ff9<912!dIA#{zZ02~yBVA12~!|8UQrTdY`GIi3cCEYv)1}%*u)NBkkfbEQe zg74CWm|1z?+pJ%(kL#8v_TCGaWHz`i#vJvx^aH;HhWUXN%p;FP#0|Q7@7Qb#5mPm) zU)f7V4b#FjCeq zSfo<0`TcX2b9@E^pdbMN7eU#NohncqC4a= z=XAjdmp#^oetKcY1xaW|w#>~?g{K;Y_X0r(9se*=jSFA<_9=4LMXCm`R*yEXF}iQA z_zjs4e^a**d?I@Kz-f4BBz(5bC3YKFE=GVApj7_Xe7tnfu(BLpIO^4Ga?-v4yZMWF zu#i&%N>KsOb*KAtzW#GQ-Hy47>7Ls?kE~i*G=vynLq-7L2G9y^;#u&^x9ym~#{ztw z^v1QXZJ#xfQ~HtNYY7~DkX;`xuz*P*Q`sn$1uof$;D^PHQv(Cw$@*jdyPPKCe!j|0 z1^;)(MDdLPe&~;dyu#b74^S%}t2UlgCLyP1n6n>fc{6-uH=rXNY3bMY6sZEK1xR8_ z`f&sB#`~|4O;;Kjkgf(OLXF}Z{v5Et7ypEXNFnfg0tm6QF)oCV!Z~6}xSORB-Q$hNzQ8fjPo|H#d~(a6^rYJTAz7 z;3Jj1uHK*Q+7oGM9?)BjAVnPk~~b9J*V(V6$}AF;9aa6cKG z_rad6hW;D!X%AC2Lh&vOh+l{VbU#xhLw1uPe znE03DEa^sf6qMB;lS}6pk&5Jd8mIOr-$d$Jea=h9K>8^y&sqTD0np0F4GVfg`vf&X*@<&BG zRE+=qOzG(k_Pc{4y#as9!q*&RlUvf0CoqcnU8mzv?89nZ?U^3j7&3h7GGhNxGtK zySPMmvrHS&;tU_n6uO;RqM=8Q*64BtU=A!g<^{nql`OMQao!(K=SYKYZzKy3L4}8& zYUpd)$ou%8xhM)@Ea5BqJ3Q;T5KL80jtqD+!r9*;_c#cV&02Pu;$m{L;e4ow6%jNF&*}dJnMfNju z*}c8J&E0;V-|zYTe$TUeL>{h2A_pj`Ri~e43n_(Gs6=_BvIo(0BEI}K;Ah{TFX9s30-{n+1YGVf>eK`T52Slh+ClITD3%#Y12h2 zN;LfJQ6n?UYO0p}6bF_CT3V|X$}-h@!oR&{Ngks36@@CS zxIR+?!D=L#8tB{8*(VfcO;4G%CSie=Jg-(sDs7UqXw1Vpe%3dw6z!XY1iHFTtznBz zPkYljS0l9N2PM|NGfo3q0h$z@~p=lgj*38$g>`I zAxX4GU*`e^y)hkkAyIiDOLwr!1!4nl8_B~pAfodT6=K~7rQA3wstyJy*waBHr(5~+ zl*}AT&Apo9VdQk%xa0X|6_AvkL2hK!%{BTaF{Ko87w4O{QvXNwT%=HNGSl))X-d)k z`~-`DWAuMmAMtn~yOFn$KS#suhbC-C-xb*RXhfG5 z4K$4N&0EP$u%z`zvg(q;sMV7b*!S23A>by>h@;crveVN0oPudH9btAJB^g+Oh%1T& z+*5x`{n&F@qSa%mgFQ50(u$pAG~7-;Lnrqc?vt6BK{+`&R9sxdmf4ic*6}gnmBo_R;p!BC_J5@wpR(YCd#`_U_$J&CL`0ui=hE$xaJMe!x3k$}*6RFrRImeoN`Or-7G>zQ?FjRbDaO}IiJ0AX;_Dk?S#S&ALN zMQ&KXjz1vO?%fTvYgYpg6x@=yB2iT-iDaY`-9+_NaqIeo2@?xg)w9hxbhMq^KuuBw zx+<6G$x@=ZndCa&IZpIaGtrmHjk;@+;^JU6cNY=;(ls@ViQKS==*O%9ZDS(sF)nU6 zM#2SxwY;$2omLYLKI4;RMA?~|P{|;n0>PziUaeV>9kjP=(I5H^kil}IOxBMfJhzj( zn6v-04I9>xRle*=s7TI7 zad2zsbIbr?w(qFt31loQu?q5^$_MVZEYv5b6Xx!m6$qUy+=7`tr|$W!jtLVEgnDJ$ zU+8-aE+ez-VPW{w#wEmfsgcPcAPOu;R2*e^n7WR&(cjJ5Q53 zJYwp-s~06EO>j)0>gD30^hkGr`cHPyR9_ms{M?@?d-iN{n)`0OjUK-19=<+||NnU> zDTC&G)`RRjUghv8xg!E0D8NI6q0?W{09vr3OJGlz?G)2dQ(f+dT8$d7;TEw_!^ zt}qMg|NKkdSj-SlWGaH~eGpt4`W+GLfjC2F&P9E_v#X0Ps6a_qmcVT`$Utc(XJ}qSygXdyH_Xl~sON1{4= zYjLm|5pk4(K~v%YoMbB}+A0HIbkXE_*(9YJpCWh-1Po4Ck*$5u-6Glx|p zr3;CnGiS#lOe1a(j9krNn?Sb+v>qgc7aD3%5w;?D5xesuTLi)fL$x;+!M=X(GA=|Q zkf;@{Fkdx_i7io_NZ&JTkN_f7e)ofavk>|-p8uTq>{GrS;W9$#h5489C~l3(1QwzB zfu<&Y%+6C?JS+#51=w<`4K1l?#-Aq6vit zCL$2L3HoBYaw1z?+~qT4zdjP^i?|(v-1*oe{3J#eXCiO!-zU5;EJqX^_s+*33uYNdZ^85Z5x1j->y}{#QGrl#Faz9R)$gB)_!_(b5^NC`%p%)} zTcEiDB`alMXu>v}47fEXLEmK-l$78`BN6F)L}IRu)BEBU$S8W_EpKq*7i%-ox~-=)&f$S{##2v+D8wdmoiieK&4nCvD=(3SWXw_{kTIgYeaR0Nk0qQd*$ArHNb$Bc zYojKsQcB|6bKL*YC}Wmm40zpCTE;T?*!MaJM{nH-g+s*w2;C1feZWIy05@vJ8X)j} zVRIEik$kC?Xq*>lQtXiCnX2Cki=DB(u*yOYHOG>Ia*| z;n)&4Vj{T_sh4C4O<{5)X|rbte|EdC#Ir>pv>2nSqG3go=gqy~M1tj{&d3tlms^j` zSBKk{d5N?fIW_fy5((m%an0KtxGLN>fnY`31O_l6(vLmWqfl%78`Jgr)gY{7>!*(^oAetnna5t(KY9R<7DXdH*v3in@1Tb#EnPtr;-p`s-dSPk6xCuhiUSc&Hx1Ug3!0w4YKUMh*39@~zuv7?zhP0BWbXF+^`LJ-RC@5!#0sM$ zDfGEdm8iw?FRoiaw+c=X)^U7nhZy=c7t?}2+`ARksR!Kn3n&*etm`Q` z{D5?jJ2#dJzDXW#!Vht_rg^M$EMz@oAtt4$ y+QgKkPEN4_oP0l)n6k#sV9RijKC)AkP`(DVCCWyM3B?rv0000&Me diff --git "a/img/\355\214\220\353\213\244\354\226\274\352\265\264.png" "b/img/\355\214\220\353\213\244\354\226\274\352\265\264.png" deleted file mode 100644 index 0a1a4f202b8c01b9bed9c3247247c5df221a3493..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1519 zcmV0@}1zIAtc*zpM%B9pxq)7W@=mv*r+KD0E3)@a%a0*iKAdogWy>1{7F{{IIv~MK&pzLFP^vRil4cWbJfR+vRD4QOm*i9}#o zlp#p!v6J>KeK8yn)5Ys`t5;yecSqzHq47xsM~rN?uZca!v{0{K8FekgKQt^_cIBCd zdNjATiaxvaXw_li)-ak|ThQQQ*IyU%9cAUH*j6US0;4`ybE50=mO|jG%SeKt&U&G- ziHP-HdhZ?d4h$G{e`smJzKWfZ{+WjJ`1!YA#XalteILc^TYFy-R^%!m$(r*XUaBRF zSphe7F;5IbneuBdqnGH(m6vZ5rNohyWti)*XJPm5UApBDBAKEeJZaF+N{1;-EvPR6 zYDm#!S$2a?YipZmv+YJX>oqpI3}q;9Su_L?3K{e{l*|&v)Pj1GOBPLyEyHe#=r93t z*CU06IPmd@czVx^BK~$zyiKo>`*u`BI~EJ(3QPWT)zz~NJi1)F1QZp)(c9v7)7o{& z&&@^e-~jx7KR$TlO>%p`HnwgZhK7el%Wm)OA0YCparDq(Jhfp%L$$k3^;zFA1KQXV#ytC2Q z$3(%z*kWhfW3RtDxUKY0+(9-hh^NU9=8G-K3B*JnT0-@W`dPM_TPF?;Cd5f_m3GkA z2Isc_(}Q@qrA^1xgY=Vp45^7qnT{9g_?Q7H2)}|K<&G+8Bo!@4i)%G;6F=_E^f - - - - - - - 판다마켓 - - -

- -
-
-
-
-

- 일상의 모든 물건을
- 거래해 보세요 -

- 구경하러 가기 -
- 손인사 하는 판다 -
-
-
-
- 핫 아이템 -
-

Hot item

-

- 인기 상품을
- 확인해 보세요 -

-

- 가장 HOT한 중고거래 물품을
- 판다 마켓에서 확인해 보세요 -

-
-
-
-
-
- 검색 아이템 -
-

Search

-

- 구매를 원하는
- 상품을 검색하세요 -

-

- 구매하고 싶은 물품은 검색해서
- 쉽게 찾아보세요 -

-
-
-
-
-
- 등록 아이템 -
-

Register

-

- 판매를 원하는
- 상품을 등록하세요 -

-

- 어떤 물건이든 판매하고 싶은 상품을
- 쉽게 등록하세요 -

-
-
-
-
-
-
-

- 믿을 수 있는
- 판다마켓 중고 거래 -

-
- 서브 배너 이미지 -
-
- - - diff --git a/js/inputFocus.js b/js/inputFocus.js deleted file mode 100644 index 6358c62d6..000000000 --- a/js/inputFocus.js +++ /dev/null @@ -1,76 +0,0 @@ -document.addEventListener("DOMContentLoaded", () => { - const inputEmail = document.getElementById("email"); - const inputPassword = document.getElementById("password"); - const emailErrorMessage = document.querySelector(".email__error-message"); - const passwordErrorMessage = document.querySelector( - ".password__error-message" - ); - const loginButton = document.querySelector(".login-button"); - - function disabledLoginButton() { - // display가 block 상태이면 결국 에러메세지가 이미 출력중 - if ( - emailErrorMessage.textContent === "" && - passwordErrorMessage.textContent === "" - ) { - loginButton.disabled = false; - loginButton.style.backgroundColor = "#3692ff"; - } else { - loginButton.disabled = true; - loginButton.style.backgroundColor = "#9ca3af"; - } - } - - // 이메일 유효성 검사 함수 - // 정규식을 활용하여 이메일 형식 검사 및 value값 유무 확인 - function validateEmail() { - const emailValue = inputEmail.value.trim(); - const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; // 이메일 정규식 - - if (!emailValue) { - emailErrorMessage.textContent = "이메일을 입력해주세요."; - emailErrorMessage.style.display = "block"; - inputEmail.classList.add("error"); - } else if (!emailRegex.test(emailValue)) { - emailErrorMessage.textContent = "잘못된 이메일 형식입니다."; - emailErrorMessage.style.display = "block"; - inputEmail.classList.add("error"); - } else { - emailErrorMessage.textContent = ""; - emailErrorMessage.style.display = "block"; - inputEmail.classList.remove("error"); - } - - disabledLoginButton(); - } - - // 비밀번호 8자리이상인지, 비밀번호의 value값 유무 확인하는 함수 - function validatePassword() { - const passwordValue = inputPassword.value.trim(); - - if (!passwordValue) { - passwordErrorMessage.textContent = "비밀번호를 입력해주세요."; - passwordErrorMessage.style.display = "block"; - inputPassword.classList.add("error"); - } else if (passwordValue.length < 8) { - passwordErrorMessage.textContent = "비밀번호를 8자이상 입력해주세요."; - passwordErrorMessage.style.display = "block"; - inputPassword.classList.add("error"); - } else { - passwordErrorMessage.textContent = ""; - passwordErrorMessage.style.display = "none"; - inputPassword.classList.remove("error"); - } - - disabledLoginButton(); - } - - inputEmail.addEventListener("focusout", validateEmail); - inputPassword.addEventListener("focusout", validatePassword); - - // loginButton 클릭 시 /items로 이동 - loginButton.addEventListener("click", (e) => { - e.preventDefault(); - window.location.href = "/items"; - }); -}); diff --git a/js/login.js b/js/login.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/js/signup.js b/js/signup.js deleted file mode 100644 index 5b81a73fd..000000000 --- a/js/signup.js +++ /dev/null @@ -1,125 +0,0 @@ -document.addEventListener("DOMContentLoaded", () => { - const inputEmail = document.getElementById("email"); - const inputPassword = document.getElementById("password"); - const emailErrorMessage = document.querySelector(".email__error-message"); - const passwordErrorMessage = document.querySelector( - ".password__error-message" - ); - const inputNickname = document.getElementById("nickname"); - const nicknameErrorMessage = document.querySelector( - ".nickname__error-message" - ); - const checkedPassword = document.getElementById("checked-password"); - const checkedPasswordErrorMessage = document.querySelector( - ".checked-password__error-message" - ); - const signupButton = document.querySelector(".signup-button"); - - // 회원가입 버튼 활성/비활성 시키는 함수 - function disabledLoginButton() { - // display가 block 상태이면 결국 에러메세지가 이미 출력중 - if ( - emailErrorMessage.textContent === "" && - passwordErrorMessage.textContent === "" && - nicknameErrorMessage.textContent === "" && - checkedPasswordErrorMessage.textContent === "" - ) { - signupButton.disabled = false; - signupButton.style.backgroundColor = "#3692ff"; - } else { - signupButton.disabled = true; - signupButton.style.backgroundColor = "#9ca3af"; - } - } - - // 이메일 유효성 검사 함수 - // 정규식을 활용하여 이메일 형식 검사 및 value값 유무 확인 - function validateEmail() { - const emailValue = inputEmail.value.trim(); - const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; // 이메일 정규식 - - if (!emailValue) { - emailErrorMessage.textContent = "이메일을 입력해주세요."; - emailErrorMessage.style.display = "block"; - inputEmail.classList.add("error"); - } else if (!emailRegex.test(emailValue)) { - emailErrorMessage.textContent = "잘못된 이메일 형식입니다."; - emailErrorMessage.style.display = "block"; - inputEmail.classList.add("error"); - } else { - emailErrorMessage.textContent = ""; - emailErrorMessage.style.display = "block"; - inputEmail.classList.remove("error"); - } - - disabledLoginButton(); - } - - // 비밀번호 8자리이상인지, 비밀번호의 value값 유무 확인하는 함수 - function validatePassword() { - const passwordValue = inputPassword.value.trim(); - - if (!passwordValue) { - passwordErrorMessage.textContent = "비밀번호를 입력해주세요."; - passwordErrorMessage.style.display = "block"; - inputPassword.classList.add("error"); - } else if (passwordValue.length < 8) { - passwordErrorMessage.textContent = "비밀번호를 8자이상 입력해주세요."; - passwordErrorMessage.style.display = "block"; - inputPassword.classList.add("error"); - } else { - passwordErrorMessage.textContent = ""; - passwordErrorMessage.style.display = "none"; - inputPassword.classList.remove("error"); - } - - disabledLoginButton(); - } - - //닉네임 값 유무를 확인하는 함수 - function validateNickname() { - const nicknameValue = inputNickname.value.trim(); - - if (!nicknameValue) { - nicknameErrorMessage.textContent = "닉네임을 입력해주세요."; - nicknameErrorMessage.style.display = "block"; - inputNickname.classList.add("error"); - } else { - nicknameErrorMessage.textContent = ""; - nicknameErrorMessage.style.display = "none"; - inputNickname.classList.remove("error"); - } - - disabledLoginButton(); - } - - // 입력된 비밀번호가 일치하는지 확인하는 함수 - function validateCheckedPassword() { - const passwordValue = inputPassword.value.trim(); - const checkedPasswordValue = checkedPassword.value.trim(); - - if (passwordValue !== checkedPasswordValue) { - checkedPasswordErrorMessage.textContent = "비밀번호가 일치하지 않습니다."; - checkedPasswordErrorMessage.style.display = "block"; - checkedPassword.classList.add("error"); - } else { - checkedPasswordErrorMessage.textContent = ""; - checkedPasswordErrorMessage.style.display = "none"; - checkedPassword.classList.remove("error"); - } - console.log(passwordValue, checkedPasswordValue); - disabledLoginButton(); - } - - // 이벤트리스너 - inputEmail.addEventListener("focusout", validateEmail); - inputPassword.addEventListener("focusout", validatePassword); - inputNickname.addEventListener("focusout", validateNickname); - checkedPassword.addEventListener("focusout", validateCheckedPassword); - - // signupButton 클릭 시 /signin로 이동 - signupButton.addEventListener("click", (e) => { - e.preventDefault(); - window.location.href = "/signin"; - }); -}); diff --git a/login.html b/login.html deleted file mode 100644 index 389ecffc2..000000000 --- a/login.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - 로그인 - - - - - - diff --git a/signup.html b/signup.html deleted file mode 100644 index 4363b669d..000000000 --- a/signup.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - 회원가입 - - - - - - From 2fd73b29b19e8be8cee13e6442aece85ccf1a516 Mon Sep 17 00:00:00 2001 From: CJewon <112820744+CJewon@users.noreply.github.com> Date: Wed, 20 Nov 2024 22:18:01 +0900 Subject: [PATCH 02/10] =?UTF-8?q?react=20npm=20start=20=EC=98=A4=EB=A5=98?= =?UTF-8?q?=EB=A1=9C=20=EC=9D=B8=ED=95=9C=20npm=20install=20=EB=B0=8F=20re?= =?UTF-8?q?act=20=EA=B0=9C=EB=B0=9C=ED=99=98=EA=B2=BD=20=EC=85=8B=ED=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/favicon.ico | Bin 3870 -> 0 bytes public/index.html | 35 ++--------------------------------- public/logo192.png | Bin 5347 -> 0 bytes public/logo512.png | Bin 9664 -> 0 bytes public/manifest.json | 25 ------------------------- public/robots.txt | 3 --- src/App.css | 38 -------------------------------------- src/App.js | 22 +--------------------- src/App.test.js | 8 -------- src/index.css | 13 ------------- src/index.js | 19 ++++--------------- src/logo.svg | 1 - src/reportWebVitals.js | 13 ------------- src/setupTests.js | 5 ----- 14 files changed, 7 insertions(+), 175 deletions(-) delete mode 100644 public/favicon.ico delete mode 100644 public/logo192.png delete mode 100644 public/logo512.png delete mode 100644 public/manifest.json delete mode 100644 public/robots.txt delete mode 100644 src/App.css delete mode 100644 src/App.test.js delete mode 100644 src/index.css delete mode 100644 src/logo.svg delete mode 100644 src/reportWebVitals.js delete mode 100644 src/setupTests.js diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index a11777cc471a4344702741ab1c8a588998b1311a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/public/index.html b/public/index.html index aa069f27c..11b93411b 100644 --- a/public/index.html +++ b/public/index.html @@ -1,43 +1,12 @@ - + - - - - - - - React App + 판마 마켓 -
- diff --git a/public/logo192.png b/public/logo192.png deleted file mode 100644 index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN diff --git a/public/manifest.json b/public/manifest.json deleted file mode 100644 index 080d6c77a..000000000 --- a/public/manifest.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "short_name": "React App", - "name": "Create React App Sample", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "logo192.png", - "type": "image/png", - "sizes": "192x192" - }, - { - "src": "logo512.png", - "type": "image/png", - "sizes": "512x512" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/public/robots.txt b/public/robots.txt deleted file mode 100644 index e9e57dc4d..000000000 --- a/public/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/src/App.css b/src/App.css deleted file mode 100644 index 74b5e0534..000000000 --- a/src/App.css +++ /dev/null @@ -1,38 +0,0 @@ -.App { - text-align: center; -} - -.App-logo { - height: 40vmin; - pointer-events: none; -} - -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-spin infinite 20s linear; - } -} - -.App-header { - background-color: #282c34; - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); - color: white; -} - -.App-link { - color: #61dafb; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} diff --git a/src/App.js b/src/App.js index 378457572..6f5bc37e1 100644 --- a/src/App.js +++ b/src/App.js @@ -1,25 +1,5 @@ -import logo from './logo.svg'; -import './App.css'; - function App() { - return ( - - ); + return
; } export default App; diff --git a/src/App.test.js b/src/App.test.js deleted file mode 100644 index 1f03afeec..000000000 --- a/src/App.test.js +++ /dev/null @@ -1,8 +0,0 @@ -import { render, screen } from '@testing-library/react'; -import App from './App'; - -test('renders learn react link', () => { - render(); - const linkElement = screen.getByText(/learn react/i); - expect(linkElement).toBeInTheDocument(); -}); diff --git a/src/index.css b/src/index.css deleted file mode 100644 index ec2585e8c..000000000 --- a/src/index.css +++ /dev/null @@ -1,13 +0,0 @@ -body { - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', - sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -code { - font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', - monospace; -} diff --git a/src/index.js b/src/index.js index d563c0fb1..db7b51ca3 100644 --- a/src/index.js +++ b/src/index.js @@ -1,17 +1,6 @@ -import React from 'react'; -import ReactDOM from 'react-dom/client'; -import './index.css'; -import App from './App'; -import reportWebVitals from './reportWebVitals'; +import ReactDOM from "react-dom/client"; -const root = ReactDOM.createRoot(document.getElementById('root')); -root.render( - - - -); +import App from "./App"; -// If you want to start measuring performance in your app, pass a function -// to log results (for example: reportWebVitals(console.log)) -// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals(); +const root = ReactDOM.createRoot(document.getElementById("root")); +root.render(); diff --git a/src/logo.svg b/src/logo.svg deleted file mode 100644 index 9dfc1c058..000000000 --- a/src/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/reportWebVitals.js b/src/reportWebVitals.js deleted file mode 100644 index 5253d3ad9..000000000 --- a/src/reportWebVitals.js +++ /dev/null @@ -1,13 +0,0 @@ -const reportWebVitals = onPerfEntry => { - if (onPerfEntry && onPerfEntry instanceof Function) { - import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { - getCLS(onPerfEntry); - getFID(onPerfEntry); - getFCP(onPerfEntry); - getLCP(onPerfEntry); - getTTFB(onPerfEntry); - }); - } -}; - -export default reportWebVitals; diff --git a/src/setupTests.js b/src/setupTests.js deleted file mode 100644 index 8f2609b7b..000000000 --- a/src/setupTests.js +++ /dev/null @@ -1,5 +0,0 @@ -// jest-dom adds custom jest matchers for asserting on DOM nodes. -// allows you to do things like: -// expect(element).toHaveTextContent(/react/i) -// learn more: https://github.com/testing-library/jest-dom -import '@testing-library/jest-dom'; From 6c30b663d7bc766f2cef50a60c3d9294b9243585 Mon Sep 17 00:00:00 2001 From: CJewon <112820744+CJewon@users.noreply.github.com> Date: Sat, 23 Nov 2024 20:10:39 +0900 Subject: [PATCH 03/10] =?UTF-8?q?header=20=EC=B6=94=EA=B0=80=20=EB=B0=8F?= =?UTF-8?q?=20GET=20=EB=A6=AC=ED=80=98=EC=8A=A4=ED=8A=B8=EB=A5=BC=20?= =?UTF-8?q?=EB=B0=9B=EC=95=84=20itemList=20=EC=A0=95=EB=A0=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Api.js | 13 ++++ src/App.js | 5 -- src/components/App.js | 64 +++++++++++++++++ src/components/Header.js | 24 +++++++ src/components/ItemList.js | 17 +++++ src/components/Products.js | 13 ++++ src/css/App.css | 3 + src/css/Header.css | 44 ++++++++++++ src/css/Product.css | 4 ++ src/css/Reset.css | 129 ++++++++++++++++++++++++++++++++++ src/img/pandaLogo__header.png | Bin 0 -> 1519 bytes src/img/userImg.png | Bin 0 -> 1353 bytes src/index.js | 2 +- 13 files changed, 312 insertions(+), 6 deletions(-) create mode 100644 src/Api.js delete mode 100644 src/App.js create mode 100644 src/components/App.js create mode 100644 src/components/Header.js create mode 100644 src/components/ItemList.js create mode 100644 src/components/Products.js create mode 100644 src/css/App.css create mode 100644 src/css/Header.css create mode 100644 src/css/Product.css create mode 100644 src/css/Reset.css create mode 100644 src/img/pandaLogo__header.png create mode 100644 src/img/userImg.png diff --git a/src/Api.js b/src/Api.js new file mode 100644 index 000000000..812c4d96e --- /dev/null +++ b/src/Api.js @@ -0,0 +1,13 @@ +export async function productList({ orderBy = "recent" }) { + const query = `page=1&pageSize=10&orderBy=${orderBy}`; + const response = await fetch( + `https://panda-market-api.vercel.app/products?${query}` + ); + if (!response.ok) { + throw new Error("제품목록을 가지고 오는데 실패했습니다."); + } + const date = await response.json(); + return date; +} + +export default productList; diff --git a/src/App.js b/src/App.js deleted file mode 100644 index 6f5bc37e1..000000000 --- a/src/App.js +++ /dev/null @@ -1,5 +0,0 @@ -function App() { - return
; -} - -export default App; diff --git a/src/components/App.js b/src/components/App.js new file mode 100644 index 000000000..a331bfc5e --- /dev/null +++ b/src/components/App.js @@ -0,0 +1,64 @@ +import { useEffect, useState } from "react"; +import productList from "../Api"; +import ItemList from "./ItemList"; +import Header from "./Header"; +import "../css/Reset.css"; +import "../css/App.css"; + +function App() { + const [allItems, setAllItems] = useState([]); + const [bestItems, setBestItems] = useState([]); + + const loadAllItems = async () => { + try { + const { list } = await productList({ orderBy: "recent" }); + setAllItems(list); + } catch (error) { + console.error("전체 상품 데이터를 불러오는 중 오류 발생:", error.message); + } + }; + + const loadBestItems = async () => { + try { + const { list } = await productList({ orderBy: "favorite" }); + const sortBestItems = [...list] + .sort((a, b) => b.favoriteCount - a.favoriteCount) + .slice(0, 4); + setBestItems(sortBestItems); + } catch (error) { + console.error( + "베스트 상품 데이터를 불러오는 중 오류 발생:", + error.message + ); + } + }; + + useEffect(() => { + loadAllItems(); + loadBestItems(); + }, []); + + const handleSortClick = () => { + setOrderBy((prevOrderBy) => + prevOrderBy === "recent" ? "favorite" : "recent" + ); + }; + + return ( +
+
+
+
+

베스트 상품

+ +
+
+

전체 상품

+ +
+
+
+ ); +} + +export default App; diff --git a/src/components/Header.js b/src/components/Header.js new file mode 100644 index 000000000..b228e9f6b --- /dev/null +++ b/src/components/Header.js @@ -0,0 +1,24 @@ +import React from "react"; +import PandaImg from "../img/pandaLogo__header.png"; +import UserImg from "../img/userImg.png"; +import "../css/Header.css"; + +export default function Header() { + return ( +
+
+
+
+ 판다 로고 이미지 +

판다마켓

+
+
+

자유게시판

+

중고마켓

+
+
+ 사용자 이미지 +
+
+ ); +} diff --git a/src/components/ItemList.js b/src/components/ItemList.js new file mode 100644 index 000000000..e3892aed9 --- /dev/null +++ b/src/components/ItemList.js @@ -0,0 +1,17 @@ +import React from "react"; +import Products from "./Products"; + +export default function ItemList({ items }) { + return ( +
    + {items.map((item) => { + console.log(item); + return ( +
  • + +
  • + ); + })} +
+ ); +} diff --git a/src/components/Products.js b/src/components/Products.js new file mode 100644 index 000000000..c97e1dc47 --- /dev/null +++ b/src/components/Products.js @@ -0,0 +1,13 @@ +import React from "react"; +import "../css/Product.css"; + +export default function Products({ item }) { + return ( +
+ +

{item.name}

+

{item.price}

+

{item.favoriteCount}

+
+ ); +} diff --git a/src/css/App.css b/src/css/App.css new file mode 100644 index 000000000..ac2c40471 --- /dev/null +++ b/src/css/App.css @@ -0,0 +1,3 @@ +.App { + background-color: #fcfcfc; +} diff --git a/src/css/Header.css b/src/css/Header.css new file mode 100644 index 000000000..95153d07d --- /dev/null +++ b/src/css/Header.css @@ -0,0 +1,44 @@ +.header { + width: 100vw; + height: 70px; + border: 1px solid #dfdfdf; +} + +.header-nav__container { + display: flex; + justify-content: space-between; + align-items: center; + padding: 10px 200px; +} + +.header-nav { + display: flex; + justify-content: center; + align-items: center; + gap: 32px; +} + +.logo__container { + display: flex; + justify-content: space-between; + align-items: center; + width: 153px; +} + +.logo__text { + font-size: 26px; + font-weight: 700; + line-height: 34px; + color: #3692ff; +} + +.header-menu__container { + display: flex; +} + +.header-menu__text { + padding: 15px 21px; + font-size: 18px; + line-height: 26px; + font-weight: 700; +} diff --git a/src/css/Product.css b/src/css/Product.css new file mode 100644 index 000000000..fdc7f1bb6 --- /dev/null +++ b/src/css/Product.css @@ -0,0 +1,4 @@ +.product { + display: flex; + flex-direction: column; +} diff --git a/src/css/Reset.css b/src/css/Reset.css new file mode 100644 index 000000000..45a05ecf8 --- /dev/null +++ b/src/css/Reset.css @@ -0,0 +1,129 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ + +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +b, +u, +i, +center, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +embed, +figure, +figcaption, +footer, +header, +hgroup, +menu, +nav, +output, +ruby, +section, +summary, +time, +mark, +audio, +video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { + display: block; +} +body { + line-height: 1; +} +ol, +ul { + list-style: none; +} +blockquote, +q { + quotes: none; +} +blockquote:before, +blockquote:after, +q:before, +q:after { + content: ""; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/src/img/pandaLogo__header.png b/src/img/pandaLogo__header.png new file mode 100644 index 0000000000000000000000000000000000000000..0a1a4f202b8c01b9bed9c3247247c5df221a3493 GIT binary patch literal 1519 zcmV0@}1zIAtc*zpM%B9pxq)7W@=mv*r+KD0E3)@a%a0*iKAdogWy>1{7F{{IIv~MK&pzLFP^vRil4cWbJfR+vRD4QOm*i9}#o zlp#p!v6J>KeK8yn)5Ys`t5;yecSqzHq47xsM~rN?uZca!v{0{K8FekgKQt^_cIBCd zdNjATiaxvaXw_li)-ak|ThQQQ*IyU%9cAUH*j6US0;4`ybE50=mO|jG%SeKt&U&G- ziHP-HdhZ?d4h$G{e`smJzKWfZ{+WjJ`1!YA#XalteILc^TYFy-R^%!m$(r*XUaBRF zSphe7F;5IbneuBdqnGH(m6vZ5rNohyWti)*XJPm5UApBDBAKEeJZaF+N{1;-EvPR6 zYDm#!S$2a?YipZmv+YJX>oqpI3}q;9Su_L?3K{e{l*|&v)Pj1GOBPLyEyHe#=r93t z*CU06IPmd@czVx^BK~$zyiKo>`*u`BI~EJ(3QPWT)zz~NJi1)F1QZp)(c9v7)7o{& z&&@^e-~jx7KR$TlO>%p`HnwgZhK7el%Wm)OA0YCparDq(Jhfp%L$$k3^;zFA1KQXV#ytC2Q z$3(%z*kWhfW3RtDxUKY0+(9-hh^NU9=8G-K3B*JnT0-@W`dPM_TPF?;Cd5f_m3GkA z2Isc_(}Q@qrA^1xgY=Vp45^7qnT{9g_?Q7H2)}|K<&G+8Bo!@4i)%G;6F=_E^fA!2Dw4Z3D6VB4U(Q9M+i9q(3%gnO;@%McTEN|w`Z{NIsI}CLKVcT1gNh;xyUAIn2%kVHl9*!}D`)hGKvQEJMjHmewQvQj))gwwN%lu^F(D|A_FUDeg} z@U_(|7)xWq`Nb|I#|~(eQfi>f2{UNLnV@r%YT`l}!LpOda-(JBRKgNIeWTGokBy4| zu-sj1f(Kuy(z4yky?$F(r5nmm-(vgj;KU=LR;$Bb*kv2amnu<={qSg2uFOHCR0^)p zHx3Tp--#v3a(Z&IbfoFK-LSTgG|Em2sgtJK?6!4Rfufb(O~`$!8ox7PG@7gN_-vAqu-Wu8FlZjE@=}ekBy`CqW5X%MpYC=qqS?^ zStH4ch7h}|DU^8oz1O-0Ih23QdsQhL737P(Iz=|N@u=qzN$Cu&y7yQ7%F^$tX&>ALI;#|(1EuNk2nIzC z&q_X?oQk_Z<Wkp@OpFhEc#Svm zY(xuUaFp>%4oYn3+JFnu`*Z@@XNi%U%Ury2b5WqB>6); From 66f68328ee67735ae2075379dc658b91545f520d Mon Sep 17 00:00:00 2001 From: CJewon <112820744+CJewon@users.noreply.github.com> Date: Sat, 23 Nov 2024 21:21:31 +0900 Subject: [PATCH 04/10] =?UTF-8?q?=ED=81=B4=EB=9E=98=EC=8A=A4=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20CSS=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ItemList.js | 3 ++- src/components/Products.js | 2 +- src/css/App.css | 10 ++++++++++ src/css/ItemList.css | 6 ++++++ src/css/Product.css | 7 +++++++ 5 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 src/css/ItemList.css diff --git a/src/components/ItemList.js b/src/components/ItemList.js index e3892aed9..e55e881e4 100644 --- a/src/components/ItemList.js +++ b/src/components/ItemList.js @@ -1,9 +1,10 @@ import React from "react"; import Products from "./Products"; +import "../css/ItemList.css"; export default function ItemList({ items }) { return ( -
    +
      {items.map((item) => { console.log(item); return ( diff --git a/src/components/Products.js b/src/components/Products.js index c97e1dc47..36be06ebd 100644 --- a/src/components/Products.js +++ b/src/components/Products.js @@ -4,7 +4,7 @@ import "../css/Product.css"; export default function Products({ item }) { return (
      - + 제품 이미지

      {item.name}

      {item.price}

      {item.favoriteCount}

      diff --git a/src/css/App.css b/src/css/App.css index ac2c40471..b7b7c9546 100644 --- a/src/css/App.css +++ b/src/css/App.css @@ -1,3 +1,13 @@ .App { background-color: #fcfcfc; } + +.products__section { + width: 100%; + height: auto; +} + +.favorite-products__container, +.all-products__container { + margin: 0 auto; +} diff --git a/src/css/ItemList.css b/src/css/ItemList.css new file mode 100644 index 000000000..06cb16800 --- /dev/null +++ b/src/css/ItemList.css @@ -0,0 +1,6 @@ +.ItemList-ul { + display: flex; + justify-content: center; + align-items: center; + gap: 24px; +} diff --git a/src/css/Product.css b/src/css/Product.css index fdc7f1bb6..9ca0cc33f 100644 --- a/src/css/Product.css +++ b/src/css/Product.css @@ -1,4 +1,11 @@ .product { display: flex; flex-direction: column; + gap: 16px; +} + +.product-img { + width: 287px; + height: auto; + border-radius: 16px; } From 9c47467fa5bccc0f355f2b4c3dbb11ec7b301989 Mon Sep 17 00:00:00 2001 From: CJewon <112820744+CJewon@users.noreply.github.com> Date: Mon, 25 Nov 2024 22:43:29 +0900 Subject: [PATCH 05/10] =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EA=B5=AC=EC=A1=B0?= =?UTF-8?q?=20=EC=A0=95=EB=A6=AC=20=EB=B0=8F=20=EC=83=81=ED=92=88=20?= =?UTF-8?q?=EC=A0=95=EB=A0=AC=20=EC=BF=BC=EB=A6=AC=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 62 +++++++++++++++++++ package.json | 1 + public/index.html | 2 +- src/Api.js | 4 +- src/App.js | 24 +++++++ src/{css => components/Header}/Header.css | 0 .../{Header.js => Header/Header.jsx} | 6 +- src/components/ItemList/ItemList.css | 11 ++++ .../{ItemList.js => ItemList/ItemList.jsx} | 9 ++- src/{css => components/Products}/Product.css | 3 +- .../{Products.js => Products/Products.jsx} | 2 +- src/css/App.css | 13 ---- src/css/Global.css | 15 +++++ src/css/ItemList.css | 6 -- src/index.js | 2 +- src/pages/AddItem/AddItem.css | 0 src/pages/AddItem/AddItem.jsx | 5 ++ src/pages/Home/Home.css | 22 +++++++ .../App.js => pages/Home/Home.jsx} | 43 ++++++------- src/pages/Items/Items.css | 0 src/pages/Items/Items.jsx | 5 ++ 21 files changed, 177 insertions(+), 58 deletions(-) create mode 100644 src/App.js rename src/{css => components/Header}/Header.css (100%) rename src/components/{Header.js => Header/Header.jsx} (84%) create mode 100644 src/components/ItemList/ItemList.css rename src/components/{ItemList.js => ItemList/ItemList.jsx} (54%) rename src/{css => components/Products}/Product.css (76%) rename src/components/{Products.js => Products/Products.jsx} (92%) delete mode 100644 src/css/App.css create mode 100644 src/css/Global.css delete mode 100644 src/css/ItemList.css create mode 100644 src/pages/AddItem/AddItem.css create mode 100644 src/pages/AddItem/AddItem.jsx create mode 100644 src/pages/Home/Home.css rename src/{components/App.js => pages/Home/Home.jsx} (50%) create mode 100644 src/pages/Items/Items.css create mode 100644 src/pages/Items/Items.jsx diff --git a/package-lock.json b/package-lock.json index a1e590ee6..3d6312751 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@testing-library/user-event": "^13.5.0", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-router-dom": "^7.0.1", "react-scripts": "5.0.1", "web-vitals": "^2.1.4" } @@ -3953,6 +3954,11 @@ "@types/node": "*" } }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" + }, "node_modules/@types/eslint": { "version": "8.44.2", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.2.tgz", @@ -14671,6 +14677,52 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.0.1.tgz", + "integrity": "sha512-WVAhv9oWCNsja5AkK6KLpXJDSJCQizOIyOd4vvB/+eHGbYx5vkhcmcmwWjQ9yqkRClogi+xjEg9fNEOd5EX/tw==", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.0.1.tgz", + "integrity": "sha512-duBzwAAiIabhFPZfDjcYpJ+f08TMbPMETgq254GWne2NW1ZwRHhZLj7tpSp8KGb7JvZzlLcjGUnqLxpZQVEPng==", + "dependencies": { + "react-router": "7.0.1" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/react-router/node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "engines": { + "node": ">=18" + } + }, "node_modules/react-scripts": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", @@ -15480,6 +15532,11 @@ "node": ">= 0.8.0" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==" + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -16512,6 +16569,11 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", diff --git a/package.json b/package.json index 7ff0d6b58..30d5af03c 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "@testing-library/user-event": "^13.5.0", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-router-dom": "^7.0.1", "react-scripts": "5.0.1", "web-vitals": "^2.1.4" }, diff --git a/public/index.html b/public/index.html index 11b93411b..21b8800f6 100644 --- a/public/index.html +++ b/public/index.html @@ -4,7 +4,7 @@ - 판마 마켓 + 판다 마켓
      diff --git a/src/Api.js b/src/Api.js index 812c4d96e..e6979ea58 100644 --- a/src/Api.js +++ b/src/Api.js @@ -1,5 +1,5 @@ -export async function productList({ orderBy = "recent" }) { - const query = `page=1&pageSize=10&orderBy=${orderBy}`; +export async function productList({ orderBy = "recent", pageSize = 10 }) { + const query = `page=1&pageSize=${pageSize}&orderBy=${orderBy}`; const response = await fetch( `https://panda-market-api.vercel.app/products?${query}` ); diff --git a/src/App.js b/src/App.js new file mode 100644 index 000000000..5e2a5be57 --- /dev/null +++ b/src/App.js @@ -0,0 +1,24 @@ +import { Route, Routes, BrowserRouter } from "react-router-dom"; +import Header from "./components/Header/Header.jsx"; +import Home from "./pages/Home/Home.jsx"; +import AddItem from "./pages/AddItem/AddItem.jsx"; +import Items from "./pages/Items/Items.jsx"; +import "./css/Reset.css"; +import "./css/Global.css"; + +function App() { + return ( +
      + +
      + + }> + }> + }> + +
      +
      + ); +} + +export default App; diff --git a/src/css/Header.css b/src/components/Header/Header.css similarity index 100% rename from src/css/Header.css rename to src/components/Header/Header.css diff --git a/src/components/Header.js b/src/components/Header/Header.jsx similarity index 84% rename from src/components/Header.js rename to src/components/Header/Header.jsx index b228e9f6b..80535e8c8 100644 --- a/src/components/Header.js +++ b/src/components/Header/Header.jsx @@ -1,7 +1,7 @@ import React from "react"; -import PandaImg from "../img/pandaLogo__header.png"; -import UserImg from "../img/userImg.png"; -import "../css/Header.css"; +import PandaImg from "../../img/pandaLogo__header.png"; +import UserImg from "../../img/userImg.png"; +import "./Header.css"; export default function Header() { return ( diff --git a/src/components/ItemList/ItemList.css b/src/components/ItemList/ItemList.css new file mode 100644 index 000000000..4b3dc5470 --- /dev/null +++ b/src/components/ItemList/ItemList.css @@ -0,0 +1,11 @@ +.ItemList-ul.flex { + display: flex; + justify-content: center; + align-items: center; + gap: 24px; +} + +.ItemList-ul.grid { + display: grid; + grid-template-columns: repeat(5, 1fr); +} diff --git a/src/components/ItemList.js b/src/components/ItemList/ItemList.jsx similarity index 54% rename from src/components/ItemList.js rename to src/components/ItemList/ItemList.jsx index e55e881e4..238a68fac 100644 --- a/src/components/ItemList.js +++ b/src/components/ItemList/ItemList.jsx @@ -1,12 +1,11 @@ import React from "react"; -import Products from "./Products"; -import "../css/ItemList.css"; +import Products from "../Products/Products.jsx"; +import "./ItemList.css"; -export default function ItemList({ items }) { +export default function ItemList({ items, layoutType }) { return ( -
        +
          {items.map((item) => { - console.log(item); return (
        • diff --git a/src/css/Product.css b/src/components/Products/Product.css similarity index 76% rename from src/css/Product.css rename to src/components/Products/Product.css index 9ca0cc33f..17707535d 100644 --- a/src/css/Product.css +++ b/src/components/Products/Product.css @@ -6,6 +6,7 @@ .product-img { width: 287px; - height: auto; + height: 287px; border-radius: 16px; + object-fit: cover; } diff --git a/src/components/Products.js b/src/components/Products/Products.jsx similarity index 92% rename from src/components/Products.js rename to src/components/Products/Products.jsx index 36be06ebd..995b952d9 100644 --- a/src/components/Products.js +++ b/src/components/Products/Products.jsx @@ -1,5 +1,5 @@ import React from "react"; -import "../css/Product.css"; +import "./Product.css"; export default function Products({ item }) { return ( diff --git a/src/css/App.css b/src/css/App.css deleted file mode 100644 index b7b7c9546..000000000 --- a/src/css/App.css +++ /dev/null @@ -1,13 +0,0 @@ -.App { - background-color: #fcfcfc; -} - -.products__section { - width: 100%; - height: auto; -} - -.favorite-products__container, -.all-products__container { - margin: 0 auto; -} diff --git a/src/css/Global.css b/src/css/Global.css new file mode 100644 index 000000000..915eb0251 --- /dev/null +++ b/src/css/Global.css @@ -0,0 +1,15 @@ +.App { + background-color: #fcfcfc; +} + +* { + box-sizing: border-box; +} + +@font-face { + font-family: "Pretendard-Regular"; + src: url("https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Regular.woff") + format("woff"); + font-weight: 400; + font-style: normal; +} diff --git a/src/css/ItemList.css b/src/css/ItemList.css deleted file mode 100644 index 06cb16800..000000000 --- a/src/css/ItemList.css +++ /dev/null @@ -1,6 +0,0 @@ -.ItemList-ul { - display: flex; - justify-content: center; - align-items: center; - gap: 24px; -} diff --git a/src/index.js b/src/index.js index 4a4b8c2dc..db7b51ca3 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,6 @@ import ReactDOM from "react-dom/client"; -import App from "./components/App"; +import App from "./App"; const root = ReactDOM.createRoot(document.getElementById("root")); root.render(); diff --git a/src/pages/AddItem/AddItem.css b/src/pages/AddItem/AddItem.css new file mode 100644 index 000000000..e69de29bb diff --git a/src/pages/AddItem/AddItem.jsx b/src/pages/AddItem/AddItem.jsx new file mode 100644 index 000000000..2d23dfadf --- /dev/null +++ b/src/pages/AddItem/AddItem.jsx @@ -0,0 +1,5 @@ +import React from "react"; + +export default function AddItem() { + return
          ; +} diff --git a/src/pages/Home/Home.css b/src/pages/Home/Home.css new file mode 100644 index 000000000..90cf4bc48 --- /dev/null +++ b/src/pages/Home/Home.css @@ -0,0 +1,22 @@ +.products__section { + width: 1200px; + max-width: 1200px; + height: auto; + margin: 0 auto; + padding-top: 24px; +} + +.favorite-products__container, +.all-products__container { + display: flex; + flex-direction: column; + justify-content: center; +} + +h1 { + font-family: "Pretendard-Regular"; + font-size: 20px; + font-weight: 700; + line-height: 32px; + color: #111827; +} diff --git a/src/components/App.js b/src/pages/Home/Home.jsx similarity index 50% rename from src/components/App.js rename to src/pages/Home/Home.jsx index a331bfc5e..d2baead98 100644 --- a/src/components/App.js +++ b/src/pages/Home/Home.jsx @@ -1,11 +1,9 @@ import { useEffect, useState } from "react"; -import productList from "../Api"; -import ItemList from "./ItemList"; -import Header from "./Header"; -import "../css/Reset.css"; -import "../css/App.css"; +import productList from "../../Api.js"; +import ItemList from "../../components/ItemList/ItemList.jsx"; +import "./Home.css"; -function App() { +function Home() { const [allItems, setAllItems] = useState([]); const [bestItems, setBestItems] = useState([]); @@ -20,11 +18,8 @@ function App() { const loadBestItems = async () => { try { - const { list } = await productList({ orderBy: "favorite" }); - const sortBestItems = [...list] - .sort((a, b) => b.favoriteCount - a.favoriteCount) - .slice(0, 4); - setBestItems(sortBestItems); + const { list } = await productList({ orderBy: "favorite", pageSize: 4 }); + setBestItems(list); } catch (error) { console.error( "베스트 상품 데이터를 불러오는 중 오류 발생:", @@ -45,20 +40,18 @@ function App() { }; return ( -
          -
          -
          -
          -

          베스트 상품

          - -
          -
          -

          전체 상품

          - -
          -
          -
          +
          +
          +

          베스트 상품

          + +
          +
          +
          +

          전체 상품

          + +
          +
          ); } -export default App; +export default Home; diff --git a/src/pages/Items/Items.css b/src/pages/Items/Items.css new file mode 100644 index 000000000..e69de29bb diff --git a/src/pages/Items/Items.jsx b/src/pages/Items/Items.jsx new file mode 100644 index 000000000..2bb95a20b --- /dev/null +++ b/src/pages/Items/Items.jsx @@ -0,0 +1,5 @@ +import React from "react"; + +export default function Items() { + return
          ; +} From c7cb73cb28cd8b9f249038896cbf6e4c5736d771 Mon Sep 17 00:00:00 2001 From: CJewon <112820744+CJewon@users.noreply.github.com> Date: Wed, 27 Nov 2024 00:53:36 +0900 Subject: [PATCH 06/10] =?UTF-8?q?=EC=B5=9C=EC=8B=A0=EC=88=9C,=20=EC=9D=B8?= =?UTF-8?q?=EA=B8=B0=EC=88=9C=20=EB=93=9C=EB=A1=AD=EC=95=84=EC=9B=83=20htm?= =?UTF-8?q?l=20=EA=B5=AC=ED=98=84=EA=B3=BC=20=EA=B2=80=EC=83=89=20input=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20html=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/{App.js => App.jsx} | 9 ++++--- src/components/Header/Header.css | 3 +-- src/components/ItemList/ItemList.css | 3 +++ src/components/ItemList/ItemList.jsx | 2 +- src/components/Products/Product.css | 36 +++++++++++++++++++++++++-- src/components/Products/Products.jsx | 14 ++++++++--- src/css/Global.css | 5 ++++ src/img/heartIcon.png | Bin 0 -> 464 bytes src/pages/Home/Home.css | 31 ++++++++++++++++++++--- src/pages/Home/Home.jsx | 36 ++++++++++++++++++++------- 10 files changed, 116 insertions(+), 23 deletions(-) rename src/{App.js => App.jsx} (66%) create mode 100644 src/img/heartIcon.png diff --git a/src/App.js b/src/App.jsx similarity index 66% rename from src/App.js rename to src/App.jsx index 5e2a5be57..51f561d13 100644 --- a/src/App.js +++ b/src/App.jsx @@ -1,4 +1,4 @@ -import { Route, Routes, BrowserRouter } from "react-router-dom"; +import { Route, Routes, BrowserRouter, Navigate } from "react-router-dom"; import Header from "./components/Header/Header.jsx"; import Home from "./pages/Home/Home.jsx"; import AddItem from "./pages/AddItem/AddItem.jsx"; @@ -12,8 +12,11 @@ function App() {
          - }> - }> + } + > + }> }>
          diff --git a/src/components/Header/Header.css b/src/components/Header/Header.css index 95153d07d..3b4f7c965 100644 --- a/src/components/Header/Header.css +++ b/src/components/Header/Header.css @@ -1,7 +1,6 @@ .header { - width: 100vw; height: 70px; - border: 1px solid #dfdfdf; + border-bottom: 1px solid #dfdfdf; } .header-nav__container { diff --git a/src/components/ItemList/ItemList.css b/src/components/ItemList/ItemList.css index 4b3dc5470..e68f5dd86 100644 --- a/src/components/ItemList/ItemList.css +++ b/src/components/ItemList/ItemList.css @@ -8,4 +8,7 @@ .ItemList-ul.grid { display: grid; grid-template-columns: repeat(5, 1fr); + justify-content: center; + align-items: center; + gap: 24px; } diff --git a/src/components/ItemList/ItemList.jsx b/src/components/ItemList/ItemList.jsx index 238a68fac..f02e6b8fa 100644 --- a/src/components/ItemList/ItemList.jsx +++ b/src/components/ItemList/ItemList.jsx @@ -8,7 +8,7 @@ export default function ItemList({ items, layoutType }) { {items.map((item) => { return (
        • - +
        • ); })} diff --git a/src/components/Products/Product.css b/src/components/Products/Product.css index 17707535d..90ba25a8b 100644 --- a/src/components/Products/Product.css +++ b/src/components/Products/Product.css @@ -5,8 +5,40 @@ } .product-img { - width: 287px; - height: 287px; border-radius: 16px; object-fit: cover; } + +.product-img.flex { + width: 282px; + height: 282px; +} + +.product-img.grid { + width: 221px; + height: 221px; +} + +.product-name { + font-size: 14px; + font-weight: 500; + line-height: 24px; +} + +.favorite-count__container { + display: flex; + gap: 4px; +} + +.product-price { + font-size: 16px; + font-weight: 700; + line-height: 26px; +} + +.product-favoriteCount { + color: #4b5563; + font-size: 12px; + font-weight: 500; + line-height: 18px; +} diff --git a/src/components/Products/Products.jsx b/src/components/Products/Products.jsx index 995b952d9..99667b855 100644 --- a/src/components/Products/Products.jsx +++ b/src/components/Products/Products.jsx @@ -1,13 +1,21 @@ import React from "react"; import "./Product.css"; +import heartImg from "../../img/heartIcon.png"; -export default function Products({ item }) { +export default function Products({ item, layoutType }) { return (
          - 제품 이미지 + 제품 이미지

          {item.name}

          {item.price}

          -

          {item.favoriteCount}

          +
          + 하트이미지 +

          {item.favoriteCount}

          +
          ); } diff --git a/src/css/Global.css b/src/css/Global.css index 915eb0251..e2b2e1679 100644 --- a/src/css/Global.css +++ b/src/css/Global.css @@ -1,5 +1,6 @@ .App { background-color: #fcfcfc; + font-family: "Pretendard-Regular"; } * { @@ -13,3 +14,7 @@ font-weight: 400; font-style: normal; } + +p { + color: #1f2937; +} diff --git a/src/img/heartIcon.png b/src/img/heartIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..bd7e864deba8275aae2efc32c14916a9820624f1 GIT binary patch literal 464 zcmV;>0WbcEP){TbK0*`Y#qI7m zEw;g66i+fqo88%&Z)X1;fd4jJ-<&i$J`kM}QV|Ikwz98a4?t-(=Hn87AtFv6?{51W zfNH%xB%li-7&2gCq40Tqm_!g!#J@fu?(@FK@Nj-VD(8UeS=%K6Gp+Q&Q!oh=pX)Z| zyDbKSP{y&o%>2ja&0;}YFJ!=zs{1%MwxP!yaC7{mKLlqN*<*0YLH@1Ho(c= zdh)k`RmG-Mjy2>?j?xGN;ajY|1z#2ZVtnUrrPk`fPTL0r45ehPcVlk=0000 literal 0 HcmV?d00001 diff --git a/src/pages/Home/Home.css b/src/pages/Home/Home.css index 90cf4bc48..7c3b905aa 100644 --- a/src/pages/Home/Home.css +++ b/src/pages/Home/Home.css @@ -1,4 +1,4 @@ -.products__section { +.products-section { width: 1200px; max-width: 1200px; height: auto; @@ -11,12 +11,37 @@ display: flex; flex-direction: column; justify-content: center; + gap: 16px; } -h1 { - font-family: "Pretendard-Regular"; +.favorite-products__container { + padding-bottom: 40px; +} + +.all-products__container { + padding-bottom: 43px; +} + +.products-section__title--best, +.products-section__title--all { font-size: 20px; font-weight: 700; line-height: 32px; color: #111827; } + +.all-products__header { + display: flex; + justify-content: space-between; +} + +.all-products__search-container { + display: flex; + gap: 12px; + align-items: center; +} + +.all-products__input { + width: 325px; + height: 42px; +} diff --git a/src/pages/Home/Home.jsx b/src/pages/Home/Home.jsx index d2baead98..9fdcf1eba 100644 --- a/src/pages/Home/Home.jsx +++ b/src/pages/Home/Home.jsx @@ -2,11 +2,12 @@ import { useEffect, useState } from "react"; import productList from "../../Api.js"; import ItemList from "../../components/ItemList/ItemList.jsx"; import "./Home.css"; +import { Link } from "react-router-dom"; function Home() { const [allItems, setAllItems] = useState([]); const [bestItems, setBestItems] = useState([]); - + const [selectedOption, setSelectedOption] = useState("최신순"); const loadAllItems = async () => { try { const { list } = await productList({ orderBy: "recent" }); @@ -33,21 +34,38 @@ function Home() { loadBestItems(); }, []); - const handleSortClick = () => { - setOrderBy((prevOrderBy) => - prevOrderBy === "recent" ? "favorite" : "recent" - ); + const handleOptionClick = (e) => { + setSelectedOption(e.target.value); }; return ( -
          +
          -

          베스트 상품

          +

          베스트 상품

          -
          -

          전체 상품

          +
          +

          전체 상품

          +
          + + + 상품 등록하기 + + +
          +
          From c8e22efd07014eb0a27b22ae4f974b0fc427d5f2 Mon Sep 17 00:00:00 2001 From: CJewon <112820744+CJewon@users.noreply.github.com> Date: Thu, 28 Nov 2024 10:29:12 +0900 Subject: [PATCH 07/10] =?UTF-8?q?form=20=ED=83=9C=EA=B7=B8=20=EB=82=B4?= =?UTF-8?q?=EB=B6=80=EC=97=90=20=EC=9E=88=EB=8A=94=20=ED=83=9C=EA=B7=B8?= =?UTF-8?q?=EB=93=A4=EC=9D=98=20css=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Home/Home.css | 29 +++++++++++++++++++++++++++++ src/pages/Home/Home.jsx | 8 ++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/pages/Home/Home.css b/src/pages/Home/Home.css index 7c3b905aa..5a084e16a 100644 --- a/src/pages/Home/Home.css +++ b/src/pages/Home/Home.css @@ -41,7 +41,36 @@ align-items: center; } +.all-products__add-button { + text-decoration: none; + padding: 8px 23px; + height: 42px; + border: none; + border-radius: 8px; + font-size: 16px; + font-weight: 500; + line-height: 26px; + background-color: #3692ff; + color: #f3f4f6; + text-align: center; +} + .all-products__input { width: 325px; height: 42px; + border-radius: 12px; + border: none; + background-color: #f3f4f6; + padding-left: 16px; +} + +.dropDown-products { + width: 130px; + height: 42px; + border: 1px solid #e5e7eb; + border-radius: 12px; +} + +.dropDown-option__recent { + border-top-left-radius: 8px; } diff --git a/src/pages/Home/Home.jsx b/src/pages/Home/Home.jsx index 9fdcf1eba..44e8a199d 100644 --- a/src/pages/Home/Home.jsx +++ b/src/pages/Home/Home.jsx @@ -61,8 +61,12 @@ function Home() { onChange={handleOptionClick} className="dropDown-products" > - - + +
      From 944208c3dba529b55d7b0d39e82f81fe5c845833 Mon Sep 17 00:00:00 2001 From: CJewon <112820744+CJewon@users.noreply.github.com> Date: Thu, 28 Nov 2024 18:52:29 +0900 Subject: [PATCH 08/10] =?UTF-8?q?=EC=8A=A4=ED=94=84=EB=A6=B0=ED=8A=B8=20?= =?UTF-8?q?=EB=AF=B8=EC=85=985=20=EB=AF=B8=EC=99=84=EC=84=B1=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=BD=94=EB=93=9C=EC=9E=87=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=A0=9C=EA=B3=B5=ED=95=9C=20=EC=8A=A4=ED=94=84=EB=A6=B0?= =?UTF-8?q?=ED=8A=B8=20=EB=AF=B8=EC=85=985=20=EC=99=84=EC=84=B1=EB=B3=B8?= =?UTF-8?q?=EC=9D=84=20=ED=91=9C=EB=B3=B8=EC=9C=BC=EB=A1=9C=20=EC=BB=A4?= =?UTF-8?q?=EB=B0=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/index.html | 28 ++- src/Api.js | 13 -- src/App.js | 29 +++ src/App.jsx | 27 --- src/api/itemApi.js | 18 ++ src/assets/images/icons/arrow_left.svg | 3 + src/assets/images/icons/arrow_right.svg | 3 + src/assets/images/icons/ic_heart.svg | 3 + src/assets/images/icons/ic_search.svg | 3 + src/assets/images/icons/ic_sort.svg | 6 + src/assets/images/logo/logo.svg | 15 ++ src/components/Header/Header.css | 43 ---- src/components/Header/Header.jsx | 24 -- src/components/ItemList/ItemList.css | 14 -- src/components/ItemList/ItemList.jsx | 17 -- src/components/Layout/Header.css | 45 ++++ src/components/Layout/Header.jsx | 42 ++++ src/components/Products/Product.css | 44 ---- src/components/Products/Products.jsx | 21 -- src/components/UI/DropdownList.css | 22 ++ src/components/UI/DropdownList.jsx | 16 ++ src/components/UI/PaginationBar.css | 29 +++ src/components/UI/PaginationBar.jsx | 53 +++++ src/css/Global.css | 20 -- src/css/Reset.css | 129 ----------- src/img/heartIcon.png | Bin 464 -> 0 bytes src/img/pandaLogo__header.png | Bin 1519 -> 0 bytes src/img/userImg.png | Bin 1353 -> 0 bytes src/index.js | 9 +- src/pages/AddItem/AddItem.jsx | 5 - .../AddItemPage.css} | 0 src/pages/AddItemPage/AddItemPage.jsx | 7 + .../CommunityFeedPage.css} | 0 .../CommunityFeedPage/CommunityFeedPage.jsx | 7 + src/pages/Home/Home.css | 76 ------- src/pages/Home/Home.jsx | 79 ------- src/pages/HomePage/HomePage.css | 0 src/pages/HomePage/HomePage.jsx | 7 + src/pages/Items/Items.jsx | 5 - src/pages/LoginPage/LoginPage.css | 0 src/pages/LoginPage/LoginPage.jsx | 7 + src/pages/MarketPage/MarketPage.css | 145 ++++++++++++ src/pages/MarketPage/MarketPage.jsx | 15 ++ .../MarketPage/components/AllItemsSection.jsx | 113 ++++++++++ .../components/BestItemsSection.jsx | 56 +++++ src/pages/MarketPage/components/ItemCard.jsx | 20 ++ src/styles/global.css | 206 ++++++++++++++++++ 47 files changed, 901 insertions(+), 523 deletions(-) delete mode 100644 src/Api.js create mode 100644 src/App.js delete mode 100644 src/App.jsx create mode 100644 src/api/itemApi.js create mode 100644 src/assets/images/icons/arrow_left.svg create mode 100644 src/assets/images/icons/arrow_right.svg create mode 100644 src/assets/images/icons/ic_heart.svg create mode 100644 src/assets/images/icons/ic_search.svg create mode 100644 src/assets/images/icons/ic_sort.svg create mode 100644 src/assets/images/logo/logo.svg delete mode 100644 src/components/Header/Header.css delete mode 100644 src/components/Header/Header.jsx delete mode 100644 src/components/ItemList/ItemList.css delete mode 100644 src/components/ItemList/ItemList.jsx create mode 100644 src/components/Layout/Header.css create mode 100644 src/components/Layout/Header.jsx delete mode 100644 src/components/Products/Product.css delete mode 100644 src/components/Products/Products.jsx create mode 100644 src/components/UI/DropdownList.css create mode 100644 src/components/UI/DropdownList.jsx create mode 100644 src/components/UI/PaginationBar.css create mode 100644 src/components/UI/PaginationBar.jsx delete mode 100644 src/css/Global.css delete mode 100644 src/css/Reset.css delete mode 100644 src/img/heartIcon.png delete mode 100644 src/img/pandaLogo__header.png delete mode 100644 src/img/userImg.png delete mode 100644 src/pages/AddItem/AddItem.jsx rename src/pages/{AddItem/AddItem.css => AddItemPage/AddItemPage.css} (100%) create mode 100644 src/pages/AddItemPage/AddItemPage.jsx rename src/pages/{Items/Items.css => CommunityFeedPage/CommunityFeedPage.css} (100%) create mode 100644 src/pages/CommunityFeedPage/CommunityFeedPage.jsx delete mode 100644 src/pages/Home/Home.css delete mode 100644 src/pages/Home/Home.jsx create mode 100644 src/pages/HomePage/HomePage.css create mode 100644 src/pages/HomePage/HomePage.jsx delete mode 100644 src/pages/Items/Items.jsx create mode 100644 src/pages/LoginPage/LoginPage.css create mode 100644 src/pages/LoginPage/LoginPage.jsx create mode 100644 src/pages/MarketPage/MarketPage.css create mode 100644 src/pages/MarketPage/MarketPage.jsx create mode 100644 src/pages/MarketPage/components/AllItemsSection.jsx create mode 100644 src/pages/MarketPage/components/BestItemsSection.jsx create mode 100644 src/pages/MarketPage/components/ItemCard.jsx create mode 100644 src/styles/global.css diff --git a/public/index.html b/public/index.html index 21b8800f6..d8b2efff5 100644 --- a/public/index.html +++ b/public/index.html @@ -1,10 +1,30 @@ - - - - 판다 마켓 + + + 판다마켓 + + + + +
      diff --git a/src/Api.js b/src/Api.js deleted file mode 100644 index e6979ea58..000000000 --- a/src/Api.js +++ /dev/null @@ -1,13 +0,0 @@ -export async function productList({ orderBy = "recent", pageSize = 10 }) { - const query = `page=1&pageSize=${pageSize}&orderBy=${orderBy}`; - const response = await fetch( - `https://panda-market-api.vercel.app/products?${query}` - ); - if (!response.ok) { - throw new Error("제품목록을 가지고 오는데 실패했습니다."); - } - const date = await response.json(); - return date; -} - -export default productList; diff --git a/src/App.js b/src/App.js new file mode 100644 index 000000000..74736b325 --- /dev/null +++ b/src/App.js @@ -0,0 +1,29 @@ +import { BrowserRouter, Route, Routes } from "react-router-dom"; +import HomePage from "./pages/HomePage/HomePage"; +import LoginPage from "./pages/LoginPage/LoginPage"; +import MarketPage from "./pages/MarketPage/MarketPage"; +import AddItemPage from "./pages/AddItemPage/AddItemPage"; +import CommunityFeedPage from "./pages/CommunityFeedPage/CommunityFeedPage"; +import Header from "./components/Layout/Header"; + +function App() { + return ( + + {/* Global Navigation Bar */} +
      + +
      + + {/* React Router v6부터는 path="/" 대신 간단하게 `index`라고 표기하면 돼요 */} + } /> + } /> + } /> + } /> + } /> + +
      + + ); +} + +export default App; diff --git a/src/App.jsx b/src/App.jsx deleted file mode 100644 index 51f561d13..000000000 --- a/src/App.jsx +++ /dev/null @@ -1,27 +0,0 @@ -import { Route, Routes, BrowserRouter, Navigate } from "react-router-dom"; -import Header from "./components/Header/Header.jsx"; -import Home from "./pages/Home/Home.jsx"; -import AddItem from "./pages/AddItem/AddItem.jsx"; -import Items from "./pages/Items/Items.jsx"; -import "./css/Reset.css"; -import "./css/Global.css"; - -function App() { - return ( -
      - -
      - - } - > - }> - }> - -
      -
      - ); -} - -export default App; diff --git a/src/api/itemApi.js b/src/api/itemApi.js new file mode 100644 index 000000000..fd6ab6a90 --- /dev/null +++ b/src/api/itemApi.js @@ -0,0 +1,18 @@ +export async function getProducts(params = {}) { + // URLSearchParams을 이용하면 파라미터 값을 자동으로 쉽게 인코딩할 수 있어요. + const query = new URLSearchParams(params).toString(); + + try { + const response = await fetch( + `https://panda-market-api.vercel.app/products?${query}` + ); + if (!response.ok) { + throw new Error(`HTTP error: ${response.status}`); + } + const body = await response.json(); + return body; + } catch (error) { + console.error("Failed to fetch products:", error); + throw error; + } +} diff --git a/src/assets/images/icons/arrow_left.svg b/src/assets/images/icons/arrow_left.svg new file mode 100644 index 000000000..2a9de23a6 --- /dev/null +++ b/src/assets/images/icons/arrow_left.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/icons/arrow_right.svg b/src/assets/images/icons/arrow_right.svg new file mode 100644 index 000000000..daa483c3e --- /dev/null +++ b/src/assets/images/icons/arrow_right.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/icons/ic_heart.svg b/src/assets/images/icons/ic_heart.svg new file mode 100644 index 000000000..cad016c13 --- /dev/null +++ b/src/assets/images/icons/ic_heart.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/icons/ic_search.svg b/src/assets/images/icons/ic_search.svg new file mode 100644 index 000000000..52241e6d8 --- /dev/null +++ b/src/assets/images/icons/ic_search.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/icons/ic_sort.svg b/src/assets/images/icons/ic_sort.svg new file mode 100644 index 000000000..657b44f93 --- /dev/null +++ b/src/assets/images/icons/ic_sort.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/images/logo/logo.svg b/src/assets/images/logo/logo.svg new file mode 100644 index 000000000..d497acbfe --- /dev/null +++ b/src/assets/images/logo/logo.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/components/Header/Header.css b/src/components/Header/Header.css deleted file mode 100644 index 3b4f7c965..000000000 --- a/src/components/Header/Header.css +++ /dev/null @@ -1,43 +0,0 @@ -.header { - height: 70px; - border-bottom: 1px solid #dfdfdf; -} - -.header-nav__container { - display: flex; - justify-content: space-between; - align-items: center; - padding: 10px 200px; -} - -.header-nav { - display: flex; - justify-content: center; - align-items: center; - gap: 32px; -} - -.logo__container { - display: flex; - justify-content: space-between; - align-items: center; - width: 153px; -} - -.logo__text { - font-size: 26px; - font-weight: 700; - line-height: 34px; - color: #3692ff; -} - -.header-menu__container { - display: flex; -} - -.header-menu__text { - padding: 15px 21px; - font-size: 18px; - line-height: 26px; - font-weight: 700; -} diff --git a/src/components/Header/Header.jsx b/src/components/Header/Header.jsx deleted file mode 100644 index 80535e8c8..000000000 --- a/src/components/Header/Header.jsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from "react"; -import PandaImg from "../../img/pandaLogo__header.png"; -import UserImg from "../../img/userImg.png"; -import "./Header.css"; - -export default function Header() { - return ( -
      -
      -
      -
      - 판다 로고 이미지 -

      판다마켓

      -
      -
      -

      자유게시판

      -

      중고마켓

      -
      -
      - 사용자 이미지 -
      -
      - ); -} diff --git a/src/components/ItemList/ItemList.css b/src/components/ItemList/ItemList.css deleted file mode 100644 index e68f5dd86..000000000 --- a/src/components/ItemList/ItemList.css +++ /dev/null @@ -1,14 +0,0 @@ -.ItemList-ul.flex { - display: flex; - justify-content: center; - align-items: center; - gap: 24px; -} - -.ItemList-ul.grid { - display: grid; - grid-template-columns: repeat(5, 1fr); - justify-content: center; - align-items: center; - gap: 24px; -} diff --git a/src/components/ItemList/ItemList.jsx b/src/components/ItemList/ItemList.jsx deleted file mode 100644 index f02e6b8fa..000000000 --- a/src/components/ItemList/ItemList.jsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from "react"; -import Products from "../Products/Products.jsx"; -import "./ItemList.css"; - -export default function ItemList({ items, layoutType }) { - return ( -
        - {items.map((item) => { - return ( -
      • - -
      • - ); - })} -
      - ); -} diff --git a/src/components/Layout/Header.css b/src/components/Layout/Header.css new file mode 100644 index 000000000..1bc2b02c5 --- /dev/null +++ b/src/components/Layout/Header.css @@ -0,0 +1,45 @@ +.headerLeft { + display: flex; + align-items: center; +} + +.headerLogo { + margin-right: 16px; +} + +.globalHeader nav ul { + display: flex; + list-style: none; + gap: 8px; + font-weight: bold; + font-size: 16px; + color: #4b5563; +} + +.globalHeader nav ul li a:hover { + color: var(--blue); +} + +.loginLink { + font-size: 16px; + font-weight: 600; + border-radius: 8px; + padding: 11.5px 23px; +} + +@media (min-width: 768px) { + .globalHeader nav ul { + gap: 36px; + font-size: 18px; + } + + .headerLogo { + margin-right: 35px; + } +} + +@media (min-width: 1280px) { + .headerLogo { + margin-right: 47px; + } +} diff --git a/src/components/Layout/Header.jsx b/src/components/Layout/Header.jsx new file mode 100644 index 000000000..9bab51e9b --- /dev/null +++ b/src/components/Layout/Header.jsx @@ -0,0 +1,42 @@ +import React from "react"; +import Logo from "../../assets/images/logo/logo.svg"; +import { Link, NavLink } from "react-router-dom"; +import "./Header.css"; + +// react-router-dom의 NavLink를 이용하면 활성화된 네비게이션 항목을 하이라이트해줄 수 있어요! +function getLinkStyle({ isActive }) { + return { color: isActive ? "var(--blue)" : undefined }; +} + +function Header() { + return ( +
      +
      + + 판다마켓 로고 + + + +
      + + + 로그인 + +
      + ); +} + +export default Header; diff --git a/src/components/Products/Product.css b/src/components/Products/Product.css deleted file mode 100644 index 90ba25a8b..000000000 --- a/src/components/Products/Product.css +++ /dev/null @@ -1,44 +0,0 @@ -.product { - display: flex; - flex-direction: column; - gap: 16px; -} - -.product-img { - border-radius: 16px; - object-fit: cover; -} - -.product-img.flex { - width: 282px; - height: 282px; -} - -.product-img.grid { - width: 221px; - height: 221px; -} - -.product-name { - font-size: 14px; - font-weight: 500; - line-height: 24px; -} - -.favorite-count__container { - display: flex; - gap: 4px; -} - -.product-price { - font-size: 16px; - font-weight: 700; - line-height: 26px; -} - -.product-favoriteCount { - color: #4b5563; - font-size: 12px; - font-weight: 500; - line-height: 18px; -} diff --git a/src/components/Products/Products.jsx b/src/components/Products/Products.jsx deleted file mode 100644 index 99667b855..000000000 --- a/src/components/Products/Products.jsx +++ /dev/null @@ -1,21 +0,0 @@ -import React from "react"; -import "./Product.css"; -import heartImg from "../../img/heartIcon.png"; - -export default function Products({ item, layoutType }) { - return ( -
      - 제품 이미지 -

      {item.name}

      -

      {item.price}

      -
      - 하트이미지 -

      {item.favoriteCount}

      -
      -
      - ); -} diff --git a/src/components/UI/DropdownList.css b/src/components/UI/DropdownList.css new file mode 100644 index 000000000..74f59823a --- /dev/null +++ b/src/components/UI/DropdownList.css @@ -0,0 +1,22 @@ +.dropdownList { + position: absolute; + top: 110%; + right: 0; + background: #fff; + border-radius: 8px; + border: 1px solid #e5e7eb; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + z-index: 99; +} + +.dropdownItem { + padding: 12px 44px; + border-bottom: 1px solid #e5e7eb; + font-size: 16px; + color: #1f2937; + cursor: pointer; +} + +.dropdownItem:last-child { + border-bottom: none; +} diff --git a/src/components/UI/DropdownList.jsx b/src/components/UI/DropdownList.jsx new file mode 100644 index 000000000..a9adae989 --- /dev/null +++ b/src/components/UI/DropdownList.jsx @@ -0,0 +1,16 @@ +import React from "react"; +import "./DropdownList.css"; + +function DropdownList({ onSortSelection }) { + return ( +
      +
      onSortSelection("recent")}> + 최신순 +
      +
      onSortSelection("favorite")}> + 인기순 +
      +
      + ); +} +export default DropdownList; diff --git a/src/components/UI/PaginationBar.css b/src/components/UI/PaginationBar.css new file mode 100644 index 000000000..1841297a9 --- /dev/null +++ b/src/components/UI/PaginationBar.css @@ -0,0 +1,29 @@ +.paginationBar { + display: flex; + align-items: center; + justify-content: center; + gap: 4px; +} + +.paginationButton { + border: 1px solid #e5e7eb; + border-radius: 50%; + width: 40px; + height: 40px; + color: #6b7280; + font-weight: 600; + font-size: 16px; + display: flex; + align-items: center; + justify-content: center; +} + +.paginationButton:disabled { + cursor: default; + opacity: 0.5; +} + +.paginationButton.active { + background-color: var(--blue); + color: #fff; +} diff --git a/src/components/UI/PaginationBar.jsx b/src/components/UI/PaginationBar.jsx new file mode 100644 index 000000000..4116ebb40 --- /dev/null +++ b/src/components/UI/PaginationBar.jsx @@ -0,0 +1,53 @@ +import React from "react"; +import "./PaginationBar.css"; +import { ReactComponent as LeftArrow } from "../../assets/images/icons/arrow_left.svg"; +import { ReactComponent as RightArrow } from "../../assets/images/icons/arrow_right.svg"; + +const PaginationBar = ({ totalPageNum, activePageNum, onPageChange }) => { + const maxVisiblePages = 5; + let startPage; + + if (totalPageNum <= maxVisiblePages) { + startPage = 1; + } else { + startPage = Math.max(activePageNum - Math.floor(maxVisiblePages / 2), 1); + startPage = Math.min(startPage, totalPageNum - maxVisiblePages + 1); + } + + const pages = Array.from( + { length: Math.min(maxVisiblePages, totalPageNum - startPage + 1) }, + (_, i) => startPage + i + ); + + return ( +
      + + {pages.map((page) => ( + + ))} + +
      + ); +}; + +export default PaginationBar; diff --git a/src/css/Global.css b/src/css/Global.css deleted file mode 100644 index e2b2e1679..000000000 --- a/src/css/Global.css +++ /dev/null @@ -1,20 +0,0 @@ -.App { - background-color: #fcfcfc; - font-family: "Pretendard-Regular"; -} - -* { - box-sizing: border-box; -} - -@font-face { - font-family: "Pretendard-Regular"; - src: url("https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Regular.woff") - format("woff"); - font-weight: 400; - font-style: normal; -} - -p { - color: #1f2937; -} diff --git a/src/css/Reset.css b/src/css/Reset.css deleted file mode 100644 index 45a05ecf8..000000000 --- a/src/css/Reset.css +++ /dev/null @@ -1,129 +0,0 @@ -/* http://meyerweb.com/eric/tools/css/reset/ - v2.0 | 20110126 - License: none (public domain) -*/ - -html, -body, -div, -span, -applet, -object, -iframe, -h1, -h2, -h3, -h4, -h5, -h6, -p, -blockquote, -pre, -a, -abbr, -acronym, -address, -big, -cite, -code, -del, -dfn, -em, -img, -ins, -kbd, -q, -s, -samp, -small, -strike, -strong, -sub, -sup, -tt, -var, -b, -u, -i, -center, -dl, -dt, -dd, -ol, -ul, -li, -fieldset, -form, -label, -legend, -table, -caption, -tbody, -tfoot, -thead, -tr, -th, -td, -article, -aside, -canvas, -details, -embed, -figure, -figcaption, -footer, -header, -hgroup, -menu, -nav, -output, -ruby, -section, -summary, -time, -mark, -audio, -video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; -} -/* HTML5 display-role reset for older browsers */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -menu, -nav, -section { - display: block; -} -body { - line-height: 1; -} -ol, -ul { - list-style: none; -} -blockquote, -q { - quotes: none; -} -blockquote:before, -blockquote:after, -q:before, -q:after { - content: ""; - content: none; -} -table { - border-collapse: collapse; - border-spacing: 0; -} diff --git a/src/img/heartIcon.png b/src/img/heartIcon.png deleted file mode 100644 index bd7e864deba8275aae2efc32c14916a9820624f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmV;>0WbcEP){TbK0*`Y#qI7m zEw;g66i+fqo88%&Z)X1;fd4jJ-<&i$J`kM}QV|Ikwz98a4?t-(=Hn87AtFv6?{51W zfNH%xB%li-7&2gCq40Tqm_!g!#J@fu?(@FK@Nj-VD(8UeS=%K6Gp+Q&Q!oh=pX)Z| zyDbKSP{y&o%>2ja&0;}YFJ!=zs{1%MwxP!yaC7{mKLlqN*<*0YLH@1Ho(c= zdh)k`RmG-Mjy2>?j?xGN;ajY|1z#2ZVtnUrrPk`fPTL0r45ehPcVlk=0000 diff --git a/src/img/pandaLogo__header.png b/src/img/pandaLogo__header.png deleted file mode 100644 index 0a1a4f202b8c01b9bed9c3247247c5df221a3493..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1519 zcmV0@}1zIAtc*zpM%B9pxq)7W@=mv*r+KD0E3)@a%a0*iKAdogWy>1{7F{{IIv~MK&pzLFP^vRil4cWbJfR+vRD4QOm*i9}#o zlp#p!v6J>KeK8yn)5Ys`t5;yecSqzHq47xsM~rN?uZca!v{0{K8FekgKQt^_cIBCd zdNjATiaxvaXw_li)-ak|ThQQQ*IyU%9cAUH*j6US0;4`ybE50=mO|jG%SeKt&U&G- ziHP-HdhZ?d4h$G{e`smJzKWfZ{+WjJ`1!YA#XalteILc^TYFy-R^%!m$(r*XUaBRF zSphe7F;5IbneuBdqnGH(m6vZ5rNohyWti)*XJPm5UApBDBAKEeJZaF+N{1;-EvPR6 zYDm#!S$2a?YipZmv+YJX>oqpI3}q;9Su_L?3K{e{l*|&v)Pj1GOBPLyEyHe#=r93t z*CU06IPmd@czVx^BK~$zyiKo>`*u`BI~EJ(3QPWT)zz~NJi1)F1QZp)(c9v7)7o{& z&&@^e-~jx7KR$TlO>%p`HnwgZhK7el%Wm)OA0YCparDq(Jhfp%L$$k3^;zFA1KQXV#ytC2Q z$3(%z*kWhfW3RtDxUKY0+(9-hh^NU9=8G-K3B*JnT0-@W`dPM_TPF?;Cd5f_m3GkA z2Isc_(}Q@qrA^1xgY=Vp45^7qnT{9g_?Q7H2)}|K<&G+8Bo!@4i)%G;6F=_E^fA!2Dw4Z3D6VB4U(Q9M+i9q(3%gnO;@%McTEN|w`Z{NIsI}CLKVcT1gNh;xyUAIn2%kVHl9*!}D`)hGKvQEJMjHmewQvQj))gwwN%lu^F(D|A_FUDeg} z@U_(|7)xWq`Nb|I#|~(eQfi>f2{UNLnV@r%YT`l}!LpOda-(JBRKgNIeWTGokBy4| zu-sj1f(Kuy(z4yky?$F(r5nmm-(vgj;KU=LR;$Bb*kv2amnu<={qSg2uFOHCR0^)p zHx3Tp--#v3a(Z&IbfoFK-LSTgG|Em2sgtJK?6!4Rfufb(O~`$!8ox7PG@7gN_-vAqu-Wu8FlZjE@=}ekBy`CqW5X%MpYC=qqS?^ zStH4ch7h}|DU^8oz1O-0Ih23QdsQhL737P(Iz=|N@u=qzN$Cu&y7yQ7%F^$tX&>ALI;#|(1EuNk2nIzC z&q_X?oQk_Z<Wkp@OpFhEc#Svm zY(xuUaFp>%4oYn3+JFnu`*Z@@XNi%U%Ury2b5WqB>6); +root.render( + + + +); diff --git a/src/pages/AddItem/AddItem.jsx b/src/pages/AddItem/AddItem.jsx deleted file mode 100644 index 2d23dfadf..000000000 --- a/src/pages/AddItem/AddItem.jsx +++ /dev/null @@ -1,5 +0,0 @@ -import React from "react"; - -export default function AddItem() { - return
      ; -} diff --git a/src/pages/AddItem/AddItem.css b/src/pages/AddItemPage/AddItemPage.css similarity index 100% rename from src/pages/AddItem/AddItem.css rename to src/pages/AddItemPage/AddItemPage.css diff --git a/src/pages/AddItemPage/AddItemPage.jsx b/src/pages/AddItemPage/AddItemPage.jsx new file mode 100644 index 000000000..e7ba934cd --- /dev/null +++ b/src/pages/AddItemPage/AddItemPage.jsx @@ -0,0 +1,7 @@ +import React from "react"; + +function AddItemPage() { + return
      AddItemPage
      ; +} + +export default AddItemPage; diff --git a/src/pages/Items/Items.css b/src/pages/CommunityFeedPage/CommunityFeedPage.css similarity index 100% rename from src/pages/Items/Items.css rename to src/pages/CommunityFeedPage/CommunityFeedPage.css diff --git a/src/pages/CommunityFeedPage/CommunityFeedPage.jsx b/src/pages/CommunityFeedPage/CommunityFeedPage.jsx new file mode 100644 index 000000000..60f3d3be2 --- /dev/null +++ b/src/pages/CommunityFeedPage/CommunityFeedPage.jsx @@ -0,0 +1,7 @@ +import React from "react"; + +function CommunityFeedPage() { + return
      CommunityFeedPage
      ; +} + +export default CommunityFeedPage; diff --git a/src/pages/Home/Home.css b/src/pages/Home/Home.css deleted file mode 100644 index 5a084e16a..000000000 --- a/src/pages/Home/Home.css +++ /dev/null @@ -1,76 +0,0 @@ -.products-section { - width: 1200px; - max-width: 1200px; - height: auto; - margin: 0 auto; - padding-top: 24px; -} - -.favorite-products__container, -.all-products__container { - display: flex; - flex-direction: column; - justify-content: center; - gap: 16px; -} - -.favorite-products__container { - padding-bottom: 40px; -} - -.all-products__container { - padding-bottom: 43px; -} - -.products-section__title--best, -.products-section__title--all { - font-size: 20px; - font-weight: 700; - line-height: 32px; - color: #111827; -} - -.all-products__header { - display: flex; - justify-content: space-between; -} - -.all-products__search-container { - display: flex; - gap: 12px; - align-items: center; -} - -.all-products__add-button { - text-decoration: none; - padding: 8px 23px; - height: 42px; - border: none; - border-radius: 8px; - font-size: 16px; - font-weight: 500; - line-height: 26px; - background-color: #3692ff; - color: #f3f4f6; - text-align: center; -} - -.all-products__input { - width: 325px; - height: 42px; - border-radius: 12px; - border: none; - background-color: #f3f4f6; - padding-left: 16px; -} - -.dropDown-products { - width: 130px; - height: 42px; - border: 1px solid #e5e7eb; - border-radius: 12px; -} - -.dropDown-option__recent { - border-top-left-radius: 8px; -} diff --git a/src/pages/Home/Home.jsx b/src/pages/Home/Home.jsx deleted file mode 100644 index 44e8a199d..000000000 --- a/src/pages/Home/Home.jsx +++ /dev/null @@ -1,79 +0,0 @@ -import { useEffect, useState } from "react"; -import productList from "../../Api.js"; -import ItemList from "../../components/ItemList/ItemList.jsx"; -import "./Home.css"; -import { Link } from "react-router-dom"; - -function Home() { - const [allItems, setAllItems] = useState([]); - const [bestItems, setBestItems] = useState([]); - const [selectedOption, setSelectedOption] = useState("최신순"); - const loadAllItems = async () => { - try { - const { list } = await productList({ orderBy: "recent" }); - setAllItems(list); - } catch (error) { - console.error("전체 상품 데이터를 불러오는 중 오류 발생:", error.message); - } - }; - - const loadBestItems = async () => { - try { - const { list } = await productList({ orderBy: "favorite", pageSize: 4 }); - setBestItems(list); - } catch (error) { - console.error( - "베스트 상품 데이터를 불러오는 중 오류 발생:", - error.message - ); - } - }; - - useEffect(() => { - loadAllItems(); - loadBestItems(); - }, []); - - const handleOptionClick = (e) => { - setSelectedOption(e.target.value); - }; - - return ( -
      -
      -

      베스트 상품

      - -
      -
      -
      -

      전체 상품

      -
      - - - 상품 등록하기 - - -
      -
      - -
      -
      - ); -} - -export default Home; diff --git a/src/pages/HomePage/HomePage.css b/src/pages/HomePage/HomePage.css new file mode 100644 index 000000000..e69de29bb diff --git a/src/pages/HomePage/HomePage.jsx b/src/pages/HomePage/HomePage.jsx new file mode 100644 index 000000000..26705c224 --- /dev/null +++ b/src/pages/HomePage/HomePage.jsx @@ -0,0 +1,7 @@ +import React from "react"; + +function HomePage() { + return
      HomePage
      ; +} + +export default HomePage; diff --git a/src/pages/Items/Items.jsx b/src/pages/Items/Items.jsx deleted file mode 100644 index 2bb95a20b..000000000 --- a/src/pages/Items/Items.jsx +++ /dev/null @@ -1,5 +0,0 @@ -import React from "react"; - -export default function Items() { - return
      ; -} diff --git a/src/pages/LoginPage/LoginPage.css b/src/pages/LoginPage/LoginPage.css new file mode 100644 index 000000000..e69de29bb diff --git a/src/pages/LoginPage/LoginPage.jsx b/src/pages/LoginPage/LoginPage.jsx new file mode 100644 index 000000000..15f723760 --- /dev/null +++ b/src/pages/LoginPage/LoginPage.jsx @@ -0,0 +1,7 @@ +import React from "react"; + +function LoginPage() { + return
      LoginPage
      ; +} + +export default LoginPage; diff --git a/src/pages/MarketPage/MarketPage.css b/src/pages/MarketPage/MarketPage.css new file mode 100644 index 000000000..f304e4a4f --- /dev/null +++ b/src/pages/MarketPage/MarketPage.css @@ -0,0 +1,145 @@ +.sectionTitle { + color: #111827; + font-weight: bold; + font-size: 20px; + line-height: normal; +} + +.itemCard { + color: #1f2937; + overflow: hidden; + cursor: pointer; +} + +.itemCardThumbnail { + width: 100%; + height: auto; + object-fit: cover; + border-radius: 16px; + overflow: hidden; + aspect-ratio: 1; /* 정사각형으로 만들어 줌 */ + margin-bottom: 16px; +} + +.itemSummary { + display: flex; + flex-direction: column; + gap: 10px; + flex-grow: 1; +} + +.itemName { + font-size: 16px; + font-weight: 400; + /* 모든 상품 카드가 동일한 크기일 수 있도록 상품명을 한 줄로 제한 */ + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.itemPrice { + font-size: 16px; + font-weight: bold; +} + +.favoriteCount { + display: flex; + align-items: center; + gap: 4px; + color: #4b5563; + font-size: 12px; +} + +.bestItemsContainer { + padding-top: 17px; + padding-bottom: 24px; +} + +.allItemsCardSection { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 32px 8px; +} + +.allItemsSectionHeader { + display: flex; + justify-content: space-between; + align-items: center; +} + +.allItemsSectionHeader:first-child { + padding-bottom: 8px; +} + +.allItemsSectionHeader:nth-child(2) { + padding-bottom: 16px; +} + +.sortButtonWrapper { + position: relative; +} + +.sortDropdownTriggerButton { + border: 1px solid #e5e7eb; + border-radius: 12px; + padding: 9px; + margin-left: 8px; +} + +.searchBarWrapper { + display: flex; + background-color: #f3f4f6; + border-radius: 12px; + padding: 9px 16px; + flex: 1; + align-items: center; +} + +.searchBarInput { + border: none; + flex: 1; + background-color: inherit; + margin-left: 4px; +} + +.searchBarInput::placeholder { + color: #9ca3af; + font-size: 16px; +} + +.searchBarInput:focus { + outline: none; +} + +.paginationBarWrapper { + padding-top: 40px; + padding-bottom: 80px; +} + +@media (min-width: 768px) { + .bestItemsContainer { + margin-bottom: 40px; + } + + .bestItemsCardSection { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 24px; + } + + .allItemsCardSection { + grid-template-columns: repeat(3, 1fr); + gap: 40px 16px; + } +} + +@media (min-width: 1280px) { + .bestItemsCardSection { + grid-template-columns: repeat(4, 1fr); + } + + .allItemsCardSection { + grid-template-columns: repeat(5, 1fr); + gap: 40px 24px; + } +} diff --git a/src/pages/MarketPage/MarketPage.jsx b/src/pages/MarketPage/MarketPage.jsx new file mode 100644 index 000000000..dd78d9065 --- /dev/null +++ b/src/pages/MarketPage/MarketPage.jsx @@ -0,0 +1,15 @@ +import React from "react"; +import BestItemsSection from "./components/BestItemsSection"; +import AllItemsSection from "./components/AllItemsSection"; +import "./MarketPage.css"; + +function MarketPage() { + return ( +
      + + +
      + ); +} + +export default MarketPage; diff --git a/src/pages/MarketPage/components/AllItemsSection.jsx b/src/pages/MarketPage/components/AllItemsSection.jsx new file mode 100644 index 000000000..a0876a483 --- /dev/null +++ b/src/pages/MarketPage/components/AllItemsSection.jsx @@ -0,0 +1,113 @@ +import React, { useEffect, useState } from "react"; +import { getProducts } from "../../../api/itemApi"; +import ItemCard from "./ItemCard"; +import { ReactComponent as SortIcon } from "../../../assets/images/icons/ic_sort.svg"; +import { ReactComponent as SearchIcon } from "../../../assets/images/icons/ic_search.svg"; +import { Link } from "react-router-dom"; +import DropdownList from "../../../components/UI/DropdownList"; +import PaginationBar from "../../../components/UI/PaginationBar"; + +const getPageSize = () => { + const width = window.innerWidth; + if (width < 768) { + // Mobile viewport + return 4; + } else if (width < 1280) { + // Tablet viewport + return 6; + } else { + // Desktop viewport + return 10; + } +}; + +function AllItemsSection() { + const [orderBy, setOrderBy] = useState("recent"); + const [page, setPage] = useState(1); + const [pageSize, setPageSize] = useState(getPageSize()); + const [itemList, setItemList] = useState([]); + const [isDropdownVisible, setIsDropdownVisible] = useState(false); + const [totalPageNum, setTotalPageNum] = useState(); + + const fetchSortedData = async ({ orderBy, page, pageSize }) => { + const products = await getProducts({ orderBy, page, pageSize }); + setItemList(products.list); + setTotalPageNum(Math.ceil(products.totalCount / pageSize)); + }; + + const handleSortSelection = (sortOption) => { + setOrderBy(sortOption); + setIsDropdownVisible(false); + }; + + useEffect(() => { + const handleResize = () => { + setPageSize(getPageSize()); + }; + + // 화면 크기 변경할 때마다 pageSize를 다시 계산해 넣음 + window.addEventListener("resize", handleResize); + fetchSortedData({ orderBy, page, pageSize }); + + // Cleanup function + return () => { + window.removeEventListener("resize", handleResize); + }; + }, [orderBy, page, pageSize]); + + const toggleDropdown = () => { + setIsDropdownVisible(!isDropdownVisible); + }; + + const onPageChange = (pageNumber) => { + setPage(pageNumber); + }; + + return ( +
      +
      +

      판매 중인 상품

      + + 상품 등록하기 + +
      + +
      +
      + + +
      +
      + + {isDropdownVisible && ( + + )} +
      +
      + +
      + {itemList?.map((item) => ( + + ))} +
      + +
      + +
      +
      + ); +} + +export default AllItemsSection; diff --git a/src/pages/MarketPage/components/BestItemsSection.jsx b/src/pages/MarketPage/components/BestItemsSection.jsx new file mode 100644 index 000000000..a2072fbb9 --- /dev/null +++ b/src/pages/MarketPage/components/BestItemsSection.jsx @@ -0,0 +1,56 @@ +import React, { useEffect, useState } from "react"; +import ItemCard from "./ItemCard"; +import { getProducts } from "../../../api/itemApi"; + +const getPageSize = () => { + const width = window.innerWidth; + if (width < 768) { + // Mobile viewport + return 1; + } else if (width < 1280) { + // Tablet viewport + return 2; + } else { + // Desktop viewport + return 4; + } +}; + +function BestItemsSection() { + const [itemList, setItemList] = useState([]); + const [pageSize, setPageSize] = useState(getPageSize()); + + const fetchSortedData = async ({ orderBy, pageSize }) => { + const products = await getProducts({ orderBy, pageSize }); + setItemList(products.list); + }; + + useEffect(() => { + const handleResize = () => { + setPageSize(getPageSize()); + }; + + // 화면 크기 변경할 때마다 pageSize를 다시 계산해 넣음 + window.addEventListener("resize", handleResize); + fetchSortedData({ orderBy: "favorite", pageSize }); + + // Cleanup function + return () => { + window.removeEventListener("resize", handleResize); + }; + }, [pageSize]); + + return ( +
      +

      베스트 상품

      + +
      + {itemList?.map((item) => ( + + ))} +
      +
      + ); +} + +export default BestItemsSection; diff --git a/src/pages/MarketPage/components/ItemCard.jsx b/src/pages/MarketPage/components/ItemCard.jsx new file mode 100644 index 000000000..226c06baa --- /dev/null +++ b/src/pages/MarketPage/components/ItemCard.jsx @@ -0,0 +1,20 @@ +import React from "react"; +import { ReactComponent as HeartIcon } from "../../../assets/images/icons/ic_heart.svg"; + +function ItemCard({ item }) { + return ( +
      + {item.name} +
      +

      {item.name}

      +

      {item.price.toLocaleString()}원

      +
      + + {item.favoriteCount} +
      +
      +
      + ); +} + +export default ItemCard; diff --git a/src/styles/global.css b/src/styles/global.css new file mode 100644 index 000000000..851341a11 --- /dev/null +++ b/src/styles/global.css @@ -0,0 +1,206 @@ +/* Mobile styles */ + +:root { + /* Gray scale */ + --gray-900: #1b1d1f; + --gray-800: #26282b; + --gray-600: #454c53; + --gray-500: #72787f; + --gray-400: #9ea4a8; + --gray-200: #e5e7eb; + --gray-100: #e8ebed; + --gray-50: #f7f7f8; + + /* Primary color */ + --blue: #3692ff; + + /* Layout dimensions */ + --header-height: 70px; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +a { + text-decoration: none; + color: inherit; +} + +button, +input, +textarea, +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + color: inherit; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +button { + background: none; + border: none; + outline: none; + box-shadow: none; + cursor: pointer; +} + +img, +svg { + vertical-align: bottom; +} + +body { + color: #374151; + word-break: keep-all; + font-family: "Pretendard", sans-serif; +} + +header { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: var(--header-height); + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 16px; + background-color: #ffffff; + border-bottom: 1px solid #dfdfdf; + z-index: 999; +} + +.withHeader { + margin-top: var(--header-height); +} + +footer { + background-color: #111827; + color: #9ca3af; + font-size: 16px; + padding: 32px; + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 60px; +} + +#copyright { + order: 3; + flex-basis: 100%; +} + +#footerMenu { + display: flex; + gap: 30px; + color: var(--gray-200); +} + +#socialMedia { + display: flex; + gap: 12px; +} + +.wrapper { + width: 100%; + padding: 0 16px; +} + +h1 { + font-size: 40px; + font-weight: 700; + line-height: 56px; + letter-spacing: 0.02em; +} + +.button { + background-color: var(--blue); + color: #ffffff; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.button:hover { + background-color: #1967d6; +} + +.button:focus { + background-color: #1251aa; +} + +.button:disabled { + background-color: #9ca3af; + cursor: default; + pointer-events: none; +} + +.pill-button { + font-size: 16px; + font-weight: 600; + border-radius: 999px; + padding: 14.5px 33.5px; +} + +.full-width { + width: 100%; +} + +.break-on-desktop { + display: none; +} + +/* Tablet styles */ + +@media (min-width: 768px) { + header { + padding: 0 24px; + } + + .wrapper { + padding: 0 24px; + } + + .pill-button { + font-size: 20px; + font-weight: 700; + padding: 16px 126px; + } + + footer { + padding: 32px 104px 108px 104px; + } + + #copyright { + flex-basis: auto; + order: 0; + } +} + +/* Desktop styles */ + +@media (min-width: 1280px) { + header { + padding: 0 200px; + } + + .wrapper { + max-width: 1200px; + margin: 0 auto; + } + + .break-on-desktop { + display: inline; + } + + footer { + padding: 32px 200px 108px 200px; + } +} From 7104975ebd42cd69e672ab88c44f08c752611afa Mon Sep 17 00:00:00 2001 From: CJewon <112820744+CJewon@users.noreply.github.com> Date: Sat, 30 Nov 2024 12:51:56 +0900 Subject: [PATCH 09/10] =?UTF-8?q?addItemPage=20html=EA=B3=BC=20css=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/AddItemPage/AddItemPage.css | 74 ++++++++++++++++++++++++ src/pages/AddItemPage/AddItemPage.jsx | 54 ++++++++++++++++- src/pages/AddItemPage/components/Tag.jsx | 5 ++ 3 files changed, 131 insertions(+), 2 deletions(-) create mode 100644 src/pages/AddItemPage/components/Tag.jsx diff --git a/src/pages/AddItemPage/AddItemPage.css b/src/pages/AddItemPage/AddItemPage.css index e69de29bb..34db2cc2c 100644 --- a/src/pages/AddItemPage/AddItemPage.css +++ b/src/pages/AddItemPage/AddItemPage.css @@ -0,0 +1,74 @@ +.addItems__container { + width: 1200px; + max-width: 1200px; + margin: 0 auto; + padding-top: 24px; + padding-bottom: 69px; +} + +.addItems-title__container { + display: flex; + justify-content: space-between; + align-items: center; + padding-bottom: 24px; +} + +.addItems-title { + font-size: 20px; + font-weight: 700; + line-height: 32px; +} + +.addItems-button { + background-color: #9ca3af; + height: 42px; + border-radius: 8px; + padding: 0 23px; + font-size: 16px; + font-weight: 600; + line-height: 26px; +} + +.input-form__container { + display: flex; + flex-direction: column; + gap: 32px; +} + +.addItems-img__container, +.addItems-name__container, +.addItems-explain__container, +.addItems-price__container, +.addItems-tag__container { + display: flex; + flex-direction: column; + gap: 16px; +} + +.addItems-img__title, +.addItems-name__title, +.addItems-explain__title, +.addItems-price__title, +.addItems-tag__title { + font-size: 18px; + font-weight: 700; + line-height: 26px; +} + +.addItems-name__input, +.addItems-price__input, +.addItems-tag__input { + height: 56px; + border: none; + background-color: #f3f4f6; + border-radius: 12px; + padding: 24px 15px; +} + +.addItems-explain__input { + height: 282px; + border: none; + background-color: #f3f4f6; + border-radius: 12px; + padding: 24px 15px; +} diff --git a/src/pages/AddItemPage/AddItemPage.jsx b/src/pages/AddItemPage/AddItemPage.jsx index e7ba934cd..2db9c02d8 100644 --- a/src/pages/AddItemPage/AddItemPage.jsx +++ b/src/pages/AddItemPage/AddItemPage.jsx @@ -1,7 +1,57 @@ import React from "react"; - +import "./AddItemPage.css"; function AddItemPage() { - return
      AddItemPage
      ; + return ( +
      +
      +

      상품 등록하기

      + +
      +
      +
      +

      상품 이미지

      + + +
      +
      +

      상품명

      + +
      +
      +

      상품 소개

      + +
      +
      +

      판매가격

      + +
      +
      +

      태그

      + +
      +
      +
      + ); } export default AddItemPage; diff --git a/src/pages/AddItemPage/components/Tag.jsx b/src/pages/AddItemPage/components/Tag.jsx new file mode 100644 index 000000000..48a21d06c --- /dev/null +++ b/src/pages/AddItemPage/components/Tag.jsx @@ -0,0 +1,5 @@ +import React from "react"; + +export default function Tag() { + return
      Tag
      ; +} From 702b080323af4897d065aad2e551061c085f1622 Mon Sep 17 00:00:00 2001 From: CJewon <112820744+CJewon@users.noreply.github.com> Date: Mon, 2 Dec 2024 11:54:57 +0900 Subject: [PATCH 10/10] =?UTF-8?q?=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/images/icons/ic_X.png | Bin 0 -> 597 bytes src/pages/AddItemPage/AddItemPage.css | 6 ++++ src/pages/AddItemPage/AddItemPage.jsx | 43 +++++++++++++++++++---- src/pages/AddItemPage/components/Tag.css | 14 ++++++++ src/pages/AddItemPage/components/Tag.jsx | 22 ++++++++++-- 5 files changed, 76 insertions(+), 9 deletions(-) create mode 100644 src/assets/images/icons/ic_X.png create mode 100644 src/pages/AddItemPage/components/Tag.css diff --git a/src/assets/images/icons/ic_X.png b/src/assets/images/icons/ic_X.png new file mode 100644 index 0000000000000000000000000000000000000000..4acc054fec8184d15398d352d9dd82e711dd2e75 GIT binary patch literal 597 zcmV-b0;>IqP)4&) zF(!Vs0z1yx>@LIZuzpqgCNQ&{nP<+&&H?yoV*L!Ynl;c#YO8>g6N|DOFuV=6m^Z<+ zM!7Iw{}gz0*IFR9_zWOkwm8649iS%r`(m!E zB+XlF_k+qg4d=X%ngN)54{=ZmUsX_r>;No=nM+|tkGx%!) jjuUOvOQrlXeudruTVcT#AF8-e00000NkvXXu0mjfAFl { + if (event.key === "Enter") { + event.preventDefault(); + if (inputValue.trim()) { + setTags((prevTags) => [...prevTags, inputValue.trim()]); + setInputValue(""); + } + } + }; + const handleInputChange = (event) => { + setInputValue(event.target.value); + }; + + const handleDeleteClick = (tags) => { + setTags((prevTags) => prevTags.filter((tag) => tag != tags)); + }; return (
      @@ -10,11 +30,11 @@ function AddItemPage() {

      상품 이미지

      -
      @@ -23,6 +43,7 @@ function AddItemPage() { type="text" placeholder="상품명을 입력해주세요" className="addItems-name__input" + value={value} />
      @@ -31,6 +52,7 @@ function AddItemPage() { type="text" placeholder="상품 소개를 입력해주세요" className="addItems-explain__input" + value={value} />
      @@ -39,15 +61,22 @@ function AddItemPage() { type="number" className="addItems-price__input" placeholder="판매 가격을 입력해주세요" + value={value} />

      태그

      - +
      + + +
      diff --git a/src/pages/AddItemPage/components/Tag.css b/src/pages/AddItemPage/components/Tag.css new file mode 100644 index 000000000..2aa8f66bc --- /dev/null +++ b/src/pages/AddItemPage/components/Tag.css @@ -0,0 +1,14 @@ +.tags__container { + display: flex; + flex-wrap: wrap; + gap: 12px; +} + +.tag { + display: inline-flex; + align-items: center; + gap: 8px; + border-radius: 26px; + background-color: #f3f4f6; + flex-shrink: 0; +} diff --git a/src/pages/AddItemPage/components/Tag.jsx b/src/pages/AddItemPage/components/Tag.jsx index 48a21d06c..2690215b7 100644 --- a/src/pages/AddItemPage/components/Tag.jsx +++ b/src/pages/AddItemPage/components/Tag.jsx @@ -1,5 +1,23 @@ import React from "react"; +import "./Tag.css"; +import iconX from "../../../assets/images/icons/ic_X.png"; -export default function Tag() { - return
      Tag
      ; +export default function Tag({ tags, onDelete }) { + return ( +
      + {tags.map((tag) => { + return ( +
      +

      {tag}

      + 삭제아이콘 onDelete(tag)} + /> +
      + ); + })} +
      + ); }