From c4684eec66152886b65d6e57dd4f157907a57d3c Mon Sep 17 00:00:00 2001 From: eunbeann Date: Thu, 4 Jan 2024 16:21:57 +0900 Subject: [PATCH 001/151] =?UTF-8?q?feat:StickerPack=20=ED=8F=B4=EB=8D=94?= =?UTF-8?q?=EA=B5=AC=EC=A1=B0=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/StickerPack/components/.gitkeep | 0 src/StickerPack/constants/.gitkeep | 0 src/StickerPack/hooks/.gitkeep | 0 src/StickerPack/page/StickerPack.style.ts | 1 + src/StickerPack/page/StickerPack.tsx | 5 +++++ 5 files changed, 6 insertions(+) create mode 100644 src/StickerPack/components/.gitkeep create mode 100644 src/StickerPack/constants/.gitkeep create mode 100644 src/StickerPack/hooks/.gitkeep create mode 100644 src/StickerPack/page/StickerPack.style.ts create mode 100644 src/StickerPack/page/StickerPack.tsx diff --git a/src/StickerPack/components/.gitkeep b/src/StickerPack/components/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/src/StickerPack/constants/.gitkeep b/src/StickerPack/constants/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/src/StickerPack/hooks/.gitkeep b/src/StickerPack/hooks/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/src/StickerPack/page/StickerPack.style.ts b/src/StickerPack/page/StickerPack.style.ts new file mode 100644 index 00000000..8337712e --- /dev/null +++ b/src/StickerPack/page/StickerPack.style.ts @@ -0,0 +1 @@ +// diff --git a/src/StickerPack/page/StickerPack.tsx b/src/StickerPack/page/StickerPack.tsx new file mode 100644 index 00000000..ed113580 --- /dev/null +++ b/src/StickerPack/page/StickerPack.tsx @@ -0,0 +1,5 @@ +function StickerPack() { + return
StickerPack
; +} + +export default StickerPack; From 4e2f16b92dbcbb0f11c010e479c3ad9e0affb51f Mon Sep 17 00:00:00 2001 From: eunbeann Date: Thu, 4 Jan 2024 16:34:58 +0900 Subject: [PATCH 002/151] =?UTF-8?q?style:=20postion=20=EA=B0=92=20fixed=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/Button/Button.style.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/common/Button/Button.style.ts b/src/components/common/Button/Button.style.ts index 6db19e2d..830e734a 100644 --- a/src/components/common/Button/Button.style.ts +++ b/src/components/common/Button/Button.style.ts @@ -3,6 +3,9 @@ import styled from '@emotion/styled'; export type ButtonStyle = 'choose' | 'complete'; export const CustomButton = styled.button<{ variant: ButtonStyle }>` + position: fixed; + bottom: 2rem; + width: 34.4rem; height: 6rem; From fecd1298ae638f787a0332b9aaa4194623cd7f30 Mon Sep 17 00:00:00 2001 From: jungwoo3490 Date: Fri, 5 Jan 2024 01:02:29 +0900 Subject: [PATCH 003/151] =?UTF-8?q?style:=20Orange=20=ED=8F=B0=ED=8A=B8=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/styles/GlobalStyles.ts | 5 ----- src/styles/fonts/SequelSansMediumOblBody.woff | Bin 24680 -> 0 bytes src/styles/theme.ts | 6 +++--- 3 files changed, 3 insertions(+), 8 deletions(-) delete mode 100644 src/styles/fonts/SequelSansMediumOblBody.woff diff --git a/src/styles/GlobalStyles.ts b/src/styles/GlobalStyles.ts index 42924de2..159f3038 100644 --- a/src/styles/GlobalStyles.ts +++ b/src/styles/GlobalStyles.ts @@ -202,11 +202,6 @@ const gStyle = css` outline: none; } } - - @font-face { - font-family: 'Sequel Sans'; - src: url('src/styles/fonts/SequelSansMediumOblBody.woff') format('woff'); - } `; export default gStyle; diff --git a/src/styles/fonts/SequelSansMediumOblBody.woff b/src/styles/fonts/SequelSansMediumOblBody.woff deleted file mode 100644 index 60fe05890f1fee15103ca39792d914859589b873..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24680 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 Date: Fri, 5 Jan 2024 01:14:29 +0900 Subject: [PATCH 004/151] =?UTF-8?q?chore:=20=ED=8F=B4=EB=8D=94=20=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=20=EC=9C=A0=EC=A7=80=EC=9A=A9.gitkeep=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/Detail/constants/.gitkeep | 0 src/Detail/hooks/.gitkeep | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/Detail/constants/.gitkeep create mode 100644 src/Detail/hooks/.gitkeep diff --git a/src/Detail/constants/.gitkeep b/src/Detail/constants/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/src/Detail/hooks/.gitkeep b/src/Detail/hooks/.gitkeep new file mode 100644 index 00000000..e69de29b From 107e7cd2542800eb4845a2b7d0d24161da88c567 Mon Sep 17 00:00:00 2001 From: jungwoo3490 Date: Fri, 5 Jan 2024 01:15:32 +0900 Subject: [PATCH 005/151] =?UTF-8?q?feat:=20=EC=83=81=EB=8B=A8=20=ED=85=8D?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EB=AC=B4=ED=95=9C=20=EB=A1=A4=EB=A7=81=20?= =?UTF-8?q?=EC=8A=AC=EB=9D=BC=EC=9D=B4=EB=93=9C=20=EA=B5=AC=ED=98=84=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Detail/components/.gitkeep | 0 src/Detail/components/Profile/index.tsx | 11 ++++ .../SlideBanner/SlideBanner.style.ts | 35 +++++++++++ src/Detail/components/SlideBanner/index.tsx | 60 +++++++++++++++++++ .../SlideBannerItem/SlideBannerItem.style.ts | 14 +++++ .../components/SlideBannerItem/index.tsx | 23 +++++++ src/Detail/page/DetailPage.tsx | 13 ++++ 7 files changed, 156 insertions(+) create mode 100644 src/Detail/components/.gitkeep create mode 100644 src/Detail/components/Profile/index.tsx create mode 100644 src/Detail/components/SlideBanner/SlideBanner.style.ts create mode 100644 src/Detail/components/SlideBanner/index.tsx create mode 100644 src/Detail/components/SlideBannerItem/SlideBannerItem.style.ts create mode 100644 src/Detail/components/SlideBannerItem/index.tsx create mode 100644 src/Detail/page/DetailPage.tsx diff --git a/src/Detail/components/.gitkeep b/src/Detail/components/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/src/Detail/components/Profile/index.tsx b/src/Detail/components/Profile/index.tsx new file mode 100644 index 00000000..e492f96e --- /dev/null +++ b/src/Detail/components/Profile/index.tsx @@ -0,0 +1,11 @@ +import SlideBanner from '../SlideBanner'; + +function Profile() { + return ( +

+ ); +} + +export default Profile; diff --git a/src/Detail/components/SlideBanner/SlideBanner.style.ts b/src/Detail/components/SlideBanner/SlideBanner.style.ts new file mode 100644 index 00000000..6c5281a6 --- /dev/null +++ b/src/Detail/components/SlideBanner/SlideBanner.style.ts @@ -0,0 +1,35 @@ +import { keyframes } from '@emotion/react'; +import styled from '@emotion/styled'; + +export const infiniteSlide = keyframes` + 0% { + transform: translateX(0); + } + + 100% { + transform: translateX(-50%); + } +`; + +export const SliderBannerWrapper = styled.div` + width: 100%; + height: 4.4rem; + background-color: ${({ theme }) => theme.colors.key}; + overflow: hidden; +`; + +export const AnimationBox = styled.div` + height: 100%; + display: flex; + animation: ${infiniteSlide}; + animation-timing-function: linear; + animation-iteration-count: infinite; +`; + +export const SlideBannerItemList = styled.div` + height: 100%; + display: flex; + align-items: center; + /* column-gap: 0.6rem; */ + font-size: 24px; +`; diff --git a/src/Detail/components/SlideBanner/index.tsx b/src/Detail/components/SlideBanner/index.tsx new file mode 100644 index 00000000..7dbb1ff4 --- /dev/null +++ b/src/Detail/components/SlideBanner/index.tsx @@ -0,0 +1,60 @@ +import { useEffect, useRef, useState } from 'react'; + +import SlideBannerItem from '../SlideBannerItem'; +import { + AnimationBox, + SlideBannerItemList, + SliderBannerWrapper, +} from './SlideBanner.style'; + +interface SlideBannerProps { + name: string; +} + +function SlideBanner({ name }: SlideBannerProps) { + const itemBoxRef = useRef(null); + const [itemListWidth, setItemListWidth] = useState(0); + const [animationListWidth, setAnimationListWidth] = useState(0); + const [animationDuration, setAnimationDuration] = useState(10); + + useEffect(() => { + if (itemBoxRef.current) { + const itemBoxWidth = itemBoxRef.current.offsetWidth; + + const itemListWidth = itemBoxWidth * 10 + 57; + + setItemListWidth(itemListWidth); + setAnimationListWidth(itemListWidth * 2); + + const nameLength = name.length; + const newAnimationDuration = Math.max(1, nameLength * 7); + setAnimationDuration(newAnimationDuration); + } + }, [name]); + + const renderSlideBannerItems = () => { + return Array.from({ length: 10 }, (_, index) => ( + + )); + }; + + return ( + + + + {renderSlideBannerItems()} + + + {renderSlideBannerItems()} + + + + ); +} + +export default SlideBanner; diff --git a/src/Detail/components/SlideBannerItem/SlideBannerItem.style.ts b/src/Detail/components/SlideBannerItem/SlideBannerItem.style.ts new file mode 100644 index 00000000..685a07f2 --- /dev/null +++ b/src/Detail/components/SlideBannerItem/SlideBannerItem.style.ts @@ -0,0 +1,14 @@ +import styled from '@emotion/styled'; + +export const SliderBannerItemWrapper = styled.div` + margin-right: 0.6rem; + display: flex; + width: auto; + flex-shrink: 0; +`; + +export const Name = styled.p` + margin: 0 0.6rem; + + ${({ theme }) => theme.fonts.Orange}; +`; diff --git a/src/Detail/components/SlideBannerItem/index.tsx b/src/Detail/components/SlideBannerItem/index.tsx new file mode 100644 index 00000000..6df4a69c --- /dev/null +++ b/src/Detail/components/SlideBannerItem/index.tsx @@ -0,0 +1,23 @@ +import React, { forwardRef } from 'react'; + +import { ImgLe, ImgStar } from '../../../assets'; +import { Name, SliderBannerItemWrapper } from './SlideBannerItem.style'; + +interface SlideBannerItemProps { + name: string; +} + +const SlideBannerItem = forwardRef(function SlideBannerItem( + { name }: SlideBannerItemProps, + ref: React.Ref, +) { + return ( + }> + + {`( ${name} )`} + + + ); +}); + +export default SlideBannerItem; diff --git a/src/Detail/page/DetailPage.tsx b/src/Detail/page/DetailPage.tsx new file mode 100644 index 00000000..052241e5 --- /dev/null +++ b/src/Detail/page/DetailPage.tsx @@ -0,0 +1,13 @@ +import Header from '../../components/common/Header'; +import Profile from '../components/Profile'; + +function DetailPage() { + return ( +
+
+ +
+ ); +} + +export default DetailPage; From f53f6694f38a660e876d670a751eac3dcf22ec32 Mon Sep 17 00:00:00 2001 From: eunbeann Date: Fri, 5 Jan 2024 13:12:07 +0900 Subject: [PATCH 006/151] =?UTF-8?q?feat:=20=EC=8A=A4=ED=8B=B0=EC=BB=A4=20?= =?UTF-8?q?=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EC=BB=B4=ED=8F=AC=EB=84=8C?= =?UTF-8?q?=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/StickerPack/components/.gitkeep | 0 .../StickerList/StickerList.style.ts | 45 +++++ .../components/StickerList/index.tsx | 175 ++++++++++++++++++ 3 files changed, 220 insertions(+) delete mode 100644 src/StickerPack/components/.gitkeep create mode 100644 src/StickerPack/components/StickerList/StickerList.style.ts create mode 100644 src/StickerPack/components/StickerList/index.tsx diff --git a/src/StickerPack/components/.gitkeep b/src/StickerPack/components/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/StickerPack/components/StickerList/StickerList.style.ts b/src/StickerPack/components/StickerList/StickerList.style.ts new file mode 100644 index 00000000..74016fb6 --- /dev/null +++ b/src/StickerPack/components/StickerList/StickerList.style.ts @@ -0,0 +1,45 @@ +import styled from '@emotion/styled'; + +export const Wrapper = styled.div` + display: flex; + align-items: start; + flex-direction: column; + + width: 100%; +`; + +export const Title = styled.header` + margin: 1.4rem 0; + + color: ${({ theme }) => theme.colors.white}; + + ${({ theme }) => theme.fonts.Head2_SB_18}; +`; + +export const StickerGridWrapper = styled.div` + display: grid; + + width: 100%; + + grid-template-columns: repeat(3, 1fr); + + gap: 2.15rem 1.6rem; +`; + +export const ImageComponent = styled.button<{ + isSelected: boolean; + url: string; +}>` + width: 10rem; + height: 10rem; + + border: solid 0.1rem + ${({ theme, isSelected }) => + isSelected ? theme.colors.key : theme.colors.BG}; + border-radius: 0.4rem; + background: url(${({ url }) => url};); + + background-size: 10rem 10rem; + + background-position: center; +`; diff --git a/src/StickerPack/components/StickerList/index.tsx b/src/StickerPack/components/StickerList/index.tsx new file mode 100644 index 00000000..1d99782a --- /dev/null +++ b/src/StickerPack/components/StickerList/index.tsx @@ -0,0 +1,175 @@ +import React, { Dispatch } from 'react'; + +import * as S from './StickerList.style'; + +interface StickerListProps { + isSelectedId: number | null; + setIsSelectedId: Dispatch>; +} + +function StickerList(props: StickerListProps) { + const { isSelectedId, setIsSelectedId } = props; + + const handleStickerClick = (stickerId: number) => { + setIsSelectedId(stickerId); + }; + + return ( + + {MockSticker.map((data) => ( + + {data.stickerCategory} + + {data.stickerInfoList.map((sticker) => ( + handleStickerClick(sticker.stickerId)} + isSelected={sticker.stickerId === isSelectedId} + url={sticker.stickerImage} + /> + ))} + + + ))} + + ); +} + +export default StickerList; + +const MockSticker = [ + { + stickerCategory: '레큐잉', + stickerInfoList: [ + { + stickerId: 1, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=1', + }, + { + stickerId: 2, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=2', + }, + { + stickerId: 3, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=3', + }, + { + stickerId: 4, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=4', + }, + { + stickerId: 5, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=5', + }, + { + stickerId: 6, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=6', + }, + { + stickerId: 7, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=7', + }, + { + stickerId: 8, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=8', + }, + { + stickerId: 9, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=9', + }, + { + stickerId: 10, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=10', + }, + { + stickerId: 11, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=11', + }, + { + stickerId: 12, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=12', + }, + { + stickerId: 13, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=13', + }, + { + stickerId: 14, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=14', + }, + { + stickerId: 15, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=15', + }, + { + stickerId: 16, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=16', + }, + { + stickerId: 17, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=17', + }, + { + stickerId: 18, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=18', + }, + { + stickerId: 19, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=19', + }, + { + stickerId: 20, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=20', + }, + ], + }, + { + stickerCategory: '큐비링', + stickerInfoList: [ + { + stickerId: 91, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=1', + }, + { + stickerId: 92, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=2', + }, + { + stickerId: 93, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=3', + }, + { + stickerId: 94, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=4', + }, + { + stickerId: 95, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=5', + }, + { + stickerId: 96, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=6', + }, + { + stickerId: 97, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=7', + }, + { + stickerId: 98, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=8', + }, + { + stickerId: 99, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=9', + }, + { + stickerId: 910, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=10', + }, + { + stickerId: 911, + stickerImage: 'https://source.unsplash.com/random/100x100?sig=11', + }, + ], + }, +]; From 3c846841d5dabb78bd2df89406db2e3292270f92 Mon Sep 17 00:00:00 2001 From: eunbeann Date: Fri, 5 Jan 2024 13:12:28 +0900 Subject: [PATCH 007/151] =?UTF-8?q?feat:=20=EC=8A=A4=ED=8B=B0=EC=BB=A4?= =?UTF-8?q?=ED=8C=A9=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/StickerPack/page/StickerPack.style.ts | 1 - src/StickerPack/page/StickerPack.tsx | 5 --- .../page/StickerPack/StickerPack.style.ts | 15 ++++++++ src/StickerPack/page/StickerPack/index.tsx | 35 +++++++++++++++++++ 4 files changed, 50 insertions(+), 6 deletions(-) delete mode 100644 src/StickerPack/page/StickerPack.style.ts delete mode 100644 src/StickerPack/page/StickerPack.tsx create mode 100644 src/StickerPack/page/StickerPack/StickerPack.style.ts create mode 100644 src/StickerPack/page/StickerPack/index.tsx diff --git a/src/StickerPack/page/StickerPack.style.ts b/src/StickerPack/page/StickerPack.style.ts deleted file mode 100644 index 8337712e..00000000 --- a/src/StickerPack/page/StickerPack.style.ts +++ /dev/null @@ -1 +0,0 @@ -// diff --git a/src/StickerPack/page/StickerPack.tsx b/src/StickerPack/page/StickerPack.tsx deleted file mode 100644 index ed113580..00000000 --- a/src/StickerPack/page/StickerPack.tsx +++ /dev/null @@ -1,5 +0,0 @@ -function StickerPack() { - return
StickerPack
; -} - -export default StickerPack; diff --git a/src/StickerPack/page/StickerPack/StickerPack.style.ts b/src/StickerPack/page/StickerPack/StickerPack.style.ts new file mode 100644 index 00000000..f3eef296 --- /dev/null +++ b/src/StickerPack/page/StickerPack/StickerPack.style.ts @@ -0,0 +1,15 @@ +import styled from '@emotion/styled'; + +export const Body = styled.div` + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + + width: 100%; + height: 100%; + padding: 0 1.64rem; + padding-bottom: 10rem; + + background-color: ${({ theme }) => theme.colors.BG}; +`; diff --git a/src/StickerPack/page/StickerPack/index.tsx b/src/StickerPack/page/StickerPack/index.tsx new file mode 100644 index 00000000..20b4b1c3 --- /dev/null +++ b/src/StickerPack/page/StickerPack/index.tsx @@ -0,0 +1,35 @@ +import { useState } from 'react'; + +// component +import Button from '../../../components/common/Button/index.tsx'; +import Header from '../../../components/common/Header/index.tsx'; +import StickerList from '../../components/StickerList/index.tsx'; +// style +import * as S from './StickerPack.style.ts'; + +function StickerPack() { + const [isSelectedId, setIsSelectedId] = useState(null); + const handleClickDone = () => { + alert(`${isSelectedId}`); + }; + return ( + <> +
+ + + + + + ); +} + +export default StickerPack; From 8963b8c7dfda5cee09cf23e415f233f6070f530a Mon Sep 17 00:00:00 2001 From: eunbeann Date: Fri, 5 Jan 2024 13:12:41 +0900 Subject: [PATCH 008/151] =?UTF-8?q?chore:=20=EB=9D=BC=EC=9A=B0=ED=84=B0=20?= =?UTF-8?q?=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Router.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Router.tsx b/src/Router.tsx index 16e4af3a..43c60061 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -1,12 +1,14 @@ import { BrowserRouter, Route, Routes } from 'react-router-dom'; import HomePage from './Home/page/HomePage'; +import StickerPack from './StickerPack/page/StickerPack'; function Router() { return ( } /> + } /> ); From d9e55132ca5c74a0bf43ec4ef7b774edd21d9c24 Mon Sep 17 00:00:00 2001 From: jungwoo3490 Date: Fri, 5 Jan 2024 21:50:42 +0900 Subject: [PATCH 009/151] =?UTF-8?q?docs:=20svg=20=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/icon/ic_crown.svg | 8 ++++---- src/assets/icon/ic_date.svg | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/assets/icon/ic_crown.svg b/src/assets/icon/ic_crown.svg index 9be88a21..14d35d5d 100644 --- a/src/assets/icon/ic_crown.svg +++ b/src/assets/icon/ic_crown.svg @@ -1,6 +1,6 @@ - - - - + + + + diff --git a/src/assets/icon/ic_date.svg b/src/assets/icon/ic_date.svg index 29d18268..da392351 100644 --- a/src/assets/icon/ic_date.svg +++ b/src/assets/icon/ic_date.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + From 9a179df55d8c9a7167001b3e0713657e92268fb7 Mon Sep 17 00:00:00 2001 From: jungwoo3490 Date: Fri, 5 Jan 2024 21:51:46 +0900 Subject: [PATCH 010/151] =?UTF-8?q?docs:=20Profile=20=ED=8F=B4=EB=8D=94=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Detail/components/Profile/index.tsx | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 src/Detail/components/Profile/index.tsx diff --git a/src/Detail/components/Profile/index.tsx b/src/Detail/components/Profile/index.tsx deleted file mode 100644 index e492f96e..00000000 --- a/src/Detail/components/Profile/index.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import SlideBanner from '../SlideBanner'; - -function Profile() { - return ( -
- -
- ); -} - -export default Profile; From 2d1229ed16ee8770222d8d6773dbaebba5fecf72 Mon Sep 17 00:00:00 2001 From: jungwoo3490 Date: Fri, 5 Jan 2024 21:52:41 +0900 Subject: [PATCH 011/151] =?UTF-8?q?style:=20=EC=9D=B4=EB=A6=84=20=EB=A0=8C?= =?UTF-8?q?=EB=8D=94=20=EB=B6=80=EB=B6=84=20=EC=83=81=EB=8B=A8=20=EC=97=AC?= =?UTF-8?q?=EB=B0=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Detail/components/SlideBannerItem/SlideBannerItem.style.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Detail/components/SlideBannerItem/SlideBannerItem.style.ts b/src/Detail/components/SlideBannerItem/SlideBannerItem.style.ts index 685a07f2..0e13eb5c 100644 --- a/src/Detail/components/SlideBannerItem/SlideBannerItem.style.ts +++ b/src/Detail/components/SlideBannerItem/SlideBannerItem.style.ts @@ -8,7 +8,7 @@ export const SliderBannerItemWrapper = styled.div` `; export const Name = styled.p` - margin: 0 0.6rem; + margin: 0.3rem 0.6rem 0 0.6rem; ${({ theme }) => theme.fonts.Orange}; `; From f6bc7ea33fa57ae5ff5438dd289edc8e420cea87 Mon Sep 17 00:00:00 2001 From: jungwoo3490 Date: Fri, 5 Jan 2024 21:53:13 +0900 Subject: [PATCH 012/151] =?UTF-8?q?style:=20=EC=8A=AC=EB=9D=BC=EC=9D=B4?= =?UTF-8?q?=EB=93=9C=20=EB=B0=B0=EB=84=88=20=ED=95=98=EB=8B=A8=20border=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/Detail/components/SlideBanner/SlideBanner.style.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Detail/components/SlideBanner/SlideBanner.style.ts b/src/Detail/components/SlideBanner/SlideBanner.style.ts index 6c5281a6..9a934dab 100644 --- a/src/Detail/components/SlideBanner/SlideBanner.style.ts +++ b/src/Detail/components/SlideBanner/SlideBanner.style.ts @@ -16,6 +16,7 @@ export const SliderBannerWrapper = styled.div` height: 4.4rem; background-color: ${({ theme }) => theme.colors.key}; overflow: hidden; + border-bottom: 0.1rem solid ${({ theme }) => theme.colors.BG}; `; export const AnimationBox = styled.div` From 8f8b540d3482db88bd5018599613090904b6d72e Mon Sep 17 00:00:00 2001 From: jungwoo3490 Date: Fri, 5 Jan 2024 21:59:54 +0900 Subject: [PATCH 013/151] =?UTF-8?q?feat:=20=EC=83=81=EB=8B=A8=20=EC=B6=95?= =?UTF-8?q?=ED=95=98=EA=B8=80=20UI=20=EA=B5=AC=ED=98=84=20=EC=99=84?= =?UTF-8?q?=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BookInfoBox/BookInfoBox.style.ts | 69 +++++++++++++++++++ src/Detail/components/BookInfoBox/index.tsx | 58 ++++++++++++++++ .../components/BookInfoContainer/index.tsx | 38 ++++++++++ src/Detail/page/DetailPage.tsx | 18 ++++- src/Router.tsx | 2 + 5 files changed, 183 insertions(+), 2 deletions(-) create mode 100644 src/Detail/components/BookInfoBox/BookInfoBox.style.ts create mode 100644 src/Detail/components/BookInfoBox/index.tsx create mode 100644 src/Detail/components/BookInfoContainer/index.tsx diff --git a/src/Detail/components/BookInfoBox/BookInfoBox.style.ts b/src/Detail/components/BookInfoBox/BookInfoBox.style.ts new file mode 100644 index 00000000..99ad13ca --- /dev/null +++ b/src/Detail/components/BookInfoBox/BookInfoBox.style.ts @@ -0,0 +1,69 @@ +import styled from '@emotion/styled'; + +export const BookInfoBoxWrapper = styled.div<{ isDarkMode?: boolean }>` + display: flex; + + width: 100%; + height: 18.3em; + + background-color: ${({ isDarkMode, theme }) => + isDarkMode ? theme.colors.white : theme.colors.BG}; +`; + +export const ProfileImageWrapper = styled.div` + display: flex; + align-items: center; + + margin-left: 1.6rem; +`; + +export const ProfileImg = styled.img` + width: 12.6rem; + height: 12.6rem; + + border-radius: 8.2rem; + + object-fit: cover; +`; + +export const BookInfoWrapper = styled.div` + padding: 2.2rem 1.7rem; +`; + +export const BookInfoHeader = styled.div` + display: flex; + align-items: center; + column-gap: 0.9rem; +`; + +export const BookInfoHeaderItemWrapper = styled.div` + display: flex; + align-items: center; + column-gap: 0.3rem; +`; + +export const BookInfoHeaderItem = styled.p<{ isDarkMode: boolean }>` + height: 1.8rem; + padding-top: 0.4rem; + + ${({ theme }) => theme.fonts.E_Caption_R_12}; + color: ${({ isDarkMode, theme }) => + isDarkMode ? theme.colors.MG : 'rgba(255, 255, 255, 0.3)'}; +`; + +export const BookInfoTitle = styled.p<{ isDarkMode: boolean }>` + margin-top: 0.7rem; + + ${({ theme }) => theme.fonts.Head2_SB_18}; + color: ${({ isDarkMode, theme }) => + isDarkMode ? theme.colors.BG : theme.colors.white}; +`; + +export const BookInfoContent = styled.p<{ isDarkMode: boolean }>` + height: 8.5rem; + margin-top: 1rem; + + ${({ theme }) => theme.fonts.Body3_R_14}; + color: ${({ isDarkMode, theme }) => + isDarkMode ? theme.colors.BG : 'rgba(255, 255, 255, 0.8)'}; +`; diff --git a/src/Detail/components/BookInfoBox/index.tsx b/src/Detail/components/BookInfoBox/index.tsx new file mode 100644 index 00000000..8f42e4d7 --- /dev/null +++ b/src/Detail/components/BookInfoBox/index.tsx @@ -0,0 +1,58 @@ +import { IcCrown, IcDate } from '../../../assets'; +import { + BookInfoBoxWrapper, + BookInfoContent, + BookInfoHeader, + BookInfoHeaderItem, + BookInfoHeaderItemWrapper, + BookInfoTitle, + BookInfoWrapper, + ProfileImageWrapper, + ProfileImg, +} from './BookInfoBox.style'; + +interface BookInfoBoxProps { + profileImg: string; + date: string; + nickname: string; + title: string; + content: string; + isDarkMode: boolean; +} + +function BookInfoBox({ + profileImg, + date, + nickname, + title, + content, + isDarkMode, +}: BookInfoBoxProps) { + return ( + + + + + + + + + + {date} + + + + + + {nickname} + + + + {title} + {content} + + + ); +} + +export default BookInfoBox; diff --git a/src/Detail/components/BookInfoContainer/index.tsx b/src/Detail/components/BookInfoContainer/index.tsx new file mode 100644 index 00000000..8830a269 --- /dev/null +++ b/src/Detail/components/BookInfoContainer/index.tsx @@ -0,0 +1,38 @@ +import BookInfoBox from '../BookInfoBox'; +import SlideBanner from '../SlideBanner'; + +interface BookInfoContainerProps { + name: string; + profileImg: string; + date: string; + nickname: string; + title: string; + content: string; + isDarkMode: boolean; +} + +function BookInfoContainer({ + name, + profileImg, + date, + nickname, + title, + content, + isDarkMode, +}: BookInfoContainerProps) { + return ( +
+ + +
+ ); +} + +export default BookInfoContainer; diff --git a/src/Detail/page/DetailPage.tsx b/src/Detail/page/DetailPage.tsx index 052241e5..37ffa32a 100644 --- a/src/Detail/page/DetailPage.tsx +++ b/src/Detail/page/DetailPage.tsx @@ -1,11 +1,25 @@ import Header from '../../components/common/Header'; -import Profile from '../components/Profile'; +import BookInfoContainer from '../components/BookInfoContainer'; + +// test + +const testProp = { + name: 'LeoJ', + profileImg: + 'https://s3-alpha-sig.figma.com/img/db13/905b/40596e7ff9d7e2c5d23d2b59eaed1a7f?Expires=1705276800&Key-Pair-Id=APKAQ4GOSFWCVNEHN3O4&Signature=YdVtmax5JokofS88zzvQYV8dhDYNr5gALJf1s0eyCl9siaRilm9ZtXOtCSOe~UsH~~K5jEkb81jG3ccCA9FJ25BvUgR9K388K7h90OcCHmn-Wo4enHTIV85J2U2yIiOqh8IDoKNxG9H2hHxKVBU8GzdNitXCkUHtAaxTZRN4taiMZkVFyrFCEw-04VBKywXmAAOd3EaWJ0rJgKqecBpOKnB6DT6HgHlX3wxWhHsQI1KKqueJmXLhT4n-AxWCVALVJDdoT3VvB9-AsecG5C6og89535kPkOmVxUhwhQunmAmWYev0bPDhaSQpVDUwyVDUHgVUmuENYB4Y017o5RjiFA__', + date: '2024.01.25', + nickname: '큐야', + title: '첫 예능 라디오스타 축하해!', + content: + '우리만의 스타 레오제이 !! 3년만에 첫 예능이자 라디오스타 출연 넘 축하해~!! 앞으로 계속 이렇게 우리 옆에 있어줘! 항상 응원할게! 어그래그래어엉', + isDarkMode: true, +}; function DetailPage() { return (
- +
); } diff --git a/src/Router.tsx b/src/Router.tsx index 16e4af3a..7467967f 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -1,5 +1,6 @@ import { BrowserRouter, Route, Routes } from 'react-router-dom'; +import DetailPage from './Detail/page/DetailPage'; import HomePage from './Home/page/HomePage'; function Router() { @@ -7,6 +8,7 @@ function Router() { } /> + } /> ); From 219f36a7e630e5ab7d9c02cc6b2d9f9d5052e21b Mon Sep 17 00:00:00 2001 From: jungwoo3490 Date: Fri, 5 Jan 2024 22:16:56 +0900 Subject: [PATCH 014/151] =?UTF-8?q?style:=20css=20=EC=86=8D=EC=84=B1=20?= =?UTF-8?q?=EC=88=9C=EC=84=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/BookInfoBox/BookInfoBox.style.ts | 6 +++--- .../components/SlideBanner/SlideBanner.style.ts | 13 ++++++++----- .../SlideBannerItem/SlideBannerItem.style.ts | 5 +++-- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/Detail/components/BookInfoBox/BookInfoBox.style.ts b/src/Detail/components/BookInfoBox/BookInfoBox.style.ts index 99ad13ca..a59a95f6 100644 --- a/src/Detail/components/BookInfoBox/BookInfoBox.style.ts +++ b/src/Detail/components/BookInfoBox/BookInfoBox.style.ts @@ -46,24 +46,24 @@ export const BookInfoHeaderItem = styled.p<{ isDarkMode: boolean }>` height: 1.8rem; padding-top: 0.4rem; - ${({ theme }) => theme.fonts.E_Caption_R_12}; color: ${({ isDarkMode, theme }) => isDarkMode ? theme.colors.MG : 'rgba(255, 255, 255, 0.3)'}; + ${({ theme }) => theme.fonts.E_Caption_R_12}; `; export const BookInfoTitle = styled.p<{ isDarkMode: boolean }>` margin-top: 0.7rem; - ${({ theme }) => theme.fonts.Head2_SB_18}; color: ${({ isDarkMode, theme }) => isDarkMode ? theme.colors.BG : theme.colors.white}; + ${({ theme }) => theme.fonts.Head2_SB_18}; `; export const BookInfoContent = styled.p<{ isDarkMode: boolean }>` height: 8.5rem; margin-top: 1rem; - ${({ theme }) => theme.fonts.Body3_R_14}; color: ${({ isDarkMode, theme }) => isDarkMode ? theme.colors.BG : 'rgba(255, 255, 255, 0.8)'}; + ${({ theme }) => theme.fonts.Body3_R_14}; `; diff --git a/src/Detail/components/SlideBanner/SlideBanner.style.ts b/src/Detail/components/SlideBanner/SlideBanner.style.ts index 9a934dab..dbebb5d6 100644 --- a/src/Detail/components/SlideBanner/SlideBanner.style.ts +++ b/src/Detail/components/SlideBanner/SlideBanner.style.ts @@ -14,23 +14,26 @@ export const infiniteSlide = keyframes` export const SliderBannerWrapper = styled.div` width: 100%; height: 4.4rem; + + border-bottom: 0.1rem solid ${({ theme }) => theme.colors.BG}; background-color: ${({ theme }) => theme.colors.key}; + overflow: hidden; - border-bottom: 0.1rem solid ${({ theme }) => theme.colors.BG}; `; export const AnimationBox = styled.div` - height: 100%; display: flex; + + height: 100%; + animation: ${infiniteSlide}; animation-timing-function: linear; animation-iteration-count: infinite; `; export const SlideBannerItemList = styled.div` - height: 100%; display: flex; align-items: center; - /* column-gap: 0.6rem; */ - font-size: 24px; + + height: 100%; `; diff --git a/src/Detail/components/SlideBannerItem/SlideBannerItem.style.ts b/src/Detail/components/SlideBannerItem/SlideBannerItem.style.ts index 0e13eb5c..ca223881 100644 --- a/src/Detail/components/SlideBannerItem/SlideBannerItem.style.ts +++ b/src/Detail/components/SlideBannerItem/SlideBannerItem.style.ts @@ -1,10 +1,11 @@ import styled from '@emotion/styled'; export const SliderBannerItemWrapper = styled.div` - margin-right: 0.6rem; display: flex; - width: auto; flex-shrink: 0; + + width: auto; + margin-right: 0.6rem; `; export const Name = styled.p` From a08c49a9a595cb77b90d00068699ee1e86e32207 Mon Sep 17 00:00:00 2001 From: jungwoo3490 Date: Sat, 6 Jan 2024 17:04:55 +0900 Subject: [PATCH 015/151] =?UTF-8?q?refactor:=20=ED=98=B8=EC=B6=9C=20?= =?UTF-8?q?=EC=88=9C=EC=84=9C=EC=97=90=20=EB=94=B0=EB=A5=B8=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=A0=95=EB=A0=AC=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Detail/components/SlideBanner/index.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Detail/components/SlideBanner/index.tsx b/src/Detail/components/SlideBanner/index.tsx index 7dbb1ff4..5644ce90 100644 --- a/src/Detail/components/SlideBanner/index.tsx +++ b/src/Detail/components/SlideBanner/index.tsx @@ -17,6 +17,12 @@ function SlideBanner({ name }: SlideBannerProps) { const [animationListWidth, setAnimationListWidth] = useState(0); const [animationDuration, setAnimationDuration] = useState(10); + const renderSlideBannerItems = () => { + return Array.from({ length: 10 }, (_, index) => ( + + )); + }; + useEffect(() => { if (itemBoxRef.current) { const itemBoxWidth = itemBoxRef.current.offsetWidth; @@ -32,12 +38,6 @@ function SlideBanner({ name }: SlideBannerProps) { } }, [name]); - const renderSlideBannerItems = () => { - return Array.from({ length: 10 }, (_, index) => ( - - )); - }; - return ( Date: Sat, 6 Jan 2024 17:55:01 +0900 Subject: [PATCH 016/151] =?UTF-8?q?fix:=20isDarkMode=20prop=20=EC=98=B5?= =?UTF-8?q?=EC=85=94=EB=84=90=20=EA=B0=92=EC=97=90=EC=84=9C=20=ED=95=84?= =?UTF-8?q?=EC=88=98=20=EA=B0=92=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Detail/components/BookInfoBox/BookInfoBox.style.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Detail/components/BookInfoBox/BookInfoBox.style.ts b/src/Detail/components/BookInfoBox/BookInfoBox.style.ts index a59a95f6..ba49202a 100644 --- a/src/Detail/components/BookInfoBox/BookInfoBox.style.ts +++ b/src/Detail/components/BookInfoBox/BookInfoBox.style.ts @@ -1,6 +1,6 @@ import styled from '@emotion/styled'; -export const BookInfoBoxWrapper = styled.div<{ isDarkMode?: boolean }>` +export const BookInfoBoxWrapper = styled.div<{ isDarkMode: boolean }>` display: flex; width: 100%; From d4c984e18adf187889395a6419364da50aa05f50 Mon Sep 17 00:00:00 2001 From: jungwoo3490 Date: Sat, 6 Jan 2024 18:26:29 +0900 Subject: [PATCH 017/151] =?UTF-8?q?refactor:=20=EC=9D=B8=EB=9D=BC=EC=9D=B8?= =?UTF-8?q?=20=EC=8A=A4=ED=83=80=EC=9D=BC=20=EA=B0=92=20prop=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EB=84=98=EA=B2=A8=EC=A3=BC=EB=8F=84=EB=A1=9D=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 --- .../components/SlideBanner/SlideBanner.style.ts | 10 ++++++++-- src/Detail/components/SlideBanner/index.tsx | 12 +++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/Detail/components/SlideBanner/SlideBanner.style.ts b/src/Detail/components/SlideBanner/SlideBanner.style.ts index dbebb5d6..92086105 100644 --- a/src/Detail/components/SlideBanner/SlideBanner.style.ts +++ b/src/Detail/components/SlideBanner/SlideBanner.style.ts @@ -21,19 +21,25 @@ export const SliderBannerWrapper = styled.div` overflow: hidden; `; -export const AnimationBox = styled.div` +export const AnimationBox = styled.div<{ + width: number; + animationDuration: number; +}>` display: flex; + width: ${(props) => props.width}rem; height: 100%; animation: ${infiniteSlide}; + animation-duration: ${(props) => props.animationDuration}s; animation-timing-function: linear; animation-iteration-count: infinite; `; -export const SlideBannerItemList = styled.div` +export const SlideBannerItemList = styled.div<{ width: number }>` display: flex; align-items: center; + width: ${(props) => props.width}rem; height: 100%; `; diff --git a/src/Detail/components/SlideBanner/index.tsx b/src/Detail/components/SlideBanner/index.tsx index 5644ce90..98d9e4a7 100644 --- a/src/Detail/components/SlideBanner/index.tsx +++ b/src/Detail/components/SlideBanner/index.tsx @@ -27,7 +27,7 @@ function SlideBanner({ name }: SlideBannerProps) { if (itemBoxRef.current) { const itemBoxWidth = itemBoxRef.current.offsetWidth; - const itemListWidth = itemBoxWidth * 10 + 57; + const itemListWidth = itemBoxWidth + 6; setItemListWidth(itemListWidth); setAnimationListWidth(itemListWidth * 2); @@ -41,15 +41,13 @@ function SlideBanner({ name }: SlideBannerProps) { return ( - + {renderSlideBannerItems()} - + {renderSlideBannerItems()} From 58df9426b98508535318fe667cceaf03689b5c06 Mon Sep 17 00:00:00 2001 From: jungwoo3490 Date: Sat, 6 Jan 2024 18:35:48 +0900 Subject: [PATCH 018/151] =?UTF-8?q?refactor:=20=EC=8A=A4=ED=83=80=EC=9D=BC?= =?UTF-8?q?=20=EC=BB=A8=EB=B2=A4=EC=85=98=EA=B3=BC=20=EC=9D=BC=EC=B9=98?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=BD=94=EB=93=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Detail/components/BookInfoBox/index.tsx | 50 ++++++++----------- src/Detail/components/SlideBanner/index.tsx | 22 ++++---- .../components/SlideBannerItem/index.tsx | 8 +-- 3 files changed, 33 insertions(+), 47 deletions(-) diff --git a/src/Detail/components/BookInfoBox/index.tsx b/src/Detail/components/BookInfoBox/index.tsx index 8f42e4d7..d6ef74d0 100644 --- a/src/Detail/components/BookInfoBox/index.tsx +++ b/src/Detail/components/BookInfoBox/index.tsx @@ -1,15 +1,5 @@ import { IcCrown, IcDate } from '../../../assets'; -import { - BookInfoBoxWrapper, - BookInfoContent, - BookInfoHeader, - BookInfoHeaderItem, - BookInfoHeaderItemWrapper, - BookInfoTitle, - BookInfoWrapper, - ProfileImageWrapper, - ProfileImg, -} from './BookInfoBox.style'; +import * as S from './BookInfoBox.style'; interface BookInfoBoxProps { profileImg: string; @@ -29,29 +19,29 @@ function BookInfoBox({ isDarkMode, }: BookInfoBoxProps) { return ( - - - - - - - + + + + + + + - + {date} - - - + + + - + {nickname} - - - - {title} - {content} - - + + + + {title} + {content} + + ); } diff --git a/src/Detail/components/SlideBanner/index.tsx b/src/Detail/components/SlideBanner/index.tsx index 98d9e4a7..289e3bee 100644 --- a/src/Detail/components/SlideBanner/index.tsx +++ b/src/Detail/components/SlideBanner/index.tsx @@ -1,11 +1,7 @@ import { useEffect, useRef, useState } from 'react'; import SlideBannerItem from '../SlideBannerItem'; -import { - AnimationBox, - SlideBannerItemList, - SliderBannerWrapper, -} from './SlideBanner.style'; +import * as S from './SlideBanner.style'; interface SlideBannerProps { name: string; @@ -39,19 +35,19 @@ function SlideBanner({ name }: SlideBannerProps) { }, [name]); return ( - - + - + {renderSlideBannerItems()} - - + + {renderSlideBannerItems()} - - - + + + ); } diff --git a/src/Detail/components/SlideBannerItem/index.tsx b/src/Detail/components/SlideBannerItem/index.tsx index 6df4a69c..2a0cf1e9 100644 --- a/src/Detail/components/SlideBannerItem/index.tsx +++ b/src/Detail/components/SlideBannerItem/index.tsx @@ -1,7 +1,7 @@ import React, { forwardRef } from 'react'; import { ImgLe, ImgStar } from '../../../assets'; -import { Name, SliderBannerItemWrapper } from './SlideBannerItem.style'; +import * as S from './SlideBannerItem.style'; interface SlideBannerItemProps { name: string; @@ -12,11 +12,11 @@ const SlideBannerItem = forwardRef(function SlideBannerItem( ref: React.Ref, ) { return ( - }> + }> - {`( ${name} )`} + {`( ${name} )`} - + ); }); From 2220850c7493e060e687305ac58d7446c67e470a Mon Sep 17 00:00:00 2001 From: jungwoo3490 Date: Sat, 6 Jan 2024 19:21:10 +0900 Subject: [PATCH 019/151] =?UTF-8?q?docs:=20=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EC=BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8=20=ED=8F=B4=EB=8D=94=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=20=EB=B0=8F=20=ED=8C=8C=EC=9D=BC=EB=AA=85=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/Detail/page/{DetailPage.tsx => DetailPage/index.tsx} | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename src/Detail/page/{DetailPage.tsx => DetailPage/index.tsx} (86%) diff --git a/src/Detail/page/DetailPage.tsx b/src/Detail/page/DetailPage/index.tsx similarity index 86% rename from src/Detail/page/DetailPage.tsx rename to src/Detail/page/DetailPage/index.tsx index 37ffa32a..b18f5b3c 100644 --- a/src/Detail/page/DetailPage.tsx +++ b/src/Detail/page/DetailPage/index.tsx @@ -1,10 +1,10 @@ -import Header from '../../components/common/Header'; -import BookInfoContainer from '../components/BookInfoContainer'; +import Header from '../../../components/common/Header'; +import BookInfoContainer from '../../components/BookInfoContainer'; // test const testProp = { - name: 'LeoJ', + name: '레오제이', profileImg: 'https://s3-alpha-sig.figma.com/img/db13/905b/40596e7ff9d7e2c5d23d2b59eaed1a7f?Expires=1705276800&Key-Pair-Id=APKAQ4GOSFWCVNEHN3O4&Signature=YdVtmax5JokofS88zzvQYV8dhDYNr5gALJf1s0eyCl9siaRilm9ZtXOtCSOe~UsH~~K5jEkb81jG3ccCA9FJ25BvUgR9K388K7h90OcCHmn-Wo4enHTIV85J2U2yIiOqh8IDoKNxG9H2hHxKVBU8GzdNitXCkUHtAaxTZRN4taiMZkVFyrFCEw-04VBKywXmAAOd3EaWJ0rJgKqecBpOKnB6DT6HgHlX3wxWhHsQI1KKqueJmXLhT4n-AxWCVALVJDdoT3VvB9-AsecG5C6og89535kPkOmVxUhwhQunmAmWYev0bPDhaSQpVDUwyVDUHgVUmuENYB4Y017o5RjiFA__', date: '2024.01.25', @@ -12,7 +12,7 @@ const testProp = { title: '첫 예능 라디오스타 축하해!', content: '우리만의 스타 레오제이 !! 3년만에 첫 예능이자 라디오스타 출연 넘 축하해~!! 앞으로 계속 이렇게 우리 옆에 있어줘! 항상 응원할게! 어그래그래어엉', - isDarkMode: true, + isDarkMode: false, }; function DetailPage() { From fad6d762b4d260054f93a964661e13cae230a128 Mon Sep 17 00:00:00 2001 From: eunbeann Date: Sat, 6 Jan 2024 19:22:29 +0900 Subject: [PATCH 020/151] =?UTF-8?q?chore:=20stylelint=20gap,grid=20?= =?UTF-8?q?=EC=86=8D=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .stylelintrc.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.stylelintrc.json b/.stylelintrc.json index e67f227e..e7750f1a 100644 --- a/.stylelintrc.json +++ b/.stylelintrc.json @@ -22,6 +22,7 @@ "noEmptyLineBetween": true, "properties": [ "display", + "gap", "justify-content", "align-items", "flex-direction", @@ -30,6 +31,12 @@ "flex-grow", "flex-shrink", "flex-basis", + "grid-template-columns", + "grid-area", + "grid-template-rows", + "grid-column", + "grid-template-areas", + "grid-gap", "position", "top", "right", @@ -77,6 +84,8 @@ "border-style", "background", "background-color", + "background-position", + "background-size", "color", "font-style", "font-weight", From 29bfc0ec9044be75ff4244d5b0fd353f5068483d Mon Sep 17 00:00:00 2001 From: eunbeann Date: Sat, 6 Jan 2024 19:23:45 +0900 Subject: [PATCH 021/151] =?UTF-8?q?style:=20stylelint=20=EB=8B=B9=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/StickerList/StickerList.style.ts | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/StickerPack/components/StickerList/StickerList.style.ts b/src/StickerPack/components/StickerList/StickerList.style.ts index 74016fb6..296e13f8 100644 --- a/src/StickerPack/components/StickerList/StickerList.style.ts +++ b/src/StickerPack/components/StickerList/StickerList.style.ts @@ -18,12 +18,10 @@ export const Title = styled.header` export const StickerGridWrapper = styled.div` display: grid; - - width: 100%; - + gap: 2.15rem 1.6rem; grid-template-columns: repeat(3, 1fr); - gap: 2.15rem 1.6rem; + width: 100%; `; export const ImageComponent = styled.button<{ @@ -38,8 +36,6 @@ export const ImageComponent = styled.button<{ isSelected ? theme.colors.key : theme.colors.BG}; border-radius: 0.4rem; background: url(${({ url }) => url};); - - background-size: 10rem 10rem; - background-position: center; + background-size: 10rem 10rem; `; From 1f51d0ee3a88eb3b82488a57be523fb7912f8346 Mon Sep 17 00:00:00 2001 From: eunbeann Date: Sat, 6 Jan 2024 19:41:11 +0900 Subject: [PATCH 022/151] =?UTF-8?q?style:=20sticker=20handle=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/StickerList/StickerList.style.ts | 4 ++-- src/StickerPack/components/StickerList/index.tsx | 10 +++------- src/StickerPack/page/StickerPack/StickerPack.style.ts | 2 +- src/StickerPack/page/StickerPack/index.tsx | 8 +++++++- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/StickerPack/components/StickerList/StickerList.style.ts b/src/StickerPack/components/StickerList/StickerList.style.ts index 296e13f8..63755bef 100644 --- a/src/StickerPack/components/StickerList/StickerList.style.ts +++ b/src/StickerPack/components/StickerList/StickerList.style.ts @@ -1,6 +1,6 @@ import styled from '@emotion/styled'; -export const Wrapper = styled.div` +export const Wrapper = styled.section` display: flex; align-items: start; flex-direction: column; @@ -16,7 +16,7 @@ export const Title = styled.header` ${({ theme }) => theme.fonts.Head2_SB_18}; `; -export const StickerGridWrapper = styled.div` +export const StickerGridWrapper = styled.article` display: grid; gap: 2.15rem 1.6rem; grid-template-columns: repeat(3, 1fr); diff --git a/src/StickerPack/components/StickerList/index.tsx b/src/StickerPack/components/StickerList/index.tsx index 1d99782a..007d12b7 100644 --- a/src/StickerPack/components/StickerList/index.tsx +++ b/src/StickerPack/components/StickerList/index.tsx @@ -1,18 +1,14 @@ -import React, { Dispatch } from 'react'; +import React from 'react'; import * as S from './StickerList.style'; interface StickerListProps { isSelectedId: number | null; - setIsSelectedId: Dispatch>; + handleStickerClick: (stickerId: number) => void; } function StickerList(props: StickerListProps) { - const { isSelectedId, setIsSelectedId } = props; - - const handleStickerClick = (stickerId: number) => { - setIsSelectedId(stickerId); - }; + const { isSelectedId, handleStickerClick } = props; return ( diff --git a/src/StickerPack/page/StickerPack/StickerPack.style.ts b/src/StickerPack/page/StickerPack/StickerPack.style.ts index f3eef296..2175191d 100644 --- a/src/StickerPack/page/StickerPack/StickerPack.style.ts +++ b/src/StickerPack/page/StickerPack/StickerPack.style.ts @@ -1,6 +1,6 @@ import styled from '@emotion/styled'; -export const Body = styled.div` +export const Body = styled.section` display: flex; justify-content: center; align-items: center; diff --git a/src/StickerPack/page/StickerPack/index.tsx b/src/StickerPack/page/StickerPack/index.tsx index 20b4b1c3..b8452399 100644 --- a/src/StickerPack/page/StickerPack/index.tsx +++ b/src/StickerPack/page/StickerPack/index.tsx @@ -9,16 +9,22 @@ import * as S from './StickerPack.style.ts'; function StickerPack() { const [isSelectedId, setIsSelectedId] = useState(null); + + const handleStickerClick = (stickerId: number) => { + setIsSelectedId(stickerId); + }; + const handleClickDone = () => { alert(`${isSelectedId}`); }; + return ( <>
+ + ); +} + +export default LoginBtnContainer; diff --git a/src/Login/page/index.tsx b/src/Login/page/index.tsx index a49e9f83..2e3e27bd 100644 --- a/src/Login/page/index.tsx +++ b/src/Login/page/index.tsx @@ -1,12 +1,16 @@ +import Comment from '../components/Comment'; import Header from '../components/Header'; -import LecueExplain from '../components/LecueExplain'; +import LecueLogo from '../components/LecueLogo'; +import LoginBtnContainer from '../components/LoginBtnContainer'; import * as S from './Login.style'; function Login() { return (
- + + + ); } From 5a249cd0193fdf74b89134963e76dc45eee48f4d Mon Sep 17 00:00:00 2001 From: jungwoo3490 Date: Wed, 10 Jan 2024 04:54:10 +0900 Subject: [PATCH 066/151] =?UTF-8?q?style:=20stylelint=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/Header/Header.style.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/common/Header/Header.style.ts b/src/components/common/Header/Header.style.ts index 98d7ea05..b2f62cff 100644 --- a/src/components/common/Header/Header.style.ts +++ b/src/components/common/Header/Header.style.ts @@ -4,9 +4,9 @@ export const HeaderWrapper = styled.header<{ isDarkMode?: boolean }>` display: flex; justify-content: center; align-items: center; + flex-shrink: 0; position: fixed; z-index: 1; - flex-shrink: 0; width: 100%; height: 5.4rem; From 025748c4480036237494d8c96ac6fd30a899ed9a Mon Sep 17 00:00:00 2001 From: jungwoo3490 Date: Wed, 10 Jan 2024 05:12:12 +0900 Subject: [PATCH 067/151] =?UTF-8?q?refactor:=20BookInfoContainer=20?= =?UTF-8?q?=EC=BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/BookInfoContainer/index.tsx | 35 ------------------- src/Detail/page/DetailPage/index.tsx | 4 +-- 2 files changed, 2 insertions(+), 37 deletions(-) delete mode 100644 src/Detail/components/BookInfoContainer/index.tsx diff --git a/src/Detail/components/BookInfoContainer/index.tsx b/src/Detail/components/BookInfoContainer/index.tsx deleted file mode 100644 index f023ec79..00000000 --- a/src/Detail/components/BookInfoContainer/index.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import BookInfoBox from '../BookInfoBox'; - -interface BookInfoContainerProps { - name: string; - profileImg: string; - date: string; - nickname: string; - title: string; - content: string; - backgroundColor: number; -} - -function BookInfoContainer({ - profileImg, - date, - nickname, - title, - content, - backgroundColor, -}: BookInfoContainerProps) { - return ( -
- -
- ); -} - -export default BookInfoContainer; diff --git a/src/Detail/page/DetailPage/index.tsx b/src/Detail/page/DetailPage/index.tsx index 7fa8f010..b968b2d7 100644 --- a/src/Detail/page/DetailPage/index.tsx +++ b/src/Detail/page/DetailPage/index.tsx @@ -1,5 +1,5 @@ import Header from '../../../components/common/Header'; -import BookInfoContainer from '../../components/BookInfoContainer'; +import BookInfoBox from '../../components/BookInfoBox'; import LecueNoteListContainer from '../../components/LecueNoteListContainer'; import SlideBanner from '../../components/SlideBanner'; import * as S from './DetailPage.style'; @@ -82,7 +82,7 @@ function DetailPage() { - + Date: Wed, 10 Jan 2024 06:10:29 +0900 Subject: [PATCH 068/151] =?UTF-8?q?feat:=20Wrapper=20=EC=86=8D=EC=84=B1=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Login/page/Login.style.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Login/page/Login.style.ts b/src/Login/page/Login.style.ts index 59231566..7e793e9a 100644 --- a/src/Login/page/Login.style.ts +++ b/src/Login/page/Login.style.ts @@ -1,6 +1,10 @@ import styled from '@emotion/styled'; export const LoginWrapper = styled.section` + display: flex; + align-items: center; + flex-direction: column; + width: 100vw; height: 100dvh; From 3526486e81c9ed1f449db98f617c8058ec5f7efe Mon Sep 17 00:00:00 2001 From: seoAreum <1971236@hansung.ac.kr> Date: Wed, 10 Jan 2024 12:35:25 +0900 Subject: [PATCH 069/151] =?UTF-8?q?docs:=20readme=20=EB=AC=B8=EC=84=9C=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 148 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ee635805..87c28b8b 100644 --- a/README.md +++ b/README.md @@ -1 +1,148 @@ -아루밍 비니 쩡우 도리 큐비들 사랑해~❤️ +
+

💌 Lecue 💌

+ +로고 대문 이미지 +
+ +
+ +## 💡서비스 소개 +함께 꾸미며 ✨최애✨에게 진심을 전하는 롤링페이퍼 서비스 + +
+ +## ✨ OUR TEAM + +| 프로필사진 | 프로필사진 | 프로필사진 | 프로필사진 | +| :-------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------: | +|
아름
|
은빈
|
정우
|
도윤
| +| [@Arooming](https://github.com/Arooming) | [@eunbeann](https://github.com/eunbeann) | [@jungwoo3490](https://github.com/jungwoo3490) | [@binllionaire](https://github.com/binllionaire) | + + +
+ +

🛠 기술스택

+ +
+ +| 역할 | 종류 | +| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Library | ![React](https://img.shields.io/badge/React-61DAFB?style=for-the-badge&logo=React&logoColor=black) | +| Programming Language | ![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=TypeScript&logoColor=white) | +| Styling | ![Emotion](https://img.shields.io/badge/Emotion-000000?style=for-the-badge&logo=emotion&logoColor=white) | +| Data Fetching | ![React Query](https://img.shields.io/badge/react--query-FF4154?style=for-the-badge&logo=react-query&logoColor=white) | +| State Management | ![State Management](https://img.shields.io/badge/recoil-007af4?style=for-the-badge&logo=Recoil&logoColor=white) | +| Formatting | ![ESLint](https://img.shields.io/badge/ESLint-4B3263?style=for-the-badge&logo=eslint&logoColor=white) ![Prettier](https://img.shields.io/badge/prettier-1A2C34?style=for-the-badge&logo=prettier&logoColor=F7BA3E) ![StyleLint](https://img.shields.io/badge/stylelint-E0EFEF?style=for-the-badge&logo=stylelint&logoColor=000) | +| Package Manager | ![Yarn](https://img.shields.io/badge/Yarn-2C8EBB?style=for-the-badge&logo=yarn&logoColor=white) | +| Version Control | ![Git](https://img.shields.io/badge/git-%23F05033.svg?style=for-the-badge&logo=git&logoColor=white) ![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white) | +| Deployment | ![Vercel](https://img.shields.io/badge/Vercel-000000?style=for-the-badge&logo=vercel&logoColor=white) | + +
+ +
+ +

💡 주요 라이브러리

+ +``` + "@emotion/react": "^11.11.3", + "@emotion/styled": "^11.11.0", + "axios": "^1.6.5", + "postcss": "^8.4.33", + "react-query": "^3.39.3", + "react-router-dom": "^6.21.1", + "vite-plugin-svgr": "^4.2.0" +``` + +
+ +

📄 컨벤션 및 브랜치 전략

+

🔽💌 큐비들 공간 💌🔽

+
+ +
+ +## 💻 Commit 컨벤션 + +- 기본적인것 (feat, fix, chore, ..) 위주로만 지키기! + +| 제목 | 내용 | +| ----------- | -------------------------------------------------------------------------------- | +| init | 브랜치 첫 커밋 | +| feat | 새로운 기능을 추가할 경우 | +| style | 기능에 영향을 주지 않는 커밋, 코드 순서, css 등의 포맷에 관한 커밋 | +| fix | 버그를 고친 경우 | +| refactor | 코드 리팩토링에 대한 커밋 | +| docs | 문서를 수정한 경우, 파일 삭제, 파일명 수정 등 | +| chore | 빌드 테스트 업데이트, 패키지 매니저를 설정하는 경우, 주석 추가, 자잘한 문서 수정 | +| code review | 코드 리뷰 반영 | + +
+ +## 🎋 브랜치 전략 +- **`feature/페이지명`** + - feature/SelectPage (파스칼) +- **`페이지명/#이슈번호-기능설명`** + - SelectPage/#3-select-custom (-로 연결) + +- 페이지명/이슈번호-기능설명 브랜치 ⇒ feature/페이지명으로 머지 +- feature/페이지명 완료 되면 ⇒ develop으로 머지 +- 중간 중간 develop ⇒ main 머지 + +
+ +## 💒 브랜치 운영 +- **main**: 우리가 개발 최종시에 Merge를 하는 곳 ❗️ +- **develop** : 개발할때 Merge +- **hotfix** : QA 시 수정사항 반영 +- **feature**: 기능을 개발하면서 각자가 사용할 브랜치 +- **test**: 개인 연습 브랜치 + +
+ +

📁 폴더 구조

+ +- 지역성의 원칙을 고려한 폴더구조 +- 한글 네이밍 가능 + +``` +├── public 🗂 썸네일 이미지, 로고 이미지 저장 +├── .eslintrc.cjs ✨ 린트 설정 +├── .prettierrc.cjs ✨ 프리티어 설정 +├── package.json 📦 설치된 패키지를 관리하는 파일 +└── src + ├── App.tsx ✡️ 앱의 라우팅과 글로벌 스타일 지정 + │ + ├── main.tsx + │ + ├── Router.tsx ✡️ 라우터 설정 + │ + ├── assets + │ ├── icon 🖼 이미지 파일들 저장 + │ ├── └── svgs 🌁 svg 파일들 저장 + │ + ├── components 🗂 공통 컴포넌트들 저장 + │ └── Modal.tsx + │ + ├── Login 🗂 각 기능 별 폴더 생성 + │ ├── pages 🗂 라우팅 시 보여질 페이지 컴포넌트 저장 + │ │ └── LoginPage.tsx + │ ├── components 🗂 해당 기능을 구현하는데 필요한 컴포넌트 저장 + │ │ ├── LoginFooter.tsx + │ │ ├── LoginCallback.tsx + │ │ └── LoginHome.tsx + │ │ + │ └── constants 🗂 상수 파일 저장 + │ + ├── styles 🗂 전역 스타일 관련 파일들 저장 + │ ├── GlobalStyle.ts + │ └── theme.ts + │ + ├── utils 🗂 util 함수 관련 파일들 저장 + │ + ├── libs 🗂 라이브러리리 관련 파일 저장 + │ ├── hooks 🗂 커스텀 훅 저장 + │ ├── api.ts + │ +``` + +
From 281dc10ad3209af908669e92fb7c871c24a3f64f Mon Sep 17 00:00:00 2001 From: seoAreum <80264647+Arooming@users.noreply.github.com> Date: Wed, 10 Jan 2024 12:37:01 +0900 Subject: [PATCH 070/151] Update README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 87c28b8b..4466e4c2 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,11 @@
## 💡서비스 소개 -함께 꾸미며 ✨최애✨에게 진심을 전하는 롤링페이퍼 서비스 +다 함께 마음을 전해요. 최애를 위한 우리들의 롤링페이퍼, 레큐 + +최애만을 위한 레큐북을 만들고 링크로 전달해요. +각자의 마음을 담아 레큐노트를 작성해요. +다 함께 레큐북을 꾸며요.
From 1d163419cd38e485d99199f3c8f5a4770cf200d3 Mon Sep 17 00:00:00 2001 From: seoAreum <80264647+Arooming@users.noreply.github.com> Date: Wed, 10 Jan 2024 12:37:21 +0900 Subject: [PATCH 071/151] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4466e4c2..6884b0df 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,9 @@ ## 💡서비스 소개 다 함께 마음을 전해요. 최애를 위한 우리들의 롤링페이퍼, 레큐 -최애만을 위한 레큐북을 만들고 링크로 전달해요. -각자의 마음을 담아 레큐노트를 작성해요. -다 함께 레큐북을 꾸며요. +- 최애만을 위한 레큐북을 만들고 링크로 전달해요. +- 각자의 마음을 담아 레큐노트를 작성해요. +- 다 함께 레큐북을 꾸며요.
From f9d8fd4fc916d42280f89b76654656c51322aa78 Mon Sep 17 00:00:00 2001 From: Eunbeann <65286685+eunbeann@users.noreply.github.com> Date: Wed, 10 Jan 2024 12:41:08 +0900 Subject: [PATCH 072/151] docs: update README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6884b0df..85102415 100644 --- a/README.md +++ b/README.md @@ -19,8 +19,8 @@ | 프로필사진 | 프로필사진 | 프로필사진 | 프로필사진 | | :-------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------: | -|
아름
|
은빈
|
정우
|
도윤
| -| [@Arooming](https://github.com/Arooming) | [@eunbeann](https://github.com/eunbeann) | [@jungwoo3490](https://github.com/jungwoo3490) | [@binllionaire](https://github.com/binllionaire) | +|
[짱리드]아름
|
은빈
|
정우
|
도윤
| +| [@Arooming](https://github.com/Arooming) | [@eunbeann](https://github.com/eunbeann/300x300) | [@jungwoo3490](https://github.com/jungwoo3490) | [@binllionaire](https://github.com/binllionaire) |
From 43cd1e5945ff8e012f341d9e65a1dd1290a5aa53 Mon Sep 17 00:00:00 2001 From: eunbenn Date: Wed, 10 Jan 2024 12:55:22 +0900 Subject: [PATCH 073/151] =?UTF-8?q?style:=20fragment=20import=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/StickerPack/components/StickerList/index.tsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/StickerPack/components/StickerList/index.tsx b/src/StickerPack/components/StickerList/index.tsx index 2279afa1..bd03882b 100644 --- a/src/StickerPack/components/StickerList/index.tsx +++ b/src/StickerPack/components/StickerList/index.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import { Fragment } from 'react'; import useGetStickerPack from '../../hooks/useGetStickerPack'; import { stickerPackType } from '../../type/stickerPackType'; @@ -15,8 +15,7 @@ function StickerList(props: StickerListProps) { return ( - {stickerPack.map((data: stickerPackType) => ( - + {data.stickerCategory} {data.stickerList.map((sticker) => ( @@ -32,7 +31,7 @@ function StickerList(props: StickerListProps) { ))} - + ))} ); From 80328a372658ae927d53dfc9fb2b4ac2b7b5cbc0 Mon Sep 17 00:00:00 2001 From: eunbenn Date: Wed, 10 Jan 2024 12:58:12 +0900 Subject: [PATCH 074/151] =?UTF-8?q?feat:=20=EC=A1=B0=EA=B1=B4=EB=B6=80?= =?UTF-8?q?=EB=A0=8C=EB=8D=94=EB=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/StickerPack/components/StickerList/index.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/StickerPack/components/StickerList/index.tsx b/src/StickerPack/components/StickerList/index.tsx index bd03882b..f216f5f6 100644 --- a/src/StickerPack/components/StickerList/index.tsx +++ b/src/StickerPack/components/StickerList/index.tsx @@ -15,6 +15,8 @@ function StickerList(props: StickerListProps) { return ( + {stickerPack?.length > 0 && + stickerPack.map((data: stickerPackType) => ( {data.stickerCategory} From 4c99aaed8bf138903e774f78f33bc5453935b2a1 Mon Sep 17 00:00:00 2001 From: eunbenn Date: Wed, 10 Jan 2024 12:59:04 +0900 Subject: [PATCH 075/151] =?UTF-8?q?feat:=20=ED=8C=8C=EB=9D=BC=EB=AF=B8?= =?UTF-8?q?=ED=84=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/StickerList/index.tsx | 35 ++++++++++--------- src/StickerPack/hooks/useGetStickerPack.ts | 16 +++++---- src/libs/hooks/getStickerPack.ts | 6 ++-- 3 files changed, 31 insertions(+), 26 deletions(-) diff --git a/src/StickerPack/components/StickerList/index.tsx b/src/StickerPack/components/StickerList/index.tsx index f216f5f6..07e2a26f 100644 --- a/src/StickerPack/components/StickerList/index.tsx +++ b/src/StickerPack/components/StickerList/index.tsx @@ -11,30 +11,31 @@ interface StickerListProps { function StickerList(props: StickerListProps) { const { isSelectedId, handleStickerClick } = props; - const { stickerPack } = useGetStickerPack(); + //TODO 임시 값 수정 + const { stickerPack } = useGetStickerPack(1); return ( {stickerPack?.length > 0 && stickerPack.map((data: stickerPackType) => ( - {data.stickerCategory} - - {data.stickerList.map((sticker) => ( - handleStickerClick(sticker.stickerId)} - isSelected={sticker.stickerId === isSelectedId} - > - - - ))} - + {data.stickerCategory} + + {data.stickerList.map((sticker) => ( + handleStickerClick(sticker.stickerId)} + isSelected={sticker.stickerId === isSelectedId} + > + + + ))} + - ))} + ))} ); } diff --git a/src/StickerPack/hooks/useGetStickerPack.ts b/src/StickerPack/hooks/useGetStickerPack.ts index 714fac58..bb7618c7 100644 --- a/src/StickerPack/hooks/useGetStickerPack.ts +++ b/src/StickerPack/hooks/useGetStickerPack.ts @@ -2,12 +2,16 @@ import { useQuery } from 'react-query'; import { getStickerPack } from '../../libs/hooks/getStickerPack'; -export default function useGetStickerPack() { - const { data } = useQuery(['useGetStickerPack'], getStickerPack, { - onError: () => { - console.error; +export default function useGetStickerPack(bookId: number) { + const { data: stickerPack } = useQuery( + ['useGetStickerPack'], + () => getStickerPack(bookId), + { + onError: () => { + console.error; + }, }, - }); + ); - return { data }; + return { stickerPack }; } diff --git a/src/libs/hooks/getStickerPack.ts b/src/libs/hooks/getStickerPack.ts index 551e61c5..44641a43 100644 --- a/src/libs/hooks/getStickerPack.ts +++ b/src/libs/hooks/getStickerPack.ts @@ -1,12 +1,12 @@ import { api } from '../api'; -export async function getStickerPack() { - const data = await api.get(`/api/stickers/1`, { +export async function getStickerPack(bookId: number) { + const data = await api.get(`/api/stickers/${bookId}`, { headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${import.meta.env.VITE_APP_TOKEN}`, }, }); - return data; + return data.data.data; } From 0fdb0e4c267cbed30be96bd34776536656a204b9 Mon Sep 17 00:00:00 2001 From: seoAreum <1971236@hansung.ac.kr> Date: Wed, 10 Jan 2024 15:46:58 +0900 Subject: [PATCH 076/151] =?UTF-8?q?init:=20=EC=BB=B4=ED=8F=AC=EB=84=8C?= =?UTF-8?q?=ED=8A=B8=20=EC=84=A4=EA=B3=84=20=EC=B4=88=EA=B8=B0=20=EC=84=B8?= =?UTF-8?q?=ED=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/BgColor/BgColor.style.ts | 9 +++++++++ src/LecueNote/components/BgColor/index.tsx | 11 +++++++++++ .../components/CreateNote/CreateNote.style.ts | 6 ++++++ src/LecueNote/components/CreateNote/index.tsx | 14 ++++++++++++++ src/LecueNote/components/Footer/Footer.style.ts | 9 +++++++++ src/LecueNote/components/Footer/index.tsx | 11 +++++++++++ .../components/SelectColor/SelectColor.style.ts | 5 +++++ src/LecueNote/components/SelectColor/index.tsx | 14 ++++++++++++++ .../components/TextColor/TextColor.style.ts | 9 +++++++++ src/LecueNote/components/TextColor/index.tsx | 11 +++++++++++ .../components/WriteNote/WriteNote.style.ts | 9 +++++++++ src/LecueNote/components/WriteNote/index.tsx | 11 +++++++++++ .../page/LeceuNotePage/LecueNotePage.style.ts | 11 +++++++++++ src/LecueNote/page/LeceuNotePage/index.tsx | 16 ++++++++++++++++ 14 files changed, 146 insertions(+) create mode 100644 src/LecueNote/components/BgColor/BgColor.style.ts create mode 100644 src/LecueNote/components/BgColor/index.tsx create mode 100644 src/LecueNote/components/CreateNote/CreateNote.style.ts create mode 100644 src/LecueNote/components/CreateNote/index.tsx create mode 100644 src/LecueNote/components/Footer/Footer.style.ts create mode 100644 src/LecueNote/components/Footer/index.tsx create mode 100644 src/LecueNote/components/SelectColor/SelectColor.style.ts create mode 100644 src/LecueNote/components/SelectColor/index.tsx create mode 100644 src/LecueNote/components/TextColor/TextColor.style.ts create mode 100644 src/LecueNote/components/TextColor/index.tsx create mode 100644 src/LecueNote/components/WriteNote/WriteNote.style.ts create mode 100644 src/LecueNote/components/WriteNote/index.tsx create mode 100644 src/LecueNote/page/LeceuNotePage/LecueNotePage.style.ts create mode 100644 src/LecueNote/page/LeceuNotePage/index.tsx diff --git a/src/LecueNote/components/BgColor/BgColor.style.ts b/src/LecueNote/components/BgColor/BgColor.style.ts new file mode 100644 index 00000000..9b074b19 --- /dev/null +++ b/src/LecueNote/components/BgColor/BgColor.style.ts @@ -0,0 +1,9 @@ +import styled from '@emotion/styled'; + +export const Wrapper = styled.div` + display: flex; +`; + +export const Contents = styled.p` + color: blue; +`; diff --git a/src/LecueNote/components/BgColor/index.tsx b/src/LecueNote/components/BgColor/index.tsx new file mode 100644 index 00000000..6e28e513 --- /dev/null +++ b/src/LecueNote/components/BgColor/index.tsx @@ -0,0 +1,11 @@ +import * as S from './BgColor.style'; + +function BgColor() { + return ( + + BgColor + + ); +} + +export default BgColor; diff --git a/src/LecueNote/components/CreateNote/CreateNote.style.ts b/src/LecueNote/components/CreateNote/CreateNote.style.ts new file mode 100644 index 00000000..788baba2 --- /dev/null +++ b/src/LecueNote/components/CreateNote/CreateNote.style.ts @@ -0,0 +1,6 @@ +import styled from '@emotion/styled'; + +export const Wrapper = styled.div` + display: flex; + flex-direction: column; +`; diff --git a/src/LecueNote/components/CreateNote/index.tsx b/src/LecueNote/components/CreateNote/index.tsx new file mode 100644 index 00000000..db18f86b --- /dev/null +++ b/src/LecueNote/components/CreateNote/index.tsx @@ -0,0 +1,14 @@ +import SelectColor from '../SelectColor'; +import WriteNote from '../WriteNote'; +import * as S from './CreateNote.style'; + +function CreateNote() { + return ( + + + + + ); +} + +export default CreateNote; diff --git a/src/LecueNote/components/Footer/Footer.style.ts b/src/LecueNote/components/Footer/Footer.style.ts new file mode 100644 index 00000000..9b074b19 --- /dev/null +++ b/src/LecueNote/components/Footer/Footer.style.ts @@ -0,0 +1,9 @@ +import styled from '@emotion/styled'; + +export const Wrapper = styled.div` + display: flex; +`; + +export const Contents = styled.p` + color: blue; +`; diff --git a/src/LecueNote/components/Footer/index.tsx b/src/LecueNote/components/Footer/index.tsx new file mode 100644 index 00000000..4bd7045c --- /dev/null +++ b/src/LecueNote/components/Footer/index.tsx @@ -0,0 +1,11 @@ +import * as S from './Footer.style'; + +function Footer() { + return ( + + Footer + + ); +} + +export default Footer; diff --git a/src/LecueNote/components/SelectColor/SelectColor.style.ts b/src/LecueNote/components/SelectColor/SelectColor.style.ts new file mode 100644 index 00000000..fa9ba94f --- /dev/null +++ b/src/LecueNote/components/SelectColor/SelectColor.style.ts @@ -0,0 +1,5 @@ +import styled from '@emotion/styled'; + +export const Wrapper = styled.div` + display: flex; +`; diff --git a/src/LecueNote/components/SelectColor/index.tsx b/src/LecueNote/components/SelectColor/index.tsx new file mode 100644 index 00000000..fc2b8f04 --- /dev/null +++ b/src/LecueNote/components/SelectColor/index.tsx @@ -0,0 +1,14 @@ +import BgColor from '../BgColor'; +import TextColor from '../TextColor'; +import * as S from './SelectColor.style'; + +function SelectColor() { + return ( + + + + + ); +} + +export default SelectColor; diff --git a/src/LecueNote/components/TextColor/TextColor.style.ts b/src/LecueNote/components/TextColor/TextColor.style.ts new file mode 100644 index 00000000..9b074b19 --- /dev/null +++ b/src/LecueNote/components/TextColor/TextColor.style.ts @@ -0,0 +1,9 @@ +import styled from '@emotion/styled'; + +export const Wrapper = styled.div` + display: flex; +`; + +export const Contents = styled.p` + color: blue; +`; diff --git a/src/LecueNote/components/TextColor/index.tsx b/src/LecueNote/components/TextColor/index.tsx new file mode 100644 index 00000000..390c1f3e --- /dev/null +++ b/src/LecueNote/components/TextColor/index.tsx @@ -0,0 +1,11 @@ +import * as S from './TextColor.style'; + +function TextColor() { + return ( + + TextColor + + ); +} + +export default TextColor; diff --git a/src/LecueNote/components/WriteNote/WriteNote.style.ts b/src/LecueNote/components/WriteNote/WriteNote.style.ts new file mode 100644 index 00000000..9b074b19 --- /dev/null +++ b/src/LecueNote/components/WriteNote/WriteNote.style.ts @@ -0,0 +1,9 @@ +import styled from '@emotion/styled'; + +export const Wrapper = styled.div` + display: flex; +`; + +export const Contents = styled.p` + color: blue; +`; diff --git a/src/LecueNote/components/WriteNote/index.tsx b/src/LecueNote/components/WriteNote/index.tsx new file mode 100644 index 00000000..4458f422 --- /dev/null +++ b/src/LecueNote/components/WriteNote/index.tsx @@ -0,0 +1,11 @@ +import * as S from './WriteNote.style'; + +function WriteNote() { + return ( + + WriteNote + + ); +} + +export default WriteNote; diff --git a/src/LecueNote/page/LeceuNotePage/LecueNotePage.style.ts b/src/LecueNote/page/LeceuNotePage/LecueNotePage.style.ts new file mode 100644 index 00000000..286cb659 --- /dev/null +++ b/src/LecueNote/page/LeceuNotePage/LecueNotePage.style.ts @@ -0,0 +1,11 @@ +import styled from '@emotion/styled'; + +export const Wrapper = styled.div` + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + + width: 100vw; + height: 100dvh; +`; diff --git a/src/LecueNote/page/LeceuNotePage/index.tsx b/src/LecueNote/page/LeceuNotePage/index.tsx new file mode 100644 index 00000000..9c8283a7 --- /dev/null +++ b/src/LecueNote/page/LeceuNotePage/index.tsx @@ -0,0 +1,16 @@ +// import Header from '../../../components/common/Header'; +import CreateNote from '../../components/CreateNote'; +import Footer from '../../components/Footer'; +import * as S from './LecueNotePage.style'; + +function LecueNotePage() { + return ( + + {/*
*/} + +