Skip to content

Commit b38afe6

Browse files
committed
[refactor]리팩토링 커밋
1 parent 7dacb80 commit b38afe6

File tree

16 files changed

+260
-299
lines changed

16 files changed

+260
-299
lines changed

src/domains/mypage/components/DeleteAllModal.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ interface Props {
1212
}
1313

1414
function DeleteAllModal({ open, onClose, setIsModal, type }: Props) {
15-
const { toastSuccess } =useToast()
15+
const { toastSuccess } = useToast();
1616
const { deleteMyBar } = useFetchMyBar();
1717
const { deleteAlarm } = useFetchAlarm();
1818
const handleBarDelete = () => {
1919
deleteMyBar.mutate(undefined, {
2020
onSuccess: () => {
2121
toastSuccess('성공적으로 삭제 되었습니다.');
2222
setIsModal(false);
23-
}
23+
},
2424
});
2525
};
2626
const handleAlarmDelete = () => {

src/domains/mypage/components/pages/my-alarm/MyAlarm.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ interface MyAlarm {
2222
}
2323

2424
function MyAlarm() {
25-
const {toastInfo} =useToast()
25+
const { toastInfo } = useToast();
2626
const [isModal, setIsModal] = useState(false);
2727
const { fetchAlarm } = useFetchAlarm();
2828
const { data } = useQuery({
@@ -31,10 +31,10 @@ function MyAlarm() {
3131
});
3232

3333
const handleDelete = () => {
34-
if (data.items.length == 0) {
35-
toastInfo('아직 알림이 없습니다.');
36-
return;
37-
}
34+
if (data.items.length == 0) {
35+
toastInfo('아직 알림이 없습니다.');
36+
return;
37+
}
3838
setIsModal(!isModal);
3939
};
4040

src/domains/mypage/components/pages/my-bar/MyBar.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ interface MyCocktail {
2020
}
2121

2222
function MyBar() {
23-
const {toastInfo} =useToast()
23+
const { toastInfo } = useToast();
2424
const [isModal, setIsModal] = useState(false);
2525
const { fetchMyBar } = useFetchMyBar();
2626
const { data } = useQuery({
@@ -31,8 +31,8 @@ function MyBar() {
3131

3232
const handleDelete = () => {
3333
if (data.items.length == 0) {
34-
toastInfo('저장한 칵테일이 없습니다.')
35-
return
34+
toastInfo('저장한 칵테일이 없습니다.');
35+
return;
3636
}
3737
setIsModal(!isModal);
3838
};

src/domains/recipe/api/fetchRecipe.ts

Lines changed: 72 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
1-
import { getApi } from "@/app/api/config/appConfig";
2-
import { useAuthStore } from "@/domains/shared/store/auth";
3-
import { useInfiniteQuery, useQuery } from "@tanstack/react-query";
4-
import { Cocktail, Sort } from "../types/types";
5-
6-
1+
import { getApi } from '@/app/api/config/appConfig';
2+
import { useAuthStore } from '@/domains/shared/store/auth';
3+
import { useInfiniteQuery, useQuery } from '@tanstack/react-query';
4+
import { Cocktail, Sort } from '../types/types';
75

86
interface CocktailResponse {
9-
data: Cocktail[]
7+
data: Cocktail[];
108
}
119

12-
interface KeepResponse{
13-
data: Array<{cocktailId:number}>
10+
interface KeepResponse {
11+
data: Array<{ cocktailId: number }>;
1412
}
1513

1614
interface SearchFilters {
@@ -20,12 +18,10 @@ interface SearchFilters {
2018
alcoholBaseTypes: string[];
2119
}
2220

23-
24-
interface CocktailFilter extends SearchFilters{
25-
sortBy?:Sort
21+
interface CocktailFilter extends SearchFilters {
22+
sortBy?: Sort;
2623
}
2724

28-
2925
const fetchKeep = async (): Promise<Set<number>> => {
3026
const res = await fetch(`${getApi}/me/bar`, {
3127
method: 'GET',
@@ -39,39 +35,34 @@ const fetchKeep = async (): Promise<Set<number>> => {
3935
return new Set(myKeep.map((v: { cocktailId: number }) => v.cocktailId));
4036
};
4137

42-
43-
const fetchRecipe = async (
38+
const fetchRecipe = async (
4439
lastId: number | null,
4540
size: number,
4641
sortBy?: Sort
47-
): Promise<Cocktail[]> => {
48-
49-
const url = new URL(`${getApi}/cocktails`)
50-
url.searchParams.set('size',String(size))
51-
if (lastId !== null) {
52-
url.searchParams.set('lastId', String(lastId));
53-
url.searchParams.set('lastValue', String(lastId));
54-
}
55-
56-
if (sortBy) {
57-
url.searchParams.set('sortBy',String(sortBy))
58-
}
42+
): Promise<Cocktail[]> => {
43+
const url = new URL(`${getApi}/cocktails`);
44+
url.searchParams.set('size', String(size));
45+
if (lastId !== null) {
46+
url.searchParams.set('lastId', String(lastId));
47+
url.searchParams.set('lastValue', String(lastId));
48+
}
49+
50+
if (sortBy) {
51+
url.searchParams.set('sortBy', String(sortBy));
52+
}
5953

60-
const res = await fetch(url.toString(), {
61-
method:'GET'
62-
})
54+
const res = await fetch(url.toString(), {
55+
method: 'GET',
56+
});
6357

64-
if (!res.ok) throw new Error('레시피 패치 실패')
65-
66-
const json:CocktailResponse = await res.json()
58+
if (!res.ok) throw new Error('레시피 패치 실패');
6759

68-
return json.data ?? []
69-
}
60+
const json: CocktailResponse = await res.json();
7061

71-
62+
return json.data ?? [];
63+
};
7264

7365
const searchCocktails = async (filters: SearchFilters): Promise<Cocktail[]> => {
74-
7566
const body = {
7667
keyword: filters.keyword?.trim() ?? '',
7768
alcoholStrengths: filters.alcoholStrengths,
@@ -84,15 +75,14 @@ const searchCocktails = async (filters: SearchFilters): Promise<Cocktail[]> => {
8475
const res = await fetch(`${getApi}/cocktails/search`, {
8576
method: 'POST',
8677
headers: { 'Content-Type': 'application/json' },
87-
body:JSON.stringify(body)
88-
})
78+
body: JSON.stringify(body),
79+
});
8980

90-
if(!res.ok) throw new Error('검색 POST 실패')
81+
if (!res.ok) throw new Error('검색 POST 실패');
9182

92-
const json:CocktailResponse = await res.json()
93-
return json.data ?? []
94-
}
95-
83+
const json: CocktailResponse = await res.json();
84+
return json.data ?? [];
85+
};
9686

9787
const hasActiveFilters = (filters: SearchFilters): boolean => {
9888
return !!(
@@ -103,59 +93,58 @@ const hasActiveFilters = (filters: SearchFilters): boolean => {
10393
);
10494
};
10595

96+
export const useCocktailsInfiniteQuery = (size: number = 20, sortBy?: Sort) => {
97+
const user = useAuthStore((state) => state.user);
98+
return useInfiniteQuery({
99+
queryKey: ['cocktails', 'infinite', sortBy, size, user?.id],
100+
queryFn: async ({ pageParam }) => {
101+
const cocktails = await fetchRecipe(pageParam, size, sortBy);
106102

107-
export const useCocktailsInfiniteQuery = (
108-
size: number = 20,
109-
sortBy?: Sort
110-
) => {
111-
const user = useAuthStore((state) => state.user);
112-
return useInfiniteQuery({
113-
queryKey: ['cocktails', 'infinite', sortBy, size, user?.id],
114-
queryFn: async ({ pageParam }) => {
115-
const cocktails = await fetchRecipe(pageParam, size, sortBy);
116-
117-
if (user) {
118-
const keepId = await fetchKeep();
119-
return cocktails.map((item) => ({
120-
...item,
121-
isKeep: keepId.has(item.cocktailId),
122-
}));
123-
}
124-
125-
return cocktails;
126-
},
127-
getNextPageParam: (lastpage) => {
128-
if (lastpage.length < size) return undefined;
129-
return lastpage[lastpage.length - 1]?.cocktailId ?? undefined;
130-
},
131-
initialPageParam: null as number | null,
132-
});
133-
}
103+
if (user) {
104+
const keepId = await fetchKeep();
105+
return cocktails.map((item) => ({
106+
...item,
107+
isKeep: keepId.has(item.cocktailId),
108+
}));
109+
}
134110

111+
return cocktails;
112+
},
113+
getNextPageParam: (lastpage) => {
114+
if (lastpage.length < size) return undefined;
115+
return lastpage[lastpage.length - 1]?.cocktailId ?? undefined;
116+
},
117+
initialPageParam: null as number | null,
118+
});
119+
};
135120

136-
export const useCocktailsSearchQuery = (filters:SearchFilters) => {
137-
const user = useAuthStore(state => state.user)
138-
const isActive = hasActiveFilters(filters)
121+
export const useCocktailsSearchQuery = (filters: SearchFilters) => {
122+
const user = useAuthStore((state) => state.user);
123+
const isActive = hasActiveFilters(filters);
139124

140125
return useQuery({
141126
queryKey: ['cocktails', 'search', filters, user?.id],
142127
queryFn: async () => {
143-
const cocktails = await searchCocktails(filters)
128+
const cocktails = await searchCocktails(filters);
144129
if (user && cocktails.length > 0) {
145-
const keepId = await fetchKeep()
130+
const keepId = await fetchKeep();
146131
return cocktails.map((item) => ({
147132
...item,
148-
isKeep: keepId.has(item.cocktailId)
149-
}))
133+
isKeep: keepId.has(item.cocktailId),
134+
}));
150135
}
151-
return cocktails
136+
return cocktails;
152137
},
153138
enabled: isActive,
154-
refetchOnMount:false,
155-
})
156-
}
139+
refetchOnMount: false,
140+
});
141+
};
157142

158-
export const useCocktails = (filters: CocktailFilter, infiniteScrollSize: number = 20,sortBy?:Sort) => {
143+
export const useCocktails = (
144+
filters: CocktailFilter,
145+
infiniteScrollSize: number = 20,
146+
sortBy?: Sort
147+
) => {
159148
const isSearchMode = hasActiveFilters(filters);
160149
const infiniteQuery = useCocktailsInfiniteQuery(infiniteScrollSize, sortBy);
161150
const searchQuery = useCocktailsSearchQuery(filters);

0 commit comments

Comments
 (0)