From ba733769cdfc35bb4411882b59d7f5dd2860bacf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=A7=80=EB=82=98?= Date: Fri, 9 Feb 2024 03:28:56 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feature-028:=20=EC=98=81=EC=83=81=20?= =?UTF-8?q?=EC=B6=94=EC=B2=9C=20=EB=AA=A8=EB=8B=AC=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 + src/apis/user.ts | 6 + src/assets/card-image.png | Bin 0 -> 47930 bytes src/components/Home/InsightVideos.tsx | 16 ++- src/components/Home/RecentVideos.tsx | 2 +- src/components/Home/SearchYoutube.tsx | 10 +- src/components/category/Card.tsx | 2 +- src/components/modals/RecommendationModal.tsx | 74 ++++++++++++ src/models/user.ts | 4 + src/pages/HomePage.tsx | 6 + src/stores/modal.ts | 5 + .../modals/RecommendationModal.style.ts | 108 ++++++++++++++++++ yarn.lock | 54 ++++++++- 13 files changed, 277 insertions(+), 12 deletions(-) create mode 100644 src/assets/card-image.png create mode 100644 src/components/modals/RecommendationModal.tsx create mode 100644 src/styles/modals/RecommendationModal.style.ts diff --git a/package.json b/package.json index aa4ce91..7d60688 100644 --- a/package.json +++ b/package.json @@ -12,9 +12,11 @@ "dependencies": { "@types/jest": "^29.5.11", "@types/node": "^20.11.9", + "@types/react-modal": "^3.16.3", "axios": "^1.6.4", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-modal": "^3.16.1", "react-router-dom": "^6.21.2", "recoil": "^0.7.7", "recoil-persist": "^5.1.0", diff --git a/src/apis/user.ts b/src/apis/user.ts index 1dd0d57..b5562d0 100644 --- a/src/apis/user.ts +++ b/src/apis/user.ts @@ -1,6 +1,7 @@ import { APIResponse } from '@/models/config/axios'; import { LoginRequest, LoginResponse } from '@/models/user'; import { AlarmResponse } from '@/models/alarm'; +import { getNicknameResponse } from '@/models/user'; import axios from './config/instance'; @@ -27,3 +28,8 @@ export const joinAPI = (data: JoinRequest) => { data, ); }; + +export const getNicknameAPI = () => { + return axios.get>(PREFIX + '/myPage/myInfo'); +}; + diff --git a/src/assets/card-image.png b/src/assets/card-image.png new file mode 100644 index 0000000000000000000000000000000000000000..b236fb5cb513edcac0bbca5ed55efc4c44a562b7 GIT binary patch literal 47930 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� zHF{{Y++;o7rVhUE&k+z^?LIh)`ySbk%Pv11w?A+-4)u>?$ALrGc=`%lck4Z>*>cA{ zTk-90-h_9*_XT*xtIkFn-LCI^_ZHl7?>?M;{uwAc5mAx3LY`QV~abD`==&s1?f{i)>^Wy`COz;Oi$Df=?1DVip4ck_LNf+*l^+kYUMg#3UAxJ8zT_`kR%JNN17)g-Pq%vC*(M*CE zw3bceFnr~WG7)KRif}`f#1b9dq^S?H3nt}7k6+E87BnWQ|I!Pq-ee6s&`uL#R84|i z#bl5MUX*L%=&6KJw*}1+)7rQiSzQ~o@zjsd*o?G+Op#rPe=B4 zZPZ3>{Bh$c*R1|yjLiQ9!&Do!Q5(JmaHgh-#xYYU3FnHA7SzwNV?-_^278+Nh1%c*aM~5Y = ({ username, popularHashtags }) => { - const formattedHashtags = popularHashtags.map(tag => '#' + tag); + const formattedHashtags = popularHashtags.map(tag => '#' + tag); + const [categoryItems] = useState([]); + const [checkedItems, setCheckedItems] = useState([]); return ( @@ -22,12 +25,15 @@ const InsightVideos: React.FC = ({ username, popularHashtags
- +
-
); -}; + }; export default InsightVideos; diff --git a/src/components/Home/RecentVideos.tsx b/src/components/Home/RecentVideos.tsx index c921f82..90db761 100644 --- a/src/components/Home/RecentVideos.tsx +++ b/src/components/Home/RecentVideos.tsx @@ -1,6 +1,6 @@ import React from 'react' import { RecentVideosContainer, VideoButton, VideosSubtitle, VideosTitle } from '@/styles/HomepageStyle'; -import Card from '../category/Card'; +// import Card from '../category/Card'; const RecentVideos: React.FC = () => { return ( diff --git a/src/components/Home/SearchYoutube.tsx b/src/components/Home/SearchYoutube.tsx index 479b404..2158e26 100644 --- a/src/components/Home/SearchYoutube.tsx +++ b/src/components/Home/SearchYoutube.tsx @@ -1,6 +1,8 @@ import React, { useState, ChangeEvent, FormEvent } from 'react'; import theme from '@/styles/theme'; import ProgressBar from './ProgressBar'; +import { useSetRecoilState } from 'recoil'; +import { recommendationModalState } from '@/stores/modal'; import { SearchForm, @@ -22,6 +24,8 @@ const SearchYoutube: React.FC = ({ onSearch }) => { const [isTextValid, setIsTextValid] = useState(true); const [isConverting, setIsConverting] = useState(false); + const setModalOpen = useSetRecoilState(recommendationModalState); + const handleSubmit = (event: FormEvent) => { event.preventDefault(); if (isValidYoutubeLink(inputLink)) { @@ -29,6 +33,7 @@ const SearchYoutube: React.FC = ({ onSearch }) => { setIsTextValid(true); setIsConverting(true); onSearch(inputLink); + setModalOpen(true); } else { setIsButtonValid(false); setIsTextValid(false); @@ -90,7 +95,8 @@ const SearchYoutube: React.FC = ({ onSearch }) => { /> = ({ onSearch }) => { 변환하기 - {isConverting && } + {isConverting && } ); diff --git a/src/components/category/Card.tsx b/src/components/category/Card.tsx index cb8a449..527f65a 100644 --- a/src/components/category/Card.tsx +++ b/src/components/category/Card.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useState } from 'react'; import VideoTag from '../common/videoTag'; import * as CardStyles from '@/styles/category/Card.style'; -interface cardDummy { +export interface cardDummy { imageURL: string; title: string; summary: string; diff --git a/src/components/modals/RecommendationModal.tsx b/src/components/modals/RecommendationModal.tsx new file mode 100644 index 0000000..066aedf --- /dev/null +++ b/src/components/modals/RecommendationModal.tsx @@ -0,0 +1,74 @@ +import React, { useState, useEffect } from 'react'; +import { useRecoilState } from 'recoil'; +import { recommendationModalState } from '@/stores/modal'; +import useOutsideClick from '@/hooks/useOutsideClick'; + +import emptyvideoImg from '@/assets/empty-video.png'; +import CloseIcon from '@/assets/icons/close.svg?react'; +import cardimageImg from '@/assets/card-image.png'; + +import { RecommendationModalContainer } from '@/styles/modals/RecommendationModal.style'; +import { getNicknameAPI } from '@/apis/user'; + +const RecommendationModal: React.FC = () => { + const [nickname, setNickname] = useState(''); + const [modalOpen, setModalOpen] = useRecoilState(recommendationModalState); + + const closeModal = () => { + setModalOpen(false); + } + + const [modalRef] = useOutsideClick(closeModal); + + useEffect(() => { + async function fetchNickname() { + const response = await getNicknameAPI(); + setNickname(response.data.result.nickname); + } + + fetchNickname(); + }, []); + + + return ( + +
+
+
+ +
+
+
+ emptyvideoImg +
+ 기다리는 동안 이런 영상은 어때요? +
+
+ {nickname}님을 위해 미리 정리 된 영상을 소개해드릴게요 +
+
+
+
+
+ card-image +
+

+ 우리는 카카오워크로 일해요 +

+
+ + # 디자인 + + + # 진로 + +
+
+
+
+
+ ); +}; + +export default RecommendationModal; \ No newline at end of file diff --git a/src/models/user.ts b/src/models/user.ts index cbb550d..ee505cd 100644 --- a/src/models/user.ts +++ b/src/models/user.ts @@ -12,4 +12,8 @@ export interface CheckEmailRequest { } export interface CheckEmailResponse { +} + +export interface getNicknameResponse { + nickname: string; } \ No newline at end of file diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index 3b1b69a..266dde4 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -5,6 +5,9 @@ import { } from '@/styles/HomepageStyle'; import RecentVideos from '@/components/Home/RecentVideos'; import InsightVideos from '@/components/Home/InsightVideos'; +import { useRecoilValue } from 'recoil'; +import { recommendationModalState } from '@/stores/modal'; +import RecommendationModal from '@/components/modals/RecommendationModal'; export interface Video { id: string; @@ -19,9 +22,12 @@ const HomePage: React.FC = () => { console.log(value); }; + const isModalOpen = useRecoilValue(recommendationModalState); + return ( + {isModalOpen && } diff --git a/src/stores/modal.ts b/src/stores/modal.ts index fb5db79..dda1222 100644 --- a/src/stores/modal.ts +++ b/src/stores/modal.ts @@ -9,3 +9,8 @@ export const summaryTransformModalState = atom({ key: 'summary-transform-modal', default: false, }); + +export const recommendationModalState = atom({ + key: 'recommendationModal', + default: false, +}); \ No newline at end of file diff --git a/src/styles/modals/RecommendationModal.style.ts b/src/styles/modals/RecommendationModal.style.ts new file mode 100644 index 0000000..eedd43c --- /dev/null +++ b/src/styles/modals/RecommendationModal.style.ts @@ -0,0 +1,108 @@ +import styled from 'styled-components'; +import theme from '../theme'; + +export const RecommendationModalContainer = styled.div<{ isOpen: boolean }>` + position: fixed; + z-index: 100; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.5); + display: flex; + justify-content: center; + align-items: center; + + .modal-container { + padding: 40px 61px; + display: flex; + flex-direction: column; + align-items: center; + width: 700px; + height: 463.13px; + position: relative; + background: white; + border-radius: 20px; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); + } + + .close-btn { + width: 600px; + display: flex; + justify-content: flex-end; + cursor: pointer; + } + + .inform-wrapper { + width: 600px; + height: 144px; + display: flex; + justify-content: center; + align-items: center; + } + + .inform { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + } + + .inform-text { + margin-top: 12px; + margin-bottom: 12px; + color: ${theme.color.gray500}; + font-size: 24px; + line-height: 1.6em; + } + + .inform-subtext { + color: ${theme.color.gray300}; + font-size: 16px; + line-height: 1.6em; + } + + .modal-card { + width: 578px; + height: 163.13px; + margin-top: 48px; + display: flex; + flex-direction: row; + align-items: flex-start; + cursor: pointer; + } + + .modal-card img { + border: none; + border-top-left-radius: 20px; + border-bottom-left-radius: 20px; + width: 290px; + height: auto; + } + + .card-text { + width: 288px; + padding: 24px 20px; + } + + .card-title { + width: 248px; + height: 78px; + font-size: 16px; + font-weight: bold; + text-align: left; + } + + .hashtag { + display: flex; + flex-direction: row; + justify-content: flex-start; + } + .card-hashtag { + color: ${theme.color.gray400}; + padding: 6px 10px; + border-radius: 8px; + background-color: ${theme.color.gray100}; + margin-right: 8px; + } +` \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index b2641d3..420cd38 100644 --- a/yarn.lock +++ b/yarn.lock @@ -749,6 +749,13 @@ dependencies: "@types/react" "*" +"@types/react-modal@^3.16.3": + version "3.16.3" + resolved "https://registry.yarnpkg.com/@types/react-modal/-/react-modal-3.16.3.tgz#250f32c07f1de28e2bcf9c3e84b56adaa6897013" + integrity sha512-xXuGavyEGaFQDgBv4UVm8/ZsG+qxeQ7f77yNrW3n+1J6XAstUy5rYHeIHPh1KzsGc6IkCIdu6lQ2xWzu1jBTLg== + dependencies: + "@types/react" "*" + "@types/react-router-dom@^5.3.3": version "5.3.3" resolved "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz" @@ -1386,6 +1393,11 @@ esutils@^2.0.2: resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +exenv@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" + integrity sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw== + expect@^29.0.0: version "29.7.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" @@ -1776,7 +1788,7 @@ lodash.merge@^4.6.2: resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -loose-envify@^1.1.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -1871,6 +1883,11 @@ node-releases@^2.0.14: resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + once@^1.3.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" @@ -2000,6 +2017,15 @@ pretty-format@^29.0.0, pretty-format@^29.7.0: ansi-styles "^5.0.0" react-is "^18.0.0" +prop-types@^15.7.2: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" @@ -2023,7 +2049,7 @@ react-dom@^18.2.0: loose-envify "^1.1.0" scheduler "^0.23.0" -react-is@^16.7.0: +react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -2033,6 +2059,21 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== +react-lifecycles-compat@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-modal@^3.16.1: + version "3.16.1" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.16.1.tgz#34018528fc206561b1a5467fc3beeaddafb39b2b" + integrity sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg== + dependencies: + exenv "^1.2.0" + prop-types "^15.7.2" + react-lifecycles-compat "^3.0.0" + warning "^4.0.3" + react-refresh@^0.14.0: version "0.14.0" resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz" @@ -2067,7 +2108,7 @@ recoil-persist@^5.1.0: recoil@^0.7.7: version "0.7.7" - resolved "https://registry.npmjs.org/recoil/-/recoil-0.7.7.tgz" + resolved "https://registry.yarnpkg.com/recoil/-/recoil-0.7.7.tgz#c5f2c843224384c9c09e4a62c060fb4c1454dc8e" integrity sha512-8Og5KPQW9LwC577Vc7Ug2P0vQshkv1y3zG3tSSkWMqkWSwHmE+by06L8JtnGocjW6gcCvfwB3YtrJG6/tWivNQ== dependencies: hamt_plus "1.0.2" @@ -2344,6 +2385,13 @@ vite@^5.0.12: optionalDependencies: fsevents "~2.3.3" +warning@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + which@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" From c4ee01f8c8e2a5f2dbe2122a59a261afa85a78dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=A7=80=EB=82=98?= Date: Fri, 9 Feb 2024 03:34:10 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feature-028:=20=EC=82=AC=EC=9A=A9=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EC=BD=94=EB=93=9C=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/App.tsx b/src/App.tsx index 7dedea9..8e7d35b 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -11,7 +11,7 @@ import CategoryPage from '@/pages/CategoryPage'; import FindEmailPage from '@/pages/FindEmailPage'; import FindPasswordPage from '@/pages/FindPasswordPage'; import HomePage from '@/pages/HomePage'; -import GuestPage from './pages/GuestPage'; +// import GuestPage from './pages/GuestPage'; import ProfilePage from '@/pages/ProfilePage'; import SearchPage from '@/pages/SearchPage'; import SignInPage from '@/pages/SignInPage';