Skip to content

Commit cb4051b

Browse files
authored
Merge pull request #246 from code-zero-to-one/fix/jira-issue
[Fix] 지라 이슈 해결
2 parents a0c0247 + 8df539a commit cb4051b

21 files changed

Lines changed: 572 additions & 317 deletions

.vscode/launch.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"name": "Next.js: debug server-side",
6+
"type": "node-terminal",
7+
"request": "launch",
8+
"command": "npm run dev -- --inspect"
9+
},
10+
{
11+
"name": "Next.js: attach client (safe login)",
12+
"type": "pwa-chrome",
13+
"request": "attach",
14+
"port": 9222,
15+
"url": "http://localhost:3000",
16+
"webRoot": "${workspaceFolder}"
17+
},
18+
{
19+
"name": "Next.js: debug full stack",
20+
"type": "node",
21+
"request": "launch",
22+
"program": "${workspaceFolder}/node_modules/next/dist/bin/next",
23+
"runtimeArgs": ["--inspect"],
24+
"skipFiles": ["<node_internals>/**"],
25+
"serverReadyAction": {
26+
"action": "debugWithEdge",
27+
"killOnServerStop": true,
28+
"pattern": "- Local:.+(https?://.+)",
29+
"uriFormat": "%s",
30+
"webRoot": "${workspaceFolder}"
31+
}
32+
}
33+
]
34+
}

app/(service)/(my)/my-study/completed/page.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
'use client';
22

33
import { Plus } from 'lucide-react';
4-
import React, { useState } from 'react';
4+
import { useState } from 'react';
55
import { MemberStudyItem } from '@/features/study/group/api/group-study-types';
66
import { useMemberStudyListQuery } from '@/features/study/group/model/use-member-study-list-query';
77
import CompletedGroupStudyList from '@/features/study/group/ui/completed-group-study-list';
8-
import OpenGroupStudyModal from '@/features/study/group/ui/open-group-modal';
8+
import GroupStudyFormModal from '@/features/study/group/ui/group-study-form-modal';
99
import Button from '@/shared/ui/button';
1010
import Pagination from '@/shared/ui/pagination';
1111

@@ -35,7 +35,8 @@ export default function CompletedPage() {
3535
<div className="flex flex-col gap-300">
3636
<div className="flex flex-row items-center justify-between">
3737
<h1 className="font-designer-20b">마이스터디</h1>
38-
<OpenGroupStudyModal
38+
<GroupStudyFormModal
39+
mode="create"
3940
trigger={
4041
<Button icon={<Plus className="text-text-inverse" />} size="medium">
4142
스터디 개설하기

app/(service)/(my)/my-study/not-completed/page.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ import { Plus } from 'lucide-react';
44
import React, { useState } from 'react';
55
import { MemberStudyItem } from '@/features/study/group/api/group-study-types';
66
import { useMemberStudyListQuery } from '@/features/study/group/model/use-member-study-list-query';
7+
import OpenGroupStudyModal from '@/features/study/group/ui/group-study-form-modal';
8+
import GroupStudyFormModal from '@/features/study/group/ui/group-study-form-modal';
79
import NotCompletedGroupStudyList from '@/features/study/group/ui/not-completed-group-study-list';
8-
import OpenGroupStudyModal from '@/features/study/group/ui/open-group-modal';
910
import Button from '@/shared/ui/button';
1011
import Pagination from '@/shared/ui/pagination';
1112

@@ -35,7 +36,8 @@ export default function NotCompletedPage() {
3536
<div className="flex flex-col gap-300">
3637
<div className="flex flex-row items-center justify-between">
3738
<h1 className="font-designer-20b">마이스터디</h1>
38-
<OpenGroupStudyModal
39+
<GroupStudyFormModal
40+
mode="create"
3941
trigger={
4042
<Button icon={<Plus className="text-text-inverse" />} size="medium">
4143
스터디 개설하기

app/(service)/(my)/my-study/page.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33
import { Plus } from 'lucide-react';
44
import Link from 'next/link';
5-
import React from 'react';
65
import { MemberStudyItem } from '@/features/study/group/api/group-study-types';
76
import { useMemberStudyListQuery } from '@/features/study/group/model/use-member-study-list-query';
87
import CompletedGroupStudyList from '@/features/study/group/ui/completed-group-study-list';
8+
import GroupStudyFormModal from '@/features/study/group/ui/group-study-form-modal';
99
import NotCompletedGroupStudyList from '@/features/study/group/ui/not-completed-group-study-list';
10-
import OpenGroupStudyModal from '@/features/study/group/ui/open-group-modal';
1110
import { getCookie } from '@/shared/tanstack-query/cookie';
1211
import Button from '@/shared/ui/button';
1312

@@ -40,7 +39,8 @@ export default function MyStudy() {
4039
<div className="flex flex-col gap-300">
4140
<div className="flex flex-row items-center justify-between">
4241
<h1 className="font-designer-20b">마이스터디</h1>
43-
<OpenGroupStudyModal
42+
<GroupStudyFormModal
43+
mode="create"
4444
trigger={
4545
<Button icon={<Plus className="text-text-inverse" />} size="medium">
4646
스터디 개설하기

app/(service)/(nav)/study/[id]/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ export default async function Page({
4848
<StudyDetailPage
4949
memberId={memberId}
5050
groupStudyId={Number(id)}
51-
studyDetail={data}
52-
leader={data.basicInfo.leader}
51+
// studyDetail={data}
52+
// leader={data.basicInfo.leader}
5353
/>
5454
</HydrationBoundary>
5555
);

app/(service)/(nav)/study/page.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
import GroupStudyFormModal from '@/features/study/group/ui/group-study-form-modal';
2+
13
import GroupStudyList from '@/features/study/group/ui/group-study-list';
2-
import OpenGroupStudyModal from '@/features/study/group/ui/open-group-modal';
34
import IconPlus from '@/shared/icons/plus.svg';
45
import { getServerCookie } from '@/shared/lib/server-cookie';
56
import Button from '@/shared/ui/button';
@@ -16,7 +17,8 @@ export default async function Study() {
1617
<span className="font-designer-28b text-[#181D27]">
1718
스터디 둘러보기
1819
</span>
19-
<OpenGroupStudyModal
20+
<GroupStudyFormModal
21+
mode="create"
2022
trigger={
2123
<Button
2224
color="primary"
Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
import { axiosInstance } from '@/shared/tanstack-query/axios';
2-
import { OpenGroupStudyRequest } from './group-study-types';
2+
import { GroupStudyFormRequest } from './group-study-types';
33

44
// CS 스터디 매칭 신청
5-
export const createGroupStudy = async (payload: OpenGroupStudyRequest) => {
6-
const res = await axiosInstance.post('/group-studies', payload);
5+
export const createGroupStudy = async (payload: GroupStudyFormRequest) => {
6+
try {
7+
const res = await axiosInstance.post('/group-studies', payload);
78

8-
return res.data;
9+
return res.data;
10+
} catch (error) {
11+
console.error('그룹 스터디 생성 실패:', error);
12+
throw error;
13+
}
914
};

src/features/study/group/api/group-study-types.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,9 @@ export interface Timestamps {
132132
}
133133

134134
/** 상세 화면용 DetailInfo (기존 DetailInfo 확장) */
135-
export interface DetailInfoDetail extends DetailInfo, Timestamps {
135+
export interface DetailInfoDetail extends SimpleDetailInfo, Timestamps {
136136
/** 서버가 내려주는 원본/대표 이미지 경로 (없을 수 있음) */
137+
description: string;
137138
image: {
138139
imageId: number;
139140
resizedImages: ResizedImage[];
@@ -156,7 +157,7 @@ export interface ApplyGroupStudyResponse {
156157
createdAt: string;
157158
}
158159

159-
export interface OpenGroupStudyRequest {
160+
export interface GroupStudyFormRequest {
160161
basicInfo: BasicInfo;
161162
detailInfo: DetailInfo;
162163
interviewPost: {
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { axiosInstance } from '@/shared/tanstack-query/axios';
2+
import { GroupStudyFormRequest } from './group-study-types';
3+
4+
// CS 스터디 매칭 신청
5+
export const updateGroupStudy = async (
6+
groupStudyId: number,
7+
payload: GroupStudyFormRequest,
8+
) => {
9+
try {
10+
const res = await axiosInstance.put(
11+
`/group-studies/${groupStudyId}`,
12+
payload,
13+
);
14+
15+
return res.data;
16+
} catch (error) {
17+
console.error('그룹 스터디 수정 실패:', error);
18+
throw error;
19+
}
20+
};
Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11
import { useMutation } from '@tanstack/react-query';
22
import { createGroupStudy } from '../api/creat-group-study';
3-
import { OpenGroupStudyRequest } from '../api/group-study-types';
3+
import { GroupStudyFormRequest } from '../api/group-study-types';
4+
import { updateGroupStudy } from '../api/update-group-study';
45

56
// 그룹 스터디 개설 mutation
67
export const useCreateGroupStudyMutation = () => {
78
return useMutation({
8-
mutationFn: (payload: OpenGroupStudyRequest) => createGroupStudy(payload),
9+
mutationFn: (payload: GroupStudyFormRequest) => createGroupStudy(payload),
10+
});
11+
};
12+
13+
// 그룹 스터디 수정 mutation
14+
export const useUpdateGroupStudyMutation = (groupStudyId: number) => {
15+
return useMutation({
16+
mutationFn: (payload: GroupStudyFormRequest) =>
17+
updateGroupStudy(groupStudyId, payload),
918
});
1019
};

0 commit comments

Comments
 (0)