λ‘κ·ΈμΈ
From b588896167b694e31c5806d4e279fc7582b28397 Mon Sep 17 00:00:00 2001
From: Sungu Kim <108677235+haegu97@users.noreply.github.com>
Date: Mon, 16 Dec 2024 09:20:40 +0900
Subject: [PATCH 2/6] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20[Refactor]=20checkLogi?=
=?UTF-8?q?nStatus=EB=A5=BC=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=ED=8E=98?=
=?UTF-8?q?=EC=9D=B4=EC=A7=80=EC=97=90=EC=84=9C=20=ED=99=95=EC=9D=B8=20#17?=
=?UTF-8?q?6=20(#177)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/header/HeaderBar.tsx | 8 ++------
src/features/auth/container/login-form/LoginForm.tsx | 8 +++++++-
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/components/header/HeaderBar.tsx b/src/components/header/HeaderBar.tsx
index efddc10f..9ac98bdc 100644
--- a/src/components/header/HeaderBar.tsx
+++ b/src/components/header/HeaderBar.tsx
@@ -1,6 +1,6 @@
'use client';
-import React, { useEffect } from 'react';
+import React from 'react';
import NavButton from './NavButton';
import { NAV_ITEMS } from '@/constants/navigation';
import { usePathname, useRouter } from 'next/navigation';
@@ -10,13 +10,9 @@ import { logout } from '@/features/auth/api/auth';
function HeaderBar() {
const pathname = usePathname();
- const { isLoggedIn, user, checkLoginStatus } = useAuthStore();
+ const { isLoggedIn, user } = useAuthStore();
const router = useRouter();
- useEffect(() => {
- checkLoginStatus();
- }, [checkLoginStatus]);
-
const handleDropDownChange = async (value: string | undefined) => {
if (value === 'LOGOUT') {
try {
diff --git a/src/features/auth/container/login-form/LoginForm.tsx b/src/features/auth/container/login-form/LoginForm.tsx
index 8be4b7be..11ddd0a4 100644
--- a/src/features/auth/container/login-form/LoginForm.tsx
+++ b/src/features/auth/container/login-form/LoginForm.tsx
@@ -1,6 +1,6 @@
'use client';
-import React from 'react';
+import React, { useEffect } from 'react';
import { useForm } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import Link from 'next/link';
@@ -8,12 +8,14 @@ import Link from 'next/link';
import Button from '@/components/button/Button';
import FormField from '@/features/auth/components/form-field/FormField';
import { useLoginSubmit } from '@/features/auth/hooks/useLoginSubmit';
+import { useAuthStore } from '@/store/authStore';
import {
loginFormSchema,
type LoginFormData,
} from '@/features/auth/types/loginFormSchema';
export default function LoginForm() {
+ const { checkLoginStatus } = useAuthStore();
const {
register,
handleSubmit,
@@ -25,6 +27,10 @@ export default function LoginForm() {
mode: 'onChange',
});
+ useEffect(() => {
+ checkLoginStatus();
+ }, [checkLoginStatus]);
+
const onSubmit = useLoginSubmit(setError, reset);
return (
From a3bb4d9acfb548935ee162ca76dfe6621236d8c2 Mon Sep 17 00:00:00 2001
From: Minkyung Kim <97824352+wynter24@users.noreply.github.com>
Date: Mon, 16 Dec 2024 10:17:31 +0900
Subject: [PATCH 3/6] =?UTF-8?q?=E2=9C=A8[Feat]=20=EB=AA=A8=EC=9E=84=20?=
=?UTF-8?q?=EB=A9=94=EC=9D=B4=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=9D=B4?=
=?UTF-8?q?=EB=8F=99=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80=20#180=20(#?=
=?UTF-8?q?181)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* β¨[Feat] μμΈνμ΄μ§ μ΄λ λ‘μ§ μΆκ° #180
* β¨[Feat] λͺ¨μ μμ± νμ΄μ§ μ΄λ λ‘μ§ μΆκ° #180
* π[Design] λͺ¨λ°μΌ μΉ΄λ κ°μ΄λ° μ λ ¬ #180
---
.../bookclub/components/ClubListSection.tsx | 149 +++++++++---------
.../bookclub/components/HeaderSection.tsx | 6 +
2 files changed, 84 insertions(+), 71 deletions(-)
diff --git a/src/features/bookclub/components/ClubListSection.tsx b/src/features/bookclub/components/ClubListSection.tsx
index 219f6afe..c8ab13b6 100644
--- a/src/features/bookclub/components/ClubListSection.tsx
+++ b/src/features/bookclub/components/ClubListSection.tsx
@@ -1,81 +1,88 @@
-// import { Meeting } from '@/components/card/types';
+'use client';
import Card from '@/components/card/Card';
-import { CardProps } from '@/components/card/types';
+import { useRouter } from 'next/navigation';
-// const mockImgSrc = '/images/profile.png';
-
-// const mockMeeting: Meeting = {
-// meetingInfo: {
-// title: 'μμ§λ‘μμ λ§λλ λ
μ λͺ¨μ',
-// category: 'μμ μ±
',
-// location: 'μμ§λ‘ 3κ°',
-// datetime: '12/14(ν ) μ€μ 10:00',
-// },
-// participationStatus: {
-// currentParticipants: 17,
-// maxParticipants: 20,
-// isConfirmed: true,
-// confirmedVariant: 'confirmed',
-// participants: [
-// {
-// src: mockImgSrc,
-// alt: 'μ°Έκ°μ1',
-// },
-// {
-// src: mockImgSrc,
-// alt: 'μ°Έκ°μ2',
-// },
-// {
-// src: mockImgSrc,
-// alt: 'μ°Έκ°μ3',
-// },
-// ],
-// },
-// imageInfo: {
-// url: mockImgSrc,
-// isLiked: true,
-// onLikeClick: () => alert('μ’μμλ₯Ό λλ μ΅λλ€!'),
-// },
-// isPast: false,
-// isCanceled: false,
-// actions: {
-// onClick: () => alert('μΉ΄λλ₯Ό ν΄λ¦νμ΅λλ€!'),
-// onDelete: () => alert('λͺ¨μμ μμ νμ΅λλ€!'),
-// },
-// };
+function ClubListSection() {
+ const router = useRouter();
-const defaultCardProps: CardProps = {
- imageUrl: '/images/profile.png',
- imageAlt: 'λͺ¨μ μ΄λ―Έμ§',
- title: 'λ
μ λͺ¨μ',
- location: 'μμΈ κ°λ¨κ΅¬',
- datetime: '2024-01-20 14:00',
- isLiked: false,
- current: 3,
- max: 8,
- isPast: false,
- isCanceled: false,
- meetingType: 'FIXED',
- status: 'pending',
- onLikeClick: () => {
- console.log('μ’μμ ν΄λ¦');
- },
- onClick: () => {
- console.log('μΉ΄λ ν΄λ¦');
- },
- onDelete: () => {
- console.log('μμ ν΄λ¦');
- },
-};
+ const cardData = [
+ {
+ id: 1,
+ imageUrl: '/images/profile.png',
+ imageAlt: 'λͺ¨μ μ΄λ―Έμ§',
+ title: 'λ
μ λͺ¨μ 1',
+ location: 'μμΈ κ°λ¨κ΅¬',
+ datetime: '2024-01-20 14:00',
+ isLiked: false,
+ current: 3,
+ max: 8,
+ isPast: false,
+ isCanceled: false,
+ // meetingType: 'FIXED', // μ νν 리ν°λ΄ κ° μ€μ
+ // status: 'pending',
+ },
+ {
+ id: 2,
+ imageUrl: '/images/profile.png',
+ imageAlt: 'λͺ¨μ μ΄λ―Έμ§',
+ title: 'λ
μ λͺ¨μ 1',
+ location: 'μμΈ κ°λ¨κ΅¬',
+ datetime: '2024-01-20 14:00',
+ isLiked: false,
+ current: 3,
+ max: 8,
+ isPast: false,
+ isCanceled: false,
+ // meetingType: 'FIXED', // μ νν 리ν°λ΄ κ° μ€μ
+ // status: 'pending',
+ },
+ {
+ id: 3,
+ imageUrl: '/images/profile.png',
+ imageAlt: 'λͺ¨μ μ΄λ―Έμ§',
+ title: 'λ
μ λͺ¨μ 1',
+ location: 'μμΈ κ°λ¨κ΅¬',
+ datetime: '2024-01-20 14:00',
+ isLiked: false,
+ current: 3,
+ max: 8,
+ isPast: false,
+ isCanceled: false,
+ // meetingType: 'FIXED', // μ νν 리ν°λ΄ κ° μ€μ
+ // status: 'pending',
+ },
+ {
+ id: 4,
+ imageUrl: '/images/profile.png',
+ imageAlt: 'λͺ¨μ μ΄λ―Έμ§',
+ title: 'λ
μ λͺ¨μ 1',
+ location: 'μμΈ κ°λ¨κ΅¬',
+ datetime: '2024-01-20 14:00',
+ isLiked: false,
+ current: 3,
+ max: 8,
+ isPast: false,
+ isCanceled: false,
+ // meetingType: 'FIXED', // μ νν 리ν°λ΄ κ° μ€μ
+ // status: 'pending',
+ },
+ ];
-function ClubListSection() {
return (
-
-
-
-
+ {cardData.map((card, index) => (
+
+ router.push(`/bookclub/${card.id}`)}
+ onLikeClick={() => console.log('μ’μμ ν΄λ¦')}
+ onDelete={() => console.log('μμ ν΄λ¦')}
+ />
+
+ ))}
);
}
diff --git a/src/features/bookclub/components/HeaderSection.tsx b/src/features/bookclub/components/HeaderSection.tsx
index 851afd19..51bc1f1a 100644
--- a/src/features/bookclub/components/HeaderSection.tsx
+++ b/src/features/bookclub/components/HeaderSection.tsx
@@ -1,6 +1,11 @@
+'use client';
+
import Button from '@/components/button/Button';
+import { useRouter } from 'next/navigation';
function HeaderSection() {
+ const router = useRouter();
+
return (
router.push('/bookclub/create')}
/>
);
From 19fbc19cf6b3ad92c245e5ff5178b306b0dfe211 Mon Sep 17 00:00:00 2001
From: sun <104830526+sunnwave@users.noreply.github.com>
Date: Mon, 16 Dec 2024 13:25:46 +0900
Subject: [PATCH 4/6] =?UTF-8?q?=F0=9F=92=84[Design]=20=ED=94=84=EB=A1=9C?=
=?UTF-8?q?=ED=95=84=20=ED=8E=98=EC=9D=B4=EC=A7=80=20-=20=EB=82=98?=
=?UTF-8?q?=EC=9D=98=20=EB=AA=A8=EC=9E=84=20UI=20=EA=B5=AC=ED=98=84=20#165?=
=?UTF-8?q?=20(#178)=20(#182)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* π[Design] νλ‘ν νμ΄μ§ - λμ λͺ¨μ UI ꡬν #165 (#178)
* π[Design] νλ‘νννμ΄μ§ λ μ΄μμ μ€μ #119
* π[Design] νλ‘ν νμ΄μ§ λ μ΄μμ ꡬν #119
* π[Design] νλ‘ννμ΄μ§ νλ‘ν μ»΄ν¬λνΈ UI ꡬν #153
* π[Design] text μ€νμΌ μμ #153
* β¨[Feat] WrittenReviewλ₯Ό νμ©ν ClubReview μ»΄ν¬λνΈ μμ± #154 (#156)
* π[Design] nav, κ³΅ν΅ λ μ΄μμ μμ #154
* β¨[Feat] ClubReview μ»΄ν¬λνΈ μμ± #154
* β
[Test] WrittenReview μ€ν λ¦¬λΆ μμ #154
* β»οΈ [Refactor] Card 리ν©ν λ§ (#151)
* β¨[Feat] box, title, location, datetime μΆκ°
* β¨[Feat] μ€λ²λ μ΄ λ° μ€ν λ¦¬λΆ μΆκ°
* π[Rename] μ€ν λ¦¬λΆ μ½λ μ΄μ
* β¨[Feat] μμ λν΄νΈ μΉ΄λ λ° μ€ν λ¦¬λΆ μ μ©
* β¨[Feat] λν΄νΈ μΉ΄λ λ μ΄μμ ꡬν
* β»οΈ[Refactor] clubchip variantμΆκ°
* β¨[Feat] μΉ© μμ
* π[Design λ μ΄μμ μΌλΆ λ³κ²½λ° μ€ν λ¦¬λΆ μμ
* β¨[Feat] μ±
λͺ¨μ, μ°νκΈ° μΉ΄λ ꡬν μλ£
* π₯[Remove] λΆνμ νμΌ μ κ±°
* β»οΈ[Refactor] μ€λ²λ μ΄ λ²νΌ μ»΄ν¬λνΈλ‘ λ체
* β¨[Feat] λ΄κ° λ§λ λͺ¨μ μΉ΄λ ꡬν
* β¨[Feat] λμ λͺ¨μ μΉ΄λ ꡬν
* β»οΈ[Refactor] λ΄κ° λ§λ λͺ¨μ μ°, λΈλ¬ κΈ°λ₯ μ κ±°
* β»οΈ[Refactor] μΈν°νμ΄μ€ 곡ν΅ν λ° μ£Όμ μ²λ¦¬
* β»οΈ[Refactor] μ€ν λ¦¬λΆ μμ
* β¨[Feat] μμΈ μΉ΄λ μμ λ μ΄μμ ꡬν λ° μ€ν λ¦¬λΆ μ μ©
* π[Design] μμΈ μΉ΄λ μ΄λ―Έμ§ λ μ΄μμ μμ
* β¨[Feat] μμΈ μΉ΄λ ꡬν μλ£
* π[Rename] μ€ν λ¦¬λΆ λ³κ²½
* π[Rename] λΆνμ μ½λ μ κ±° λ° μ΄λ
* π¬[Comment] μ£Όμ μ²λ¦¬
* button μ€λ³΅ μ½λ μ κ±°
* π[Docs] μμ μ£Όμ μ²λ¦¬
* β»οΈ[Refactor] ProfilePage μ»΄ν¬λνΈ νλ κ·Έλ¨ΌνΈ μ κ±° #153
* β¨[Feat] useAuthStore ν
μ¬μ©νμ¬ λ‘κ·ΈμΈν μ¬μ©μ μ 보 λ°κΈ° μΆκ° #153
* β
[Test] νλ‘ν μ»΄ν¬λνΈ νλ‘ν μμ νκΈ° λͺ¨λ¬ ν
μ€νΈμ½λ μμ± #153
* β
[Test] νλ‘ν μ»΄ν¬λνΈ μ€ν λ¦¬λΆ ν
μ€νΈμ½λ μ€λ₯ μμ #153
* β¨[Feat] νμκ°μ
κΈ°λ₯ ꡬν #91 (#163)
* π[Design] λͺ¨μ μμΈ νμ΄μ§ UI ꡬν #147 (#166)
* β¨[Feat] λͺ¨μ μμΈ νμ΄μ§ ꡬνμ μν ν΄λ λ° νμΌ μμ± #147
* β¨[Feat] λͺ¨μ μμΈνμ΄μ§ μΆκ° #147
* π[Design] μ»΄ν¬λνΈ λΆλ¦¬ λ° DescriptionSection UI μμ± #147
* β»οΈ[Refactor] ReviewSummarySection 리뷰 μ μ mapμΌλ‘ ꡬν #147
* π[Design] DropDown μ΅μ μ λ²νΌ border μ κ±° #147
* π[Design] 리뷰 λͺ©λ‘ UI μμ± #147
* π[Fix] ν΄λΌμΈμΈνΈ μ»΄ν¬λνΈ νμ #147
* β»οΈ[Refactor] ClubReview μ»΄ν¬λνΈ μ¬μ© #147
* π[Fix] μ΄λ―Έμ§ κ²½λ‘ /images/profile.pngλ‘ μμ #147
* π[Design] ReviewSummarySection λ°μν μμ #147
* π[Design] variant: 'detailedClub' - cursor-default μΆκ° #147
* β¨[Feat] Card μ»΄ν¬λνΈ μ μ© #147
* π[Docs] mockReview μμ #147
* π[Design] νλ‘ν νμ΄μ§ λμ λͺ¨μ UI ꡬν #165
* [Merge] λ°°ν¬ ν
μ€νΈλ₯Ό μν λ³ν© - λͺ¨μλ©μΈνμ΄μ§ merge to develop (#169)
* π[Rename] μ»΄ν¬λνΈ λ€μ΄λ° μμ #158
* β¨[Feat] UI μ»΄ν¬λνΈμκ² κ°μ Έμ¨ λ°μ΄ν°λ₯Ό μ λ¬νκΈ° μν λ‘μ§ μμ±μ€ #158
* β»οΈ[Refactor] ν μ»΄ν¬λνΈ λΆλ¦¬ #158
* β¨[Feat] API νΈμΆ λ‘μ§ μμ±μ€ #158
* β»οΈ[Refactor] μμ λ Card μ»΄ν¬λνΈ μ¬μ© #158
* π[Design] λλ‘λ€μ΄ λμμΈ μμ μ€ #158
* β¨[Feat] feature page profile νλ‘ν μ»΄ν¬λνΈ κ΅¬ν #153 (#164)
* π[Design] νλ‘νννμ΄μ§ λ μ΄μμ μ€μ #119
* π[Design] νλ‘ν νμ΄μ§ λ μ΄μμ ꡬν #119
* π[Design] νλ‘ννμ΄μ§ νλ‘ν μ»΄ν¬λνΈ UI ꡬν #153
* π[Design] text μ€νμΌ μμ #153
* β»οΈ[Refactor] ProfilePage μ»΄ν¬λνΈ νλ κ·Έλ¨ΌνΈ μ κ±° #153
* β¨[Feat] useAuthStore ν
μ¬μ©νμ¬ λ‘κ·ΈμΈν μ¬μ©μ μ 보 λ°κΈ° μΆκ° #153
* β
[Test] νλ‘ν μ»΄ν¬λνΈ νλ‘ν μμ νκΈ° λͺ¨λ¬ ν
μ€νΈμ½λ μμ± #153
* β
[Test] νλ‘ν μ»΄ν¬λνΈ μ€ν λ¦¬λΆ ν
μ€νΈμ½λ μ€λ₯ μμ #153
* β
[Test] ν
μ€νΈ λ³μλͺ
λ³κ²½ #153
* β
[Test] μ€ν λ¦¬λΆ ν
μ€νΈμ½λ λ³μλͺ
λ³κ²½ #153
* β¨ [Feature] λͺ¨μ λ§λ€κΈ° νμ΄μ§ ꡬν (#171)
* β¨ [Feature] λͺ¨μ λ§λ€κΈ° νμ΄μ§ UI (#122)
* π[Design] μ 체 λ μ΄μμ νμ±
* β¨[Feat] λΌλ²¨ λ° μ리λ©νΈ μμ μ»΄ν¬λνΈν
* π[Rename] μ»΄ν¬λνΈ μ΄λ¦ λ³κ²½
* β¨[Feat] maxLength μ€μ
* π[Design] λ μ΄μμ λν
μΌ μμ
* π[Design] λ²νΌ λ° μ΄λ―Έμ§ input μμ
* π[Design] border μ μμ
* β¨[Feat] λΌλμ€ λ²νΌ μμ μ»΄ν¬λνΈν
* β¨[Feat] inputμμλ€ μ»΄ν¬λνΈν
* π[Rename] μ€ν€λ§ νμΌ λΆλ¦¬
* β¨[Feat] inputFiledλ‘ κ³΅ν΅ν
* β»οΈ[Refactor] μ»΄ν¬λνΈ μ»¨λ²€μ
λλ‘ λ³κ²½
* π[Design] λ£¨νΈ λ μ΄μμ μμ
* β¨[Feat] 115 feature λͺ¨μ λ§λ€κΈ° νμ΄μ§ UI api μ°λ (#167)
* β¨ [Feat] λͺ¨μ λ§λ€κΈ° react-date-picker μ μ© (#139)
* π¦[Chore] React-datepicker μ€μΉ
* β¨[Feat] datepicker ν¬ν¨ νΌ λ°μ΄ν° μ μ‘ ν
μ€νΈ
* β¨[Feat] νΌλ°μ΄ν° μ΄λ―Έμ§, λΆν΄λ½ λΆλ¦¬
* β¨[Feat] μ€ν€λ§ κ° λ°±μλ λ°μ΄ν°λλ‘ μμ
* β¨[Feat] νκ΅ μκ°μΌλ‘ λ μ§ λ°μ΄ν° λ³ν
* β¨[Feat] ν
λΆλ¦¬
* β¨[Feat] λ μ§ Ui ν¬λ§· λ³κ²½
* β¨[Feat] datepicker μ»΄ν¬λνΈ λΆλ¦¬
* β¨[Feat] μ£Όμ api μ μ© ν
μ€νΈ
* β¨[Feat] μ€νλΌμΈ ν΄λ¦μ μꡰꡬ, λ μ 보 μ μ₯
* β¨[Feat] μ€ν€λ§ μλ¬ λ©μμ§ μΆκ° λ° μ£Όμ ν
λΆλ¦¬
* π¬[Comment] μ£Όμ μ κ±°
* β¨[Feat] μμ± api ν
μ€νΈ
* β¨[Feat] νΌ μ μΆ ν
λΆλ¦¬
* π[Rename] νΌ μ»¨ν
μ΄λ λΆλ¦¬
* π[Rename] νμ΄μ§ λ΄λΆ 컨ν
μ΄λ λΆλ¦¬
* π[Rename] μ΄λ―Έμ§ νλ λΆλ¦¬
* π[Rename] νΌμ μΆ ν
λΆλ¦¬
* π[Rename] ν
& 컨ν
μ΄λ μ΅μ’
λΆλ¦¬
* π[Rename] api μ½λ λΆλ¦¬
* β¨ [Feature] λͺ¨μ λ§λ€κΈ° νμ΄μ§ λν
μΌ μμ (#170)
* β¨ [Feat] λͺ¨μ λ§λ€κΈ° react-date-picker μ μ© (#139)
* π¦[Chore] React-datepicker μ€μΉ
* β¨[Feat] datepicker ν¬ν¨ νΌ λ°μ΄ν° μ μ‘ ν
μ€νΈ
* β¨[Feat] νΌλ°μ΄ν° μ΄λ―Έμ§, λΆν΄λ½ λΆλ¦¬
* β¨[Feat] μ€ν€λ§ κ° λ°±μλ λ°μ΄ν°λλ‘ μμ
* β¨[Feat] νκ΅ μκ°μΌλ‘ λ μ§ λ°μ΄ν° λ³ν
* β¨[Feat] ν
λΆλ¦¬
* β¨[Feat] λ μ§ Ui ν¬λ§· λ³κ²½
* β¨[Feat] datepicker μ»΄ν¬λνΈ λΆλ¦¬
* β¨[Feat] μ£Όμ api μ μ© ν
μ€νΈ
* β¨[Feat] μ€νλΌμΈ ν΄λ¦μ μꡰꡬ, λ μ 보 μ μ₯
* β¨[Feat] μ€ν€λ§ μλ¬ λ©μμ§ μΆκ° λ° μ£Όμ ν
λΆλ¦¬
* π¬[Comment] μ£Όμ μ κ±°
* β¨[Feat] μμ± api ν
μ€νΈ
* β¨[Feat] νΌ μ μΆ ν
λΆλ¦¬
* π[Rename] νΌ μ»¨ν
μ΄λ λΆλ¦¬
* π[Rename] νμ΄μ§ λ΄λΆ 컨ν
μ΄λ λΆλ¦¬
* π[Rename] μ΄λ―Έμ§ νλ λΆλ¦¬
* π[Rename] νΌμ μΆ ν
λΆλ¦¬
* π[Rename] ν
& 컨ν
μ΄λ μ΅μ’
λΆλ¦¬
* π[Rename] api μ½λ λΆλ¦¬
* β¨[Feat] μ΄λ―Έμ§ νμ₯μ λ° μ¬μ΄μ¦ κ²μ¬
* π[Design] μ 체 λ μ΄μμ μμ
* π[Design] λΌλμ€ λ²νΌ λμμΈ λ³κ²½
* π[Design] νλ‘ννμ΄μ§ λμ λͺ¨μν UI ꡬν #165
* β¨[Feat] μΉ΄λμ»΄ν¬λνΈ ν΄λ¦ μ΄λ²€νΈ μΆκ°(λͺ¨μ μμΈνμ΄μ§λ‘ λΌμ°ν
) #165
* β¨[Feat] 리뷰 μμ±λ²νΌ ν΄λ¦ μ 리뷰 μμ±νκΈ° λͺ¨λ¬ νμ #165
* π¬[Comment] TODO μ£Όμ μΆκ° λ° λ³κ²½ #165
* π[Rename] ν΄λ λ° νμΌ μ 리
* β
[Test] μΉ΄λ μ»΄ν¬λνΈ props λ³κ²½μ λ°λ₯Έ μ€ν λ¦¬λΆ ν
μ€νΈμ½λ μ€λ₯ μ½λ μμ #165
* π[Fix] ClubCard prop λ³κ²½μΌλ‘ μΈν μ€λ₯ μμ
* β
[Test] μΉ΄λ μ»΄ν¬λνΈ prop λ³κ²½μΌλ‘ μΈν μ€λ₯ μμ
* π[Design] μΉ΄λ μ»΄ν¬λνΈ λͺ¨λ°μΌ μ¬μ΄μ¦ λ μ΄μμ μ€λ₯ μμ #165
---------
Co-authored-by: Minkyung Kim <97824352+wynter24@users.noreply.github.com>
Co-authored-by: cloud0406 <32586926+cloud0406@users.noreply.github.com>
Co-authored-by: Sungu Kim <108677235+haegu97@users.noreply.github.com>
* β»οΈ [Refactor] Card 리ν©ν λ§ (#151)
* β¨[Feat] box, title, location, datetime μΆκ°
* β¨[Feat] μ€λ²λ μ΄ λ° μ€ν λ¦¬λΆ μΆκ°
* π[Rename] μ€ν λ¦¬λΆ μ½λ μ΄μ
* β¨[Feat] μμ λν΄νΈ μΉ΄λ λ° μ€ν λ¦¬λΆ μ μ©
* β¨[Feat] λν΄νΈ μΉ΄λ λ μ΄μμ ꡬν
* β»οΈ[Refactor] clubchip variantμΆκ°
* β¨[Feat] μΉ© μμ
* π[Design λ μ΄μμ μΌλΆ λ³κ²½λ° μ€ν λ¦¬λΆ μμ
* β¨[Feat] μ±
λͺ¨μ, μ°νκΈ° μΉ΄λ ꡬν μλ£
* π₯[Remove] λΆνμ νμΌ μ κ±°
* β»οΈ[Refactor] μ€λ²λ μ΄ λ²νΌ μ»΄ν¬λνΈλ‘ λ체
* β¨[Feat] λ΄κ° λ§λ λͺ¨μ μΉ΄λ ꡬν
* β¨[Feat] λμ λͺ¨μ μΉ΄λ ꡬν
* β»οΈ[Refactor] λ΄κ° λ§λ λͺ¨μ μ°, λΈλ¬ κΈ°λ₯ μ κ±°
* β»οΈ[Refactor] μΈν°νμ΄μ€ 곡ν΅ν λ° μ£Όμ μ²λ¦¬
* β»οΈ[Refactor] μ€ν λ¦¬λΆ μμ
* β¨[Feat] μμΈ μΉ΄λ μμ λ μ΄μμ ꡬν λ° μ€ν λ¦¬λΆ μ μ©
* π[Design] μμΈ μΉ΄λ μ΄λ―Έμ§ λ μ΄μμ μμ
* β¨[Feat] μμΈ μΉ΄λ ꡬν μλ£
* π[Rename] μ€ν λ¦¬λΆ λ³κ²½
* π[Rename] λΆνμ μ½λ μ κ±° λ° μ΄λ
* π¬[Comment] μ£Όμ μ²λ¦¬
* button μ€λ³΅ μ½λ μ κ±°
* π[Docs] μμ μ£Όμ μ²λ¦¬
* [Merge] λ°°ν¬ ν
μ€νΈλ₯Ό μν λ³ν© - λͺ¨μλ©μΈνμ΄μ§ merge to develop (#169)
* π[Rename] μ»΄ν¬λνΈ λ€μ΄λ° μμ #158
* β¨[Feat] UI μ»΄ν¬λνΈμκ² κ°μ Έμ¨ λ°μ΄ν°λ₯Ό μ λ¬νκΈ° μν λ‘μ§ μμ±μ€ #158
* β»οΈ[Refactor] ν μ»΄ν¬λνΈ λΆλ¦¬ #158
* β¨[Feat] API νΈμΆ λ‘μ§ μμ±μ€ #158
* β»οΈ[Refactor] μμ λ Card μ»΄ν¬λνΈ μ¬μ© #158
* π[Design] λλ‘λ€μ΄ λμμΈ μμ μ€ #158
* β¨[Feat] feature page profile νλ‘ν μ»΄ν¬λνΈ κ΅¬ν #153 (#164)
* π[Design] νλ‘νννμ΄μ§ λ μ΄μμ μ€μ #119
* π[Design] νλ‘ν νμ΄μ§ λ μ΄μμ ꡬν #119
* π[Design] νλ‘ννμ΄μ§ νλ‘ν μ»΄ν¬λνΈ UI ꡬν #153
* π[Design] text μ€νμΌ μμ #153
* β»οΈ[Refactor] ProfilePage μ»΄ν¬λνΈ νλ κ·Έλ¨ΌνΈ μ κ±° #153
* β¨[Feat] useAuthStore ν
μ¬μ©νμ¬ λ‘κ·ΈμΈν μ¬μ©μ μ 보 λ°κΈ° μΆκ° #153
* β
[Test] νλ‘ν μ»΄ν¬λνΈ νλ‘ν μμ νκΈ° λͺ¨λ¬ ν
μ€νΈμ½λ μμ± #153
* β
[Test] νλ‘ν μ»΄ν¬λνΈ μ€ν λ¦¬λΆ ν
μ€νΈμ½λ μ€λ₯ μμ #153
* β
[Test] ν
μ€νΈ λ³μλͺ
λ³κ²½ #153
* β
[Test] μ€ν λ¦¬λΆ ν
μ€νΈμ½λ λ³μλͺ
λ³κ²½ #153
* π[Design] λ°μν λμμΈ μμ #173 (#174)
* π[Design] λ°μν λμμΈ μμ #173
* π[Design] λ°μν μλ¬ μΆκ° μμ #173
* β»οΈ [Refactor] checkLoginStatusλ₯Ό λ‘κ·ΈμΈ νμ΄μ§μμ νμΈ #176 (#177)
* β¨[Feat] λͺ¨μ λ©μ΄νμ΄μ§ μ΄λ λ‘μ§ μΆκ° #180 (#181)
* β¨[Feat] μμΈνμ΄μ§ μ΄λ λ‘μ§ μΆκ° #180
* β¨[Feat] λͺ¨μ μμ± νμ΄μ§ μ΄λ λ‘μ§ μΆκ° #180
* π[Design] λͺ¨λ°μΌ μΉ΄λ κ°μ΄λ° μ λ ¬ #180
* π[Design] νμ
μ°½ css ꡬν μλ£
β
[Test] νμ
μ°½ μ€ν λ¦¬λΆ ν
μ€νΈ μ½λ ꡬν μλ£ #10
* ν΄λ½ λͺ©λ‘ μ‘°ν props μμ
---------
Co-authored-by: Minkyung Kim <97824352+wynter24@users.noreply.github.com>
Co-authored-by: cloud0406 <32586926+cloud0406@users.noreply.github.com>
Co-authored-by: Sungu Kim <108677235+haegu97@users.noreply.github.com>
---
package-lock.json | 1 -
src/app/profile/page.tsx | 2 +-
src/components/card/Card.tsx | 75 +++--
src/components/card/ClubCard.stories.tsx | 10 +-
src/components/card/types/clubCard.ts | 16 +-
src/components/pop-up-button/PopUpButton.tsx | 23 ++
.../bookclub/components/ClubListSection.tsx | 151 +++++-----
.../club-details/components/HeaderSection.tsx | 6 +-
.../components/clubs/HostedClubsList.tsx | 11 +-
.../components/clubs/JoinedClubList.tsx | 258 +++++++++++++++++-
.../profile/components/clubs/MyReviewList.tsx | 11 +-
.../{ => clubs}/WriteReviewModal.tsx | 2 +-
.../profile/components/clubs/index.ts | 4 +
.../components/exchange/ExchangeContents.tsx | 6 +-
.../profile/components/exchange/index.ts | 4 +
.../components/profile/Profile.stories.tsx | 2 +-
.../components/profile/Profile.test.tsx | 2 +-
.../profile/components/profile/Profile.tsx | 6 +-
.../{ => profile}/ProfileEditModal.tsx | 2 +-
.../profile/components/profile/index.ts | 2 +
.../clubs => container}/ClubContents.tsx | 17 +-
.../{components => container}/MainContent.tsx | 11 +-
.../profile/container/ProfileHeader.tsx | 14 +
.../{components => container}/ProfilePage.tsx | 7 +-
src/features/profile/container/index.ts | 5 +-
src/features/profile/types/index.ts | 32 ++-
src/features/profile/types/user.ts | 20 +-
27 files changed, 545 insertions(+), 155 deletions(-)
create mode 100644 src/components/pop-up-button/PopUpButton.tsx
rename src/features/profile/components/{ => clubs}/WriteReviewModal.tsx (97%)
create mode 100644 src/features/profile/components/clubs/index.ts
create mode 100644 src/features/profile/components/exchange/index.ts
rename src/features/profile/components/{ => profile}/ProfileEditModal.tsx (98%)
create mode 100644 src/features/profile/components/profile/index.ts
rename src/features/profile/{components/clubs => container}/ClubContents.tsx (76%)
rename src/features/profile/{components => container}/MainContent.tsx (68%)
create mode 100644 src/features/profile/container/ProfileHeader.tsx
rename src/features/profile/{components => container}/ProfilePage.tsx (56%)
diff --git a/package-lock.json b/package-lock.json
index ebe27e49..36ce19e7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,4 +1,3 @@
-
{
"name": "codeit3-fe",
"version": "0.1.0",
diff --git a/src/app/profile/page.tsx b/src/app/profile/page.tsx
index 673f3881..de681fd0 100644
--- a/src/app/profile/page.tsx
+++ b/src/app/profile/page.tsx
@@ -1,4 +1,4 @@
-import ProfilePage from '@/features/profile/components/ProfilePage';
+import ProfilePage from '@/features/profile/container/ProfilePage';
import React from 'react';
const Profile = () => {
diff --git a/src/components/card/Card.tsx b/src/components/card/Card.tsx
index 2f8308d1..05e28876 100644
--- a/src/components/card/Card.tsx
+++ b/src/components/card/Card.tsx
@@ -200,6 +200,7 @@ function Card(props: CardProps) {
case 'defaultClub':
default: {
const {
+ clubId,
imageUrl,
imageAlt,
title,
@@ -211,10 +212,11 @@ function Card(props: CardProps) {
max,
isPast,
isCanceled,
- meetingType,
+ // meetingType,
+ bookClubType,
onClick,
onDelete,
- status,
+ clubStatus,
} = props as DefaultClubCard & { variant: 'defaultClub' };
return (
@@ -227,11 +229,14 @@ function Card(props: CardProps) {
onLikeClick={onLikeClick}
/>
-
+ onClick(clubId)}
+ className="justify-between"
+ >
{title}
-
+
{location}
@@ -246,7 +251,7 @@ function Card(props: CardProps) {
max={max}
isPast={isPast}
/>
-
+
- {isCanceled && }
+ {isCanceled && onDelete()} />}
);
}
case 'participatedClub': {
const {
+ clubId,
imageUrl,
imageAlt,
- isLiked,
- onLikeClick,
+ // isLiked,
+ // onLikeClick,
isCanceled,
onClick,
onDelete,
- status,
- meetingType,
+ clubStatus,
+ // meetingType,
+ bookClubType,
title,
location,
datetime,
@@ -283,17 +290,20 @@ function Card(props: CardProps) {