From 0c630e94d224a4ec4a574cb850fcebf5c56d96b8 Mon Sep 17 00:00:00 2001
From: Jungwoo
Date: Sat, 30 Sep 2023 17:26:28 +0900
Subject: [PATCH 1/8] =?UTF-8?q?feat:=20No=20Image=20=EC=95=84=EC=9D=B4?=
=?UTF-8?q?=EC=BD=98=20=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
client/src/components/icons/svgIcons.tsx | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/client/src/components/icons/svgIcons.tsx b/client/src/components/icons/svgIcons.tsx
index e9dbf5940..4a0c0e400 100644
--- a/client/src/components/icons/svgIcons.tsx
+++ b/client/src/components/icons/svgIcons.tsx
@@ -2454,3 +2454,18 @@ export const ImageUploadIcon = ({ width, ...props }: SVGProps) =>
/>
);
+
+export const NoImageIcon = ({ width, ...props }: SVGProps) => (
+
+);
From 13aeb995f903af77c4df33966806f0b8219be7d0 Mon Sep 17 00:00:00 2001
From: Jungwoo
Date: Sat, 30 Sep 2023 17:27:34 +0900
Subject: [PATCH 2/8] =?UTF-8?q?feat:=20=EB=A1=9C=EB=93=9C=EB=A7=B5?=
=?UTF-8?q?=EC=9D=98=20ExtraInfo(Meta=20data)=20=EC=BB=B4=ED=8F=AC?=
=?UTF-8?q?=EB=84=8C=ED=8A=B8=20=EA=B5=AC=ED=98=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../extraInfo/ExtraInfo.styles.ts | 44 +++++++++++++++++++
.../roadmapDetailPage/extraInfo/ExtraInfo.tsx | 33 ++++++++++++++
2 files changed, 77 insertions(+)
create mode 100644 client/src/components/roadmapDetailPage/extraInfo/ExtraInfo.styles.ts
create mode 100644 client/src/components/roadmapDetailPage/extraInfo/ExtraInfo.tsx
diff --git a/client/src/components/roadmapDetailPage/extraInfo/ExtraInfo.styles.ts b/client/src/components/roadmapDetailPage/extraInfo/ExtraInfo.styles.ts
new file mode 100644
index 000000000..5485af792
--- /dev/null
+++ b/client/src/components/roadmapDetailPage/extraInfo/ExtraInfo.styles.ts
@@ -0,0 +1,44 @@
+import styled from 'styled-components';
+import media from '@styles/media';
+
+export const ExtraInfo = styled.div`
+ ${({ theme }) => theme.fonts.description5};
+ display: flex;
+ flex-direction: column;
+ align-items: flex-end;
+ justify-content: space-between;
+
+ width: 30%;
+ height: 55rem;
+
+ ${media.mobile`
+ display: none;
+ `}
+`;
+
+export const RoadmapMetadata = styled.div`
+ display: flex;
+ flex-direction: column;
+
+ & > div:not(:last-child) {
+ margin-bottom: 3rem;
+ }
+`;
+
+export const Category = styled.div`
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+`;
+
+export const Difficulty = styled.div`
+ text-align: end;
+`;
+
+export const RecommendedRoadmapPeriod = styled.div`
+ text-align: end;
+`;
+
+export const Tags = styled.div`
+ color: ${({ theme }) => theme.colors.main_dark};
+`;
diff --git a/client/src/components/roadmapDetailPage/extraInfo/ExtraInfo.tsx b/client/src/components/roadmapDetailPage/extraInfo/ExtraInfo.tsx
new file mode 100644
index 000000000..4959bca11
--- /dev/null
+++ b/client/src/components/roadmapDetailPage/extraInfo/ExtraInfo.tsx
@@ -0,0 +1,33 @@
+import { RoadmapDetailType } from '@myTypes/roadmap/internal';
+import * as S from './ExtraInfo.styles';
+import SVGIcon from '@components/icons/SVGIcon';
+import { CategoriesInfo } from '@constants/roadmap/category';
+
+type ExtraInfoProps = {
+ roadmapInfo: RoadmapDetailType;
+};
+
+const ExtraInfo = ({ roadmapInfo }: ExtraInfoProps) => {
+ return (
+
+ Created by {roadmapInfo.creator.name}
+
+
+ 카테고리: {roadmapInfo.category.name}
+
+
+ 난이도: {roadmapInfo.difficulty}
+
+ 예상 소요시간: {roadmapInfo.recommendedRoadmapPeriod}일
+
+
+
+ {roadmapInfo.tags.map((tag) => (
+ #{tag.name}
+ ))}
+
+
+ );
+};
+
+export default ExtraInfo;
From 51212f5846a964c0129cbd967910fa424b9daa27 Mon Sep 17 00:00:00 2001
From: Jungwoo
Date: Sat, 30 Sep 2023 17:29:02 +0900
Subject: [PATCH 3/8] =?UTF-8?q?feat:=20Introduction(=EB=A1=9C=EB=93=9C?=
=?UTF-8?q?=EB=A7=B5=20=EC=84=A4=EB=AA=85)=20=EC=BB=B4=ED=8F=AC=EB=84=8C?=
=?UTF-8?q?=ED=8A=B8=20=EA=B5=AC=ED=98=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../introduction/Introduction.styles.ts | 47 +++++++++++++++++
.../introduction/Introduction.tsx | 51 +++++++++++++++++++
2 files changed, 98 insertions(+)
create mode 100644 client/src/components/roadmapDetailPage/introduction/Introduction.styles.ts
create mode 100644 client/src/components/roadmapDetailPage/introduction/Introduction.tsx
diff --git a/client/src/components/roadmapDetailPage/introduction/Introduction.styles.ts b/client/src/components/roadmapDetailPage/introduction/Introduction.styles.ts
new file mode 100644
index 000000000..bd5f1e6bf
--- /dev/null
+++ b/client/src/components/roadmapDetailPage/introduction/Introduction.styles.ts
@@ -0,0 +1,47 @@
+import media from '@styles/media';
+import styled from 'styled-components';
+
+export const IntroductionWrapper = styled.div`
+ width: 70%;
+
+ ${media.mobile`
+ width:100%;
+ `}
+`;
+
+export const Introduction = styled.div<{ isExpanded: boolean }>`
+ ${({ theme }) => theme.fonts.description5};
+ overflow: hidden;
+ max-height: ${({ isExpanded }) => (isExpanded ? 'auto' : '55rem')};
+
+ & > p:not(:last-child) {
+ margin-bottom: 2rem;
+ }
+
+ & div {
+ ${({ theme }) => theme.fonts.h1};
+ margin-bottom: 0.5rem;
+ color: ${({ theme }) => theme.colors.main_dark};
+ }
+`;
+
+export const LineShadow = styled.div`
+ position: relative;
+ width: 100%;
+ height: 0.2rem;
+ box-shadow: 0 -4px 6px rgba(0, 0, 0, 1);
+`;
+
+export const ReadMoreButton = styled.button`
+ position: relative;
+ top: calc(-2rem - 4px);
+ left: 50%;
+ transform: translateX(-5rem);
+
+ width: 10rem;
+ height: 4rem;
+
+ background-color: ${({ theme }) => theme.colors.white};
+ border-radius: 8px;
+ box-shadow: ${({ theme }) => theme.shadows.main};
+`;
diff --git a/client/src/components/roadmapDetailPage/introduction/Introduction.tsx b/client/src/components/roadmapDetailPage/introduction/Introduction.tsx
new file mode 100644
index 000000000..2fae32dd3
--- /dev/null
+++ b/client/src/components/roadmapDetailPage/introduction/Introduction.tsx
@@ -0,0 +1,51 @@
+import { RoadmapDetailType } from '@myTypes/roadmap/internal';
+import * as S from './Introduction.styles';
+import { useEffect, useRef, useState } from 'react';
+
+type IntroductionType = {
+ roadmapInfo: RoadmapDetailType;
+};
+
+const Introduction = ({ roadmapInfo }: IntroductionType) => {
+ const [isExpanded, setIsExpanded] = useState(false);
+ const [showMoreButton, setShowMoreButton] = useState(false);
+ const introRef = useRef(null);
+
+ useEffect(() => {
+ if (!introRef.current) return;
+
+ const element = introRef.current;
+ if (element.scrollHeight > element.clientHeight) {
+ setShowMoreButton(true);
+ }
+ }, []);
+
+ const toggleExpand = () => {
+ setIsExpanded(!isExpanded);
+ };
+
+ return (
+
+
+
+
설명
+ {roadmapInfo.introduction}
+
+
+
본문
+ {roadmapInfo.content.content === ''
+ ? '로드맵에 대한 설명이 없어요🥲'
+ : roadmapInfo.content.content}
+
+
+ {showMoreButton && !isExpanded && (
+ <>
+
+ 더 보기
+ >
+ )}
+
+ );
+};
+
+export default Introduction;
From e01e873566b684429c242fd2be1cfa8adb86299a Mon Sep 17 00:00:00 2001
From: Jungwoo
Date: Sat, 30 Sep 2023 17:29:49 +0900
Subject: [PATCH 4/8] =?UTF-8?q?feat:=20NodeContent(=EA=B0=81=20=EB=85=B8?=
=?UTF-8?q?=EB=93=9C=20=EC=A0=95=EB=B3=B4=20Slider)=20=EC=BB=B4=ED=8F=AC?=
=?UTF-8?q?=EB=84=8C=ED=8A=B8=20=EA=B5=AC=ED=98=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../nodeContent/NodeContent.styles.ts | 92 +++++++++++++++++++
.../nodeContent/NodeContent.tsx | 38 ++++++++
2 files changed, 130 insertions(+)
create mode 100644 client/src/components/roadmapDetailPage/nodeContent/NodeContent.styles.ts
create mode 100644 client/src/components/roadmapDetailPage/nodeContent/NodeContent.tsx
diff --git a/client/src/components/roadmapDetailPage/nodeContent/NodeContent.styles.ts b/client/src/components/roadmapDetailPage/nodeContent/NodeContent.styles.ts
new file mode 100644
index 000000000..9db8597f8
--- /dev/null
+++ b/client/src/components/roadmapDetailPage/nodeContent/NodeContent.styles.ts
@@ -0,0 +1,92 @@
+import styled from 'styled-components';
+import media from '@styles/media';
+
+export const SliderContent = styled.div`
+ display: flex;
+ aspect-ratio: 5 / 3.5;
+ background-color: ${({ theme }) => theme.colors.gray100};
+ border-radius: 8px;
+
+ ${media.mobile`
+ flex-direction: column;
+ aspect-ratio: 0;
+ `}
+`;
+
+export const LeftContent = styled.div`
+ flex-shrink: 0;
+ width: 45%;
+
+ ${media.mobile`
+ display:none;
+ `}
+`;
+
+export const NodeImg = styled.img`
+ width: 100%;
+ height: 100%;
+ padding: 1.5rem;
+ object-fit: cover;
+`;
+
+export const NoImg = styled.div`
+ ${({ theme }) => theme.fonts.title_large}
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+
+ width: 100%;
+ height: 100%;
+`;
+
+export const Separator = styled.div`
+ display: flex;
+ flex-direction: column;
+ width: 0.2rem;
+ height: 100%;
+
+ & > div {
+ height: 50%;
+ }
+
+ & > div:last-child {
+ background-color: black;
+ }
+`;
+
+export const RightContent = styled.div`
+ ${({ theme }) => theme.fonts.h1}
+ overflow: scroll;
+ width: 55%;
+ padding: 1.5rem;
+ padding-top: 3rem;
+
+ ${media.mobile`
+ width: 100%;
+ height: 60rem;
+ padding-top: 1.5rem;
+ `}
+`;
+
+export const ContentTitle = styled.div`
+ ${({ theme }) => theme.fonts.title_large}
+ display: flex;
+ align-items: center;
+ margin-bottom: 1rem;
+`;
+
+export const Step = styled.div`
+ ${({ theme }) => theme.fonts.h2}
+ display: flex;
+ flex-shrink: 0;
+ align-items: center;
+ justify-content: center;
+
+ width: 3rem;
+ height: 3rem;
+ margin-right: 0.5rem;
+
+ border: 0.3rem solid black;
+ border-radius: 50%;
+`;
diff --git a/client/src/components/roadmapDetailPage/nodeContent/NodeContent.tsx b/client/src/components/roadmapDetailPage/nodeContent/NodeContent.tsx
new file mode 100644
index 000000000..f2ffb7e60
--- /dev/null
+++ b/client/src/components/roadmapDetailPage/nodeContent/NodeContent.tsx
@@ -0,0 +1,38 @@
+import type { NodeType } from '@myTypes/roadmap/internal';
+import * as S from './NodeContent.styles';
+import SVGIcon from '@components/icons/SVGIcon';
+
+type NodeContentProps = {
+ node: NodeType;
+ index: number;
+};
+
+const NodeContent = ({ node, index }: NodeContentProps) => {
+ return (
+
+
+ {node.imageUrls[0] ? (
+
+ ) : (
+
+
+ No Image
+
+ )}
+
+
+
+
+
+
+
+ {index + 1}
+ {node.title}
+
+ {node.description}
+
+
+ );
+};
+
+export default NodeContent;
From efe0c38d7169a70d7eb6482c48549a3f8f10bf78 Mon Sep 17 00:00:00 2001
From: Jungwoo
Date: Sat, 30 Sep 2023 17:30:31 +0900
Subject: [PATCH 5/8] =?UTF-8?q?feat:=20=EB=A1=9C=EB=93=9C=EB=A7=B5=20?=
=?UTF-8?q?=EB=94=94=ED=85=8C=EC=9D=BC=20=EC=BB=B4=ED=8F=AC=EB=84=8C?=
=?UTF-8?q?=ED=8A=B8=20UI=20=EA=B0=9C=ED=8E=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../roadmapDetail/RoadmapDetail.styles.ts | 41 ++-------
.../roadmapDetail/RoadmapDetail.tsx | 46 +++++-----
.../roadmapNodeList/RoadmapNodeList.tsx | 35 --------
.../roadmapNodeList/roadmapNodeList.styles.ts | 89 -------------------
4 files changed, 30 insertions(+), 181 deletions(-)
delete mode 100644 client/src/components/roadmapDetailPage/roadmapNodeList/RoadmapNodeList.tsx
delete mode 100644 client/src/components/roadmapDetailPage/roadmapNodeList/roadmapNodeList.styles.ts
diff --git a/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.styles.ts b/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.styles.ts
index f7ee43222..ce6785c43 100644
--- a/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.styles.ts
+++ b/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.styles.ts
@@ -1,42 +1,19 @@
-import media from '@styles/media';
import styled from 'styled-components';
export const RoadmapDetail = styled.div`
- position: relative;
- margin: 4rem 0;
- padding: 0 2rem;
-
- ${media.mobile`
- flex-direction: column;
- align-items: center;
- `}
+ padding: 2rem 0 4rem 0;
`;
-export const RoadmapBody = styled.p`
- ${({ theme }) => theme.fonts.button1}
- width: 50%;
- padding: 4rem 4rem;
- height: 35rem;
-
- overflow: scroll;
-
- border-radius: 18px;
- box-shadow: ${({ theme }) => theme.shadows.box};
-
- color: ${({ theme }) => theme.colors.gray300};
-
- ${media.mobile`
- padding: 4rem 4rem;
- `}
+export const RoadmapInfo = styled.div`
+ margin-bottom: 4rem;
+`;
- & > strong {
- ${({ theme }) => theme.fonts.h1};
- margin-bottom: 4rem;
- color: ${({ theme }) => theme.colors.main_dark};
- }
+export const Title = styled.div`
+ ${({ theme }) => theme.fonts.title_large};
+ margin-bottom: 2rem;
+ color: ${({ theme }) => theme.colors.main_dark};
`;
-export const PageOnTop = styled.div`
+export const Description = styled.div`
display: flex;
- justify-content: space-around;
`;
diff --git a/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.tsx b/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.tsx
index 94da78baa..76ee29aec 100644
--- a/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.tsx
+++ b/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.tsx
@@ -1,36 +1,32 @@
-import RoadmapItem from '../../_common/roadmapItem/RoadmapItem';
-import Button from '../../_common/button/Button';
import * as S from './RoadmapDetail.styles';
-import useValidParams from '@/hooks/_common/useValidParams';
-import { useNavigate } from 'react-router-dom';
-import { useRoadmapDetail } from '@/hooks/queries/roadmap';
-import RoadmapNodeList from '../roadmapNodeList/RoadmapNodeList';
+import useValidParams from '@hooks/_common/useValidParams';
+// import { useNavigate } from 'react-router-dom';
+import { useRoadmapDetail } from '@hooks/queries/roadmap';
+
+import Slider from '@components/_common/slider/Slider';
+import NodeContent from '../nodeContent/NodeContent';
+import ExtraInfo from '../extraInfo/ExtraInfo';
+import Introduction from '../introduction/Introduction';
const RoadmapDetail = () => {
const { id: roadmapId } = useValidParams<{ id: string }>();
- const navigate = useNavigate();
+ // const navigate = useNavigate();
const { roadmapInfo } = useRoadmapDetail(Number(roadmapId));
- const moveToGoalRoomCreatePage = () => {
- navigate(`/roadmap/${roadmapId}/goalroom-create`);
- };
-
return (
-
-
-
- 로드맵 설명
- {roadmapInfo.content.content === ''
- ? '로드맵에 대한 설명이 없어요🥲'
- : roadmapInfo.content.content}
-
-
-
-
+
+ {roadmapInfo.roadmapTitle}
+
+
+
+
+
+
+ {roadmapInfo.content.nodes.map((node, index) => (
+
+ ))}
+
);
};
diff --git a/client/src/components/roadmapDetailPage/roadmapNodeList/RoadmapNodeList.tsx b/client/src/components/roadmapDetailPage/roadmapNodeList/RoadmapNodeList.tsx
deleted file mode 100644
index 2f6ab88d6..000000000
--- a/client/src/components/roadmapDetailPage/roadmapNodeList/RoadmapNodeList.tsx
+++ /dev/null
@@ -1,35 +0,0 @@
-import { NodeType } from '@/myTypes/roadmap/internal';
-import * as S from './roadmapNodeList.styles';
-
-type RoadmapNodeListProps = {
- roadmapTitle: string;
- nodeInfo: NodeType[];
-};
-
-const RoadmapNodeList = ({ roadmapTitle, nodeInfo }: RoadmapNodeListProps) => {
- return (
-
-
- 🐘 {roadmapTitle}의 로드맵 🐘
-
- {nodeInfo.map((node, index) => {
- return (
-
- {index + 1}
-
- {node.title}
- {node.description}
-
- {node.imageUrls.map((nodeImage) => {
- return ;
- })}
-
-
-
- );
- })}
-
- );
-};
-
-export default RoadmapNodeList;
diff --git a/client/src/components/roadmapDetailPage/roadmapNodeList/roadmapNodeList.styles.ts b/client/src/components/roadmapDetailPage/roadmapNodeList/roadmapNodeList.styles.ts
deleted file mode 100644
index da3d3cd20..000000000
--- a/client/src/components/roadmapDetailPage/roadmapNodeList/roadmapNodeList.styles.ts
+++ /dev/null
@@ -1,89 +0,0 @@
-import { styled } from 'styled-components';
-
-export const RoadmapNodeList = styled.div`
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: space-around;
-
- width: 100%;
- min-height: 30rem;
- margin-top: 3rem;
- padding: 2rem 0;
-
- border-radius: 12px;
- box-shadow: ${({ theme }) => theme.shadows.box};
-`;
-
-export const Title = styled.h1`
- ${({ theme }) => theme.fonts.nav_title}
- color: ${({ theme }) => theme.colors.gray300};
-
- & > strong {
- color: ${({ theme }) => theme.colors.main_dark};
- }
-`;
-
-export const NodeItemContainer = styled.article`
- display: flex;
- align-items: center;
- justify-content: space-around;
- margin-top: 2rem;
-`;
-
-export const NodeIndicator = styled.div`
- ${({ theme }) => theme.fonts.nav_title}
- position: relative;
- left: 2rem;
-
- display: flex;
- align-items: center;
- justify-content: center;
-
- width: 4rem;
- height: 4rem;
-
- color: ${({ theme }) => theme.colors.white};
-
- background-color: ${({ theme }) => theme.colors.main_dark};
- border-radius: 50%;
-`;
-
-export const NodeContent = styled.div`
- overflow-y: scroll;
- display: flex;
- flex-direction: column;
- align-items: center;
-
- width: 50rem;
- padding: 2rem 0;
-
- word-wrap: break-word;
- overflow-wrap: break-word;
- white-space: normal;
-
- border: 0.3rem solid ${({ theme }) => theme.colors.main_dark};
- border-radius: 24px;
-`;
-
-export const NodeTitle = styled.h2`
- ${({ theme }) => theme.fonts.h2}
- color: ${({ theme }) => theme.colors.black};
-`;
-
-export const NodeDescription = styled.div`
- ${({ theme }) => theme.fonts.description5}
- width: 40rem;
- color: ${({ theme }) => theme.colors.gray300};
- text-align: center;
-`;
-
-export const ImageWrapper = styled.div`
- display: flex;
-`;
-
-export const NodeImage = styled.img`
- width: 15rem;
- height: 20rem;
- object-fit: cover;
-`;
From 552796fe5659a208c10da5c0d51089371e7fc432 Mon Sep 17 00:00:00 2001
From: Jungwoo
Date: Sun, 1 Oct 2023 00:09:57 +0900
Subject: [PATCH 6/8] =?UTF-8?q?feat:=20=EB=AA=A8=EC=9E=84=20=EC=83=9D?=
=?UTF-8?q?=EC=84=B1,=20=EC=A7=84=ED=96=89=EC=A4=91=EC=9D=B8=20=EB=AA=A8?=
=?UTF-8?q?=EC=9E=84=EB=B3=B4=EA=B8=B0=20=EB=B2=84=ED=8A=BC=20=EA=B5=AC?=
=?UTF-8?q?=ED=98=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../extraInfo/ExtraInfo.styles.ts | 4 ++
.../roadmapDetail/RoadmapDetail.styles.ts | 39 +++++++++++++++++--
.../roadmapDetail/RoadmapDetail.tsx | 13 ++++++-
3 files changed, 51 insertions(+), 5 deletions(-)
diff --git a/client/src/components/roadmapDetailPage/extraInfo/ExtraInfo.styles.ts b/client/src/components/roadmapDetailPage/extraInfo/ExtraInfo.styles.ts
index 5485af792..98aa0449c 100644
--- a/client/src/components/roadmapDetailPage/extraInfo/ExtraInfo.styles.ts
+++ b/client/src/components/roadmapDetailPage/extraInfo/ExtraInfo.styles.ts
@@ -41,4 +41,8 @@ export const RecommendedRoadmapPeriod = styled.div`
export const Tags = styled.div`
color: ${({ theme }) => theme.colors.main_dark};
+
+ & > div {
+ text-align: end;
+ }
`;
diff --git a/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.styles.ts b/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.styles.ts
index ce6785c43..93c0b17ce 100644
--- a/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.styles.ts
+++ b/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.styles.ts
@@ -4,9 +4,7 @@ export const RoadmapDetail = styled.div`
padding: 2rem 0 4rem 0;
`;
-export const RoadmapInfo = styled.div`
- margin-bottom: 4rem;
-`;
+export const RoadmapInfo = styled.div``;
export const Title = styled.div`
${({ theme }) => theme.fonts.title_large};
@@ -17,3 +15,38 @@ export const Title = styled.div`
export const Description = styled.div`
display: flex;
`;
+
+export const ButtonsWrapper = styled.div`
+ position: relative;
+ width: 100%;
+`;
+
+export const Buttons = styled.div`
+ bottom: 3rem;
+
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+
+ margin: 2rem 0;
+
+ background-color: ${({ theme }) => theme.colors.main_dark};
+ border-radius: 8px;
+
+ & > div {
+ width: 0.2rem;
+ height: 5.5rem;
+ background-color: ${({ theme }) => theme.colors.white};
+ }
+`;
+
+export const Button = styled.button`
+ ${({ theme }) => theme.fonts.nav_text}
+ width: 50%;
+ height: 5.5rem;
+
+ color: ${({ theme }) => theme.colors.white};
+
+ background-color: ${({ theme }) => theme.colors.main_dark};
+ border-radius: 8px;
+`;
diff --git a/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.tsx b/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.tsx
index 76ee29aec..912425ee5 100644
--- a/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.tsx
+++ b/client/src/components/roadmapDetailPage/roadmapDetail/RoadmapDetail.tsx
@@ -1,6 +1,6 @@
import * as S from './RoadmapDetail.styles';
import useValidParams from '@hooks/_common/useValidParams';
-// import { useNavigate } from 'react-router-dom';
+import { useNavigate } from 'react-router-dom';
import { useRoadmapDetail } from '@hooks/queries/roadmap';
import Slider from '@components/_common/slider/Slider';
@@ -10,7 +10,7 @@ import Introduction from '../introduction/Introduction';
const RoadmapDetail = () => {
const { id: roadmapId } = useValidParams<{ id: string }>();
- // const navigate = useNavigate();
+ const navigate = useNavigate();
const { roadmapInfo } = useRoadmapDetail(Number(roadmapId));
return (
@@ -22,6 +22,15 @@ const RoadmapDetail = () => {
+
+ navigate(`/roadmap/${roadmapId}/goalroom-create`)}>
+ 모임 생성하기
+
+
+ navigate(`/roadmap/${roadmapId}/goalroom-list`)}>
+ 진행중인 모임보기
+
+
{roadmapInfo.content.nodes.map((node, index) => (
From 1619ac8573cec39c3a1a9d531344f5ede0c4941d Mon Sep 17 00:00:00 2001
From: Jungwoo
Date: Sun, 1 Oct 2023 00:34:45 +0900
Subject: [PATCH 7/8] =?UTF-8?q?chore:=20=EB=B6=88=ED=95=84=EC=9A=94?=
=?UTF-8?q?=ED=95=9C=20css=20=EC=BD=94=EB=93=9C=20=EC=A0=9C=EA=B1=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../roadmapDetailPage/nodeContent/NodeContent.styles.ts | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/client/src/components/roadmapDetailPage/nodeContent/NodeContent.styles.ts b/client/src/components/roadmapDetailPage/nodeContent/NodeContent.styles.ts
index 9db8597f8..695e6a26b 100644
--- a/client/src/components/roadmapDetailPage/nodeContent/NodeContent.styles.ts
+++ b/client/src/components/roadmapDetailPage/nodeContent/NodeContent.styles.ts
@@ -8,17 +8,15 @@ export const SliderContent = styled.div`
border-radius: 8px;
${media.mobile`
- flex-direction: column;
aspect-ratio: 0;
`}
`;
export const LeftContent = styled.div`
- flex-shrink: 0;
width: 45%;
${media.mobile`
- display:none;
+ display: none;
`}
`;
From 0fa6668cb74e82efdcbe867871091616fafb43e5 Mon Sep 17 00:00:00 2001
From: Jungwoo
Date: Sun, 1 Oct 2023 12:56:56 +0900
Subject: [PATCH 8/8] =?UTF-8?q?refactor:=20=ED=83=80=EC=9E=85=20=EC=BB=A8?=
=?UTF-8?q?=EB=B2=A4=EC=85=98=20=EB=B0=98=EC=98=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../roadmapDetailPage/introduction/Introduction.tsx | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/client/src/components/roadmapDetailPage/introduction/Introduction.tsx b/client/src/components/roadmapDetailPage/introduction/Introduction.tsx
index 2fae32dd3..3069efacf 100644
--- a/client/src/components/roadmapDetailPage/introduction/Introduction.tsx
+++ b/client/src/components/roadmapDetailPage/introduction/Introduction.tsx
@@ -2,11 +2,11 @@ import { RoadmapDetailType } from '@myTypes/roadmap/internal';
import * as S from './Introduction.styles';
import { useEffect, useRef, useState } from 'react';
-type IntroductionType = {
+type IntroductionProps = {
roadmapInfo: RoadmapDetailType;
};
-const Introduction = ({ roadmapInfo }: IntroductionType) => {
+const Introduction = ({ roadmapInfo }: IntroductionProps) => {
const [isExpanded, setIsExpanded] = useState(false);
const [showMoreButton, setShowMoreButton] = useState(false);
const introRef = useRef(null);
@@ -21,7 +21,7 @@ const Introduction = ({ roadmapInfo }: IntroductionType) => {
}, []);
const toggleExpand = () => {
- setIsExpanded(!isExpanded);
+ setIsExpanded((prev) => !prev);
};
return (