Skip to content

Commit 7bb1194

Browse files
authored
Merge pull request #235 from manNomi/feature/mentor_page_api
feat : mentee 영역 페이지구현
2 parents 359637e + 434e878 commit 7bb1194

56 files changed

Lines changed: 656 additions & 402 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎src/api/article/client/useGetAriticleList.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { useEffect, useState } from "react";
22

33
import useFetch from "@/utils/apiUtils";
44

5-
import { ArticleResponse } from "../type/response";
5+
import { ArticleResponse } from "../types/response";
66

77
/* ---------- 타입 ---------- */
88

‎src/api/article/client/useGetArticleList.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { useEffect, useState } from "react";
22

33
import useFetch from "@/utils/apiUtils";
44

5-
import { ArticleResponse } from "../type/response";
5+
import { ArticleResponse } from "../types/response";
66

77
/* ---------- 타입 ---------- */
88

‎src/api/chats/clients/queryKey.ts‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export enum queryKey {
2+
chatRooms = "chatRooms",
3+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { axiosInstance } from "@/utils/axiosInstance";
2+
3+
import { queryKey } from "./queryKey";
4+
5+
import { ChatRoom } from "@/types/chats";
6+
7+
import { useQuery } from "@tanstack/react-query";
8+
9+
export interface ChatRoomListResponse {
10+
chatRooms: ChatRoom[];
11+
}
12+
13+
const getChatRooms = async () => {
14+
const res = await axiosInstance.get<ChatRoomListResponse>("/chats/rooms");
15+
return res.data;
16+
};
17+
const useGetChatRooms = () => {
18+
return useQuery({
19+
queryKey: [queryKey.chatRooms],
20+
queryFn: getChatRooms,
21+
staleTime: 1000 * 60 * 5, // 5분간 캐시
22+
select: (data) => data.chatRooms,
23+
});
24+
};
25+
export default useGetChatRooms;

‎src/api/mentee/client/queryKey.ts‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export enum queryKey {
2+
menteeMentoringList = "menteeMentoringList",
3+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import { axiosInstance } from "@/utils/axiosInstance";
2+
3+
import { queryKey } from "./queryKey";
4+
5+
import { MentoringListItem } from "@/types/mentee";
6+
import { VerifyStatus } from "@/types/mentee";
7+
8+
import { useQuery, useQueryClient } from "@tanstack/react-query";
9+
10+
interface UseGetMenteeMentoringListResponse {
11+
content: MentoringListItem[];
12+
nextPageNumber: number;
13+
}
14+
type UseGetMenteeMentoringListRequest = VerifyStatus;
15+
16+
const getMenteeMentoringList = async (
17+
verifyStatus: UseGetMenteeMentoringListRequest,
18+
): Promise<UseGetMenteeMentoringListResponse> => {
19+
const res = await axiosInstance.get<UseGetMenteeMentoringListResponse>(
20+
`/mentee/mentorings?verify-status=${verifyStatus}`,
21+
);
22+
return res.data;
23+
};
24+
25+
const useGetMenteeMentoringList = (verifyStatus: UseGetMenteeMentoringListRequest) => {
26+
return useQuery({
27+
queryKey: [queryKey.menteeMentoringList, verifyStatus],
28+
queryFn: () => getMenteeMentoringList(verifyStatus),
29+
staleTime: 1000 * 60 * 5, // 5분간 캐시
30+
select: (data) => data.content,
31+
});
32+
};
33+
34+
// 멘토링 리스트 프리페치용 훅
35+
export const usePrefetchMenteeMentoringList = () => {
36+
const queryClient = useQueryClient();
37+
38+
const prefetchMenteeMentoringList = (verifyStatus: UseGetMenteeMentoringListRequest) => {
39+
queryClient.prefetchQuery({
40+
queryKey: [queryKey.menteeMentoringList, verifyStatus],
41+
queryFn: () => getMenteeMentoringList(verifyStatus),
42+
staleTime: 1000 * 60 * 5,
43+
});
44+
};
45+
46+
return { prefetchMenteeMentoringList };
47+
};
48+
49+
export default useGetMenteeMentoringList;

‎src/api/mento.ts‎

Lines changed: 0 additions & 18 deletions
This file was deleted.

‎src/api/mentor/client/queryKey.ts‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export enum queryKey {
2+
mentoringNewCount = "mentoringNewCount",
3+
myMentorProfile = "myMentorProfile",
4+
}

‎src/api/mentor/client/useGetMentorDetailPage.ts‎

Lines changed: 0 additions & 31 deletions
This file was deleted.

0 commit comments

Comments
 (0)