From 45db651469bf550fdd9b57e29262c909341f5880 Mon Sep 17 00:00:00 2001 From: moonhuicheol Date: Fri, 17 Jan 2025 15:38:18 +0900 Subject: [PATCH 1/9] =?UTF-8?q?=F0=9F=90=9B=20fix:=20=EB=AA=A8=EB=8B=AC?= =?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/components/ui/modal/modalComponent.tsx | 6 +++++- src/pages/game/gameRoomList.tsx | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/ui/modal/modalComponent.tsx b/src/components/ui/modal/modalComponent.tsx index 36684b3..2d84a4b 100644 --- a/src/components/ui/modal/modalComponent.tsx +++ b/src/components/ui/modal/modalComponent.tsx @@ -4,6 +4,7 @@ import BigDeck from "../bigDeck/BigDeck"; import TurnWaiting from "../modalContents/TurnWaiting"; import GameWaiting from "../modalContents/GameWaiting"; import Alert from "../modalContents/Alert"; +import GuessNumber from "../selectionNumber/GuessNumber"; export const modalComponents: Record = { firstSelect: , @@ -11,7 +12,10 @@ export const modalComponents: Record = { selectWhiteBlack: , turnWaiting: , gameWaiting: , - GamrRoomJoinConfirm: ( + guessNumber: , + myTurn: , + + GameRoomJoinConfirm: ( ), }; diff --git a/src/pages/game/gameRoomList.tsx b/src/pages/game/gameRoomList.tsx index 8025b58..ec484db 100644 --- a/src/pages/game/gameRoomList.tsx +++ b/src/pages/game/gameRoomList.tsx @@ -22,7 +22,7 @@ export default function GameRoomList() { const onClickModalOpen = () => { if (!accessToken || accessToken === null) { - openModal("GamrRoomJoinConfirm", "white"); + openModal("GameRoomJoinConfirm", "white"); } else { openModal("makeRoom", "white"); } From feb7440e5c91a7bbaa9b79bc040e2985a8996313 Mon Sep 17 00:00:00 2001 From: moonhuicheol Date: Fri, 17 Jan 2025 15:52:15 +0900 Subject: [PATCH 2/9] =?UTF-8?q?=F0=9F=90=9B=20fix:=20=20=EB=AA=A8=EB=8B=AC?= =?UTF-8?q?=20=EC=88=98=EC=A0=952?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ui/modal/modalComponent.tsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/components/ui/modal/modalComponent.tsx b/src/components/ui/modal/modalComponent.tsx index 5670e3a..2d84a4b 100644 --- a/src/components/ui/modal/modalComponent.tsx +++ b/src/components/ui/modal/modalComponent.tsx @@ -18,7 +18,4 @@ export const modalComponents: Record = { GameRoomJoinConfirm: ( ), - guessNumber: , - myTurn: , - }; From 0626c925decf4aec5a656a0972100d3c39d86c53 Mon Sep 17 00:00:00 2001 From: danggin Date: Fri, 17 Jan 2025 15:53:40 +0900 Subject: [PATCH 3/9] =?UTF-8?q?=F0=9F=92=84=20style:=20=EA=B2=8C=EC=9E=84?= =?UTF-8?q?=20=EC=B1=84=ED=8C=85=EC=B0=BD=20=EB=A0=88=EC=9D=B4=EC=95=84?= =?UTF-8?q?=EC=9B=83=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ui/card/chatting/ChattingStyle.ts | 1 + src/components/ui/chatInput/chatInputStyle.ts | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/ui/card/chatting/ChattingStyle.ts b/src/components/ui/card/chatting/ChattingStyle.ts index 7f6a6ff..4fdb6c2 100644 --- a/src/components/ui/card/chatting/ChattingStyle.ts +++ b/src/components/ui/card/chatting/ChattingStyle.ts @@ -19,4 +19,5 @@ export const chatInputBoxContainer = styled.div` display: flex; flex-direction: column; gap: 10px; + height: 100%; `; diff --git a/src/components/ui/chatInput/chatInputStyle.ts b/src/components/ui/chatInput/chatInputStyle.ts index ca77810..6fe5c36 100644 --- a/src/components/ui/chatInput/chatInputStyle.ts +++ b/src/components/ui/chatInput/chatInputStyle.ts @@ -3,8 +3,8 @@ import styled from "styled-components"; export const chatLog = styled.div` flex-grow: 1; font-size: 14px; - max-height: 290px; overflow-y: scroll; + height: 100%; `; export const chatInput = styled.input` @@ -31,5 +31,4 @@ export const chatInputBox = styled.div` width: 100%; display: flex; gap: 10px; - height: 100%; `; From ceb82926f9e99f425bd5e3bcd52203749548adc0 Mon Sep 17 00:00:00 2001 From: danggin Date: Fri, 17 Jan 2025 15:54:31 +0900 Subject: [PATCH 4/9] =?UTF-8?q?=F0=9F=92=A4=20chore:=20=EC=B6=A9=EB=8F=8C?= =?UTF-8?q?=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ui/modal/modalComponent.tsx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/components/ui/modal/modalComponent.tsx b/src/components/ui/modal/modalComponent.tsx index 5670e3a..1b940f4 100644 --- a/src/components/ui/modal/modalComponent.tsx +++ b/src/components/ui/modal/modalComponent.tsx @@ -12,13 +12,9 @@ export const modalComponents: Record = { selectWhiteBlack: , turnWaiting: , gameWaiting: , - guessNumber: , - myTurn: , - GameRoomJoinConfirm: ( ), guessNumber: , myTurn: , - }; From 435e3951ef68f398be1ef20df4f621c8eedda0bd Mon Sep 17 00:00:00 2001 From: danggin Date: Fri, 17 Jan 2025 16:18:00 +0900 Subject: [PATCH 5/9] =?UTF-8?q?=E2=9C=A8=20feat:=20=EB=A7=88=EC=9D=B4?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=9D=BC=EC=9A=B0=ED=84=B0=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/routes/router.tsx | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/routes/router.tsx b/src/routes/router.tsx index 7d646f3..fbc4112 100644 --- a/src/routes/router.tsx +++ b/src/routes/router.tsx @@ -12,6 +12,7 @@ import Home from "@pages/home/Home"; import SignUpFinish from "@pages/user/signUp/SignUpFinish"; import Error from "@pages/error/Error"; import TestPage from "../pages/testpage/Testpage"; +import MyPage from "../pages/mypage/myScorePage/MyPage"; export const router = createBrowserRouter([ { @@ -58,13 +59,20 @@ export const router = createBrowserRouter([ ], }, { - path: "/user/mypage/checkPassword", - element: , - }, - { - path: "/user/mypage/updateMyPage", - element: , + path: "/user/mypage", + element: , + children: [ + { + path: "checkPassword", + element: , + }, + { + path: "updateMyPage", + element: , + }, + ], }, + { path: "/test", element: , From d1c02d2a190620278acc3a0c1a5cb0082d835810 Mon Sep 17 00:00:00 2001 From: salwwkd Date: Tue, 21 Jan 2025 11:17:55 +0900 Subject: [PATCH 6/9] =?UTF-8?q?=E2=9C=A8=20feat:=20=EB=9E=AD=ED=82=B9?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ui/ranking/RankingList.tsx | 45 +++++++++++++------ src/components/ui/ranking/rankingListStyle.ts | 44 ++++++++++++++++-- src/pages/rank/RankingPage.tsx | 29 +++++++----- src/pages/rank/rankingPageStyle.ts | 4 ++ 4 files changed, 93 insertions(+), 29 deletions(-) diff --git a/src/components/ui/ranking/RankingList.tsx b/src/components/ui/ranking/RankingList.tsx index 3ac6345..40e7fe5 100644 --- a/src/components/ui/ranking/RankingList.tsx +++ b/src/components/ui/ranking/RankingList.tsx @@ -1,7 +1,18 @@ import gold from "../../../assets/images/icon_gold.svg"; import silver from "../../../assets/images/icon_silver.svg"; import bronze from "../../../assets/images/icon_bronze.svg"; -import { BronzeImage, GoldImage, SilverImage } from "./rankingListStyle"; +import { + BronzeImage, + GoldImage, + Hr, + NickNameBox, + NicknameImage, + NickNameText, + RankingBox, + RankingNumber, + SilverImage, +} from "./rankingListStyle"; +import profile from "../../../assets/images/image_profile_01.svg"; interface IRankingList { nickname: string; @@ -11,19 +22,25 @@ interface IRankingList { export default function RankingList({ nickname, index }: IRankingList) { return (
-

- {index === 0 ? ( - - ) : index === 1 ? ( - - ) : index === 2 ? ( - - ) : ( - "" - )} -

-

{nickname}

-

{index + 1}

+ + +

+ {index === 0 ? ( + + ) : index === 1 ? ( + + ) : index === 2 ? ( + + ) : ( + "" + )} +

+ + {nickname} +
+ {index + 1} +
+
); } diff --git a/src/components/ui/ranking/rankingListStyle.ts b/src/components/ui/ranking/rankingListStyle.ts index 6b93fd6..9683391 100644 --- a/src/components/ui/ranking/rankingListStyle.ts +++ b/src/components/ui/ranking/rankingListStyle.ts @@ -1,5 +1,43 @@ import styled from "styled-components"; -export const GoldImage = styled.img``; -export const SilverImage = styled.img``; -export const BronzeImage = styled.img``; +export const RankingBox = styled.div` + display: flex; + justify-content: space-between; + align-items: center; + margin: 0px 44px 0px 61px; +`; +export const NickNameBox = styled.div` + display: flex; + gap: 20px; +`; +export const GoldImage = styled.img` + width: 30px; + height: 30px; +`; +export const SilverImage = styled.img` + width: 30px; + height: 30px; +`; +export const BronzeImage = styled.img` + width: 30px; + height: 30px; +`; +export const NicknameImage = styled.img` + width: 40px; + height: 40px; +`; +export const NickNameText = styled.div` + color: var(--gray-999); + font-size: 18px; + font-weight: 500; +`; +export const RankingNumber = styled.div` + color: var(--gray-999); + font-size: 24px; + font-weight: 600; +`; +export const Hr = styled.hr` + width: 400px; + height: 1px; + background: var(--gray-999); +`; diff --git a/src/pages/rank/RankingPage.tsx b/src/pages/rank/RankingPage.tsx index fa6aa46..7e168d5 100644 --- a/src/pages/rank/RankingPage.tsx +++ b/src/pages/rank/RankingPage.tsx @@ -5,25 +5,30 @@ import { MainTextBox, TrophyBox, TrophyImage, + Wrapper, } from "./rankingPageStyle"; import trophy from "../../assets/images/icon_trophy.svg"; +import RankingList from "../../components/ui/ranking/RankingList"; // import RankingList from "../../components/ui/ranking/RankingList"; export default function RangkingPage() { return ( - - - -

전체 랭킹

-
- -
닉네임
-
순위
-
-
- {/* {data?.ranking.map((user, index) => ( + + + + +

전체 랭킹

+
+ +
닉네임
+
순위
+
+
+ {/* {data?.ranking.map((user, index) => ( ))} */} -
+ +
+ ); } diff --git a/src/pages/rank/rankingPageStyle.ts b/src/pages/rank/rankingPageStyle.ts index c11a019..61d0066 100644 --- a/src/pages/rank/rankingPageStyle.ts +++ b/src/pages/rank/rankingPageStyle.ts @@ -1,5 +1,9 @@ import styled from "styled-components"; +export const Wrapper = styled.div` + display: flex; + justify-content: center; +`; export const FullBox = styled.div` width: 400px; display: flex; From 7608db867dd1bee01d3b53ec903b8fa4ddcd86ef Mon Sep 17 00:00:00 2001 From: salwwkd Date: Tue, 21 Jan 2025 11:23:24 +0900 Subject: [PATCH 7/9] =?UTF-8?q?=E2=9C=A8=20feat:=20=EB=9E=AD=ED=82=B9?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/rank/RankingPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/rank/RankingPage.tsx b/src/pages/rank/RankingPage.tsx index 7e168d5..5c5d58c 100644 --- a/src/pages/rank/RankingPage.tsx +++ b/src/pages/rank/RankingPage.tsx @@ -27,7 +27,7 @@ export default function RangkingPage() { {/* {data?.ranking.map((user, index) => ( ))} */} - + ); From afc685f9ccb27f42f51a0d9ff5b96f7766ff7f97 Mon Sep 17 00:00:00 2001 From: moonhuicheol <76771815+moonhuicheol@users.noreply.github.com> Date: Mon, 24 Feb 2025 15:49:16 +0900 Subject: [PATCH 8/9] Update README.md --- README.md | 100 +++++++++++++++++++++++++++--------------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/README.md b/README.md index 74872fd..27b661a 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,50 @@ -# React + TypeScript + Vite - -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. - -Currently, two official plugins are available: - -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh - -## Expanding the ESLint configuration - -If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: - -- Configure the top-level `parserOptions` property like this: - -```js -export default tseslint.config({ - languageOptions: { - // other options... - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - }, -}) -``` - -- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` -- Optionally add `...tseslint.configs.stylisticTypeChecked` -- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: - -```js -// eslint.config.js -import react from 'eslint-plugin-react' - -export default tseslint.config({ - // Set the react version - settings: { react: { version: '18.3' } }, - plugins: { - // Add the react plugin - react, - }, - rules: { - // other rules... - // Enable its recommended rules - ...react.configs.recommended.rules, - ...react.configs['jsx-runtime'].rules, - }, -}) -``` +## :pushpin: 프로젝트명 +## CodeNameDavinci + +> 보드게임 '다빈치코드'를 웹 게임으로 구현 + +## 📆 개발기간 +2024년 12월 ~ 진행중 + +## 🕹 배포주소 : https://www.davincicodegame.store/home + +## 🏢 아키텍쳐 + + + +## 📚 기술스택 + + +## 🌄 화면구성 + + + + +## 📺 게임플레이 +... + +## 🤗 맡은 역할 + +### 1⃣ 로그인 개발 +JWT 인증: Access Token 관리 + +### 2⃣ 공통 컴포넌트 개발 + #### Input 컴포넌트 + react-hook-form,zod를 사용하여 입력 검증 + 에러 메시지, 포커스 기능 추가 + + #### Button 컴포넌트 + 상태별 스타일 적용ㅋ + 클릭 이벤트 핸들링 최적화 + +### 3⃣ 게임 로직 개발 + #### 핵심 로직 구현 + 게임 상태 관리 (시작, 진행, 종료) + 플레이어 규칙 반영 + +### 4⃣ Socket 통신을 통한 UI/UX 개발 + 실시간 데이터 동기화 + Socket.io 적용 + 게임 이벤트 처리 + + From 174ae55df096a64063d2a59cc8962337ee70e397 Mon Sep 17 00:00:00 2001 From: moonhuicheol <76771815+moonhuicheol@users.noreply.github.com> Date: Mon, 24 Feb 2025 15:57:17 +0900 Subject: [PATCH 9/9] Update README.md --- README.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 27b661a..c9a6b2e 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,14 @@ ## 🌄 화면구성 - - - + + + + + + + + ## 📺 게임플레이 ...