From 0ce0f81874d4f34e296dc82b537983ca124ddc19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EA=B4=91=EB=AF=BC?= Date: Sun, 22 Jun 2025 23:11:09 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=90=9B=20fix:=20getNotices=20?= =?UTF-8?q?=ED=95=A8=EC=88=98=EC=97=90=EC=84=9C=20address=EB=A5=BC=20?= =?UTF-8?q?=EB=B0=B0=EC=97=B4=EB=A1=9C=20=EC=B2=98=EB=A6=AC=ED=95=98?= =?UTF-8?q?=EA=B3=A0=20=EC=9C=A0=ED=9A=A8=ED=95=9C=20=EA=B0=92=EB=A7=8C=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/api/noticeApi.ts | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/api/noticeApi.ts b/src/api/noticeApi.ts index fdb35fd..124989f 100644 --- a/src/api/noticeApi.ts +++ b/src/api/noticeApi.ts @@ -90,19 +90,32 @@ export interface NoticeUpsertRequest { export const getNotices = async (query?: { offset?: number; limit?: number; - address?: string; + address?: string[]; keyword?: string; startsAtGte?: string; hourlyPayGte?: number; sort?: 'time' | 'pay' | 'hour' | 'shop'; }): Promise => { try { - const newQuery = new URLSearchParams({ - ...query, - offset: String(query?.offset ?? ''), - limit: String(query?.limit ?? ''), - hourlyPayGte: String(query?.hourlyPayGte ?? ''), + const { address, ...rest } = query ?? {}; // address만 분리 + + const newQuery = new URLSearchParams(); + + // 키값을 하나씩 꺼내 문자열 변환 + Object.entries(rest).forEach(([key, value]) => { + if (value !== undefined && value !== null) { + newQuery.set(key, String(value)); + } + }); + + // 배열로 각 값의 trim 적용, 유효한 값만 append + address?.forEach((addr) => { + const trimmed = addr.trim(); + if (trimmed) { + newQuery.append('address', trimmed); + } }); + const response = await api.get(`/notices?${newQuery}`); return response.data; } catch (error) { From a1728b5072280be27dcb449667bf92f540a06f08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EA=B4=91=EB=AF=BC?= Date: Sun, 22 Jun 2025 23:11:23 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=90=9B=20fix:=20=ED=95=84=ED=84=B0=20?= =?UTF-8?q?=EA=B0=92=EC=97=90=EC=84=9C=20address=EB=A5=BC=20=EB=B0=B0?= =?UTF-8?q?=EC=97=B4=EB=A1=9C=20=EC=B2=98=EB=A6=AC=ED=95=98=EC=97=AC=20?= =?UTF-8?q?=EB=AA=A8=EB=93=A0=20=EC=A3=BC=EC=86=8C=EB=A5=BC=20=ED=8F=AC?= =?UTF-8?q?=ED=95=A8=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/notice/NoticeList.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/notice/NoticeList.tsx b/src/pages/notice/NoticeList.tsx index d2ca9b3..b6366ae 100644 --- a/src/pages/notice/NoticeList.tsx +++ b/src/pages/notice/NoticeList.tsx @@ -90,7 +90,7 @@ export default function NoticeList({ search = '' }: { search?: string }) { const rawQuery = { offset: (currentPage - 1) * ITEMS_PER_PAGE, limit: ITEMS_PER_PAGE, - address: filterValues.address?.[0], + address: filterValues.address, keyword: search, startsAtGte: filterValues.startsAt ?? getTomorrowISOString(), hourlyPayGte: filterValues.hourlyPay, From 1218368c247e456e6296463f96ba8a856c61455c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EA=B4=91=EB=AF=BC?= Date: Sun, 22 Jun 2025 23:31:40 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=90=9B=20fix:=20getNotices=20?= =?UTF-8?q?=ED=98=B8=EC=B6=9C=20=EC=8B=9C=20address=EB=A5=BC=20=EB=B0=B0?= =?UTF-8?q?=EC=97=B4=EB=A1=9C=20=EC=B2=98=EB=A6=AC=ED=95=98=EC=97=AC=20?= =?UTF-8?q?=EC=9C=A0=EC=A0=80=EC=9D=98=20=EC=84=A0=ED=98=B8=20=EC=A3=BC?= =?UTF-8?q?=EC=86=8C=EB=A5=BC=20=EC=98=AC=EB=B0=94=EB=A5=B4=EA=B2=8C=20?= =?UTF-8?q?=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/notice/NoticeList.tsx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/pages/notice/NoticeList.tsx b/src/pages/notice/NoticeList.tsx index b6366ae..7eaba06 100644 --- a/src/pages/notice/NoticeList.tsx +++ b/src/pages/notice/NoticeList.tsx @@ -134,13 +134,19 @@ export default function NoticeList({ search = '' }: { search?: string }) { const userInfo = await getUser(userId); const preferredAddress = userInfo.item.address; + let addressArray: string[] = []; + if (preferredAddress) { + addressArray = Array.isArray(preferredAddress) + ? preferredAddress + : [preferredAddress]; + } + const result = await getNotices({ offset: 0, limit: 9, startsAtGte: getTomorrowISOString(), - ...(preferredAddress - ? { address: preferredAddress } - : { sort: 'shop' }), + address: addressArray.length > 0 ? addressArray : undefined, + sort: addressArray.length === 0 ? 'shop' : undefined, }); setRecommendedNotices(