diff --git a/apps/admin/src/app/_components/RequestListItem/RequestListItem.tsx b/apps/admin/src/app/_components/RequestListItem/RequestListItem.tsx index 9ab438b..ba571b4 100644 --- a/apps/admin/src/app/_components/RequestListItem/RequestListItem.tsx +++ b/apps/admin/src/app/_components/RequestListItem/RequestListItem.tsx @@ -15,6 +15,7 @@ export const RequestListItem = ({
  • diff --git a/apps/web/app/_apis/queries/event.ts b/apps/web/app/_apis/queries/event.ts index 5377c61..88494e5 100644 --- a/apps/web/app/_apis/queries/event.ts +++ b/apps/web/app/_apis/queries/event.ts @@ -1,17 +1,27 @@ import { queryOptions } from '@tanstack/react-query' -import { getEventInfo, getEventResult } from '@/_apis/services/event' +import { + getPublicEventInfo, + getPrivateEventInfo, + getEventResult, +} from '@/_apis/services/event' export const EventQueryKeys = { all: () => ['event'] as const, - info: () => [...EventQueryKeys.all(), 'info'] as const, + publicInfo: () => [...EventQueryKeys.all(), 'info', 'public'] as const, + privateInfo: () => [...EventQueryKeys.all(), 'info', 'private'] as const, result: () => [...EventQueryKeys.all(), 'result'] as const, } export const useEventQueries = { - info: () => + publicInfo: () => queryOptions({ - queryKey: EventQueryKeys.info(), - queryFn: getEventInfo, + queryKey: EventQueryKeys.publicInfo(), + queryFn: getPublicEventInfo, + }), + privateInfo: () => + queryOptions({ + queryKey: EventQueryKeys.privateInfo(), + queryFn: getPrivateEventInfo, }), result: () => queryOptions({ diff --git a/apps/web/app/_apis/schemas/event.ts b/apps/web/app/_apis/schemas/event.ts index 7493439..53556fb 100644 --- a/apps/web/app/_apis/schemas/event.ts +++ b/apps/web/app/_apis/schemas/event.ts @@ -1,6 +1,13 @@ import { z } from 'zod' -export const EventSchema = z.object({ +export const PublicEventSchema = z.object({ + prize: z.object({ + description: z.string(), + imageUrl: z.string(), + }), +}) + +export const PrivateEventSchema = z.object({ eventId: z.string(), prize: z.object({ description: z.string(), @@ -20,5 +27,6 @@ export const EventResultSchema = z.object({ usedTicketsCount: z.number(), }) -export type Event = z.infer +export type PublicEvent = z.infer +export type PrivateEvent = z.infer export type EventResult = z.infer diff --git a/apps/web/app/_apis/services/event.ts b/apps/web/app/_apis/services/event.ts index ed53ecc..4d930a7 100644 --- a/apps/web/app/_apis/services/event.ts +++ b/apps/web/app/_apis/services/event.ts @@ -1,16 +1,24 @@ import axiosInstance from '@/_lib/axiosInstance' import { API_PATH } from '@/_constants/path' import { - EventSchema, + PrivateEventSchema, + PublicEventSchema, EventResultSchema, - type Event, type EventResult, + type PrivateEvent, + type PublicEvent, } from '@/_apis/schemas/event' -export const getEventInfo = async (): Promise => { +export const getPublicEventInfo = async (): Promise => { const { data: response } = await axiosInstance.get(API_PATH.EVENT.INFO) const { data } = response - return EventSchema.parse(data) + return PublicEventSchema.parse(data) +} + +export const getPrivateEventInfo = async (): Promise => { + const { data: response } = await axiosInstance.get(API_PATH.EVENT.INFO) + const { data } = response + return PrivateEventSchema.parse(data) } export const participationEvent = async (body: { diff --git a/apps/web/app/_components/CampusSelector/CampusSelector.tsx b/apps/web/app/_components/CampusSelector/CampusSelector.tsx index 2c2bf07..a4f5727 100644 --- a/apps/web/app/_components/CampusSelector/CampusSelector.tsx +++ b/apps/web/app/_components/CampusSelector/CampusSelector.tsx @@ -1,7 +1,6 @@ 'use client' import type { Selection } from '@heroui/react' -import type { SharedSelection } from '@heroui/system' import { Dropdown, DropdownTrigger, @@ -18,8 +17,11 @@ export const CampusSelector = () => { const { campus, setCampus } = useCampusStore() const selectedKeys = new Set([campus]) as Selection - const onSelectionChange = ({ currentKey }: SharedSelection) => { - if (isCampusType(currentKey)) setCampus(currentKey) + const onSelectionChange = (keys: Selection) => { + const newKey = Array.from(keys)[0] as string | undefined + if (isCampusType(newKey)) { + setCampus(newKey) + } } return ( @@ -27,8 +29,8 @@ export const CampusSelector = () => { @@ -41,7 +43,7 @@ export const CampusSelector = () => { selectedKeys={selectedKeys} selectionMode='single' variant='flat' - onSelectionChange={onSelectionChange} + onSelectionChange={onSelectionChange} // 5. [수정됨] 이제 이 핸들러가 올바르게 작동합니다. > {CAMPUS_LIST.map((campusKey) => ( {CAMPUS[campusKey]} @@ -53,6 +55,5 @@ export const CampusSelector = () => { function isCampusType(value: string | undefined): value is CampusType { if (value === undefined) return false - - return value in CAMPUS + return (CAMPUS_LIST as readonly string[]).includes(value) } diff --git a/apps/web/app/_components/Categories/CategoryItem.tsx b/apps/web/app/_components/Categories/CategoryItem.tsx index 05c8b99..296c5cd 100644 --- a/apps/web/app/_components/Categories/CategoryItem.tsx +++ b/apps/web/app/_components/Categories/CategoryItem.tsx @@ -8,6 +8,7 @@ import { Column } from '@repo/ui/components/Layout' export const CategoryItem = ({ id, name, iconKey }: Category) => ( diff --git a/apps/web/app/_components/PlaceListItem/PlaceListItem.tsx b/apps/web/app/_components/PlaceListItem/PlaceListItem.tsx index 1abbde9..e034b0a 100644 --- a/apps/web/app/_components/PlaceListItem/PlaceListItem.tsx +++ b/apps/web/app/_components/PlaceListItem/PlaceListItem.tsx @@ -27,6 +27,7 @@ export const PlaceListItem = ({
  • { - return HttpResponse.json(event) - }), + // http.get(addBaseUrl(API_PATH.EVENT.INFO), () => { + // return HttpResponse.json(event) + // }), http.post(addBaseUrl(API_PATH.EVENT.PARTICIPATIONS), () => { return HttpResponse.json({ message: '성공' }) }), diff --git a/apps/web/app/events/lucky-draw/_components/Pages/Participation/Participation.tsx b/apps/web/app/events/lucky-draw/_components/Pages/Participation/Participation.tsx index eb1ba97..1e8a5f3 100644 --- a/apps/web/app/events/lucky-draw/_components/Pages/Participation/Participation.tsx +++ b/apps/web/app/events/lucky-draw/_components/Pages/Participation/Participation.tsx @@ -12,7 +12,7 @@ import { RemainingTickets } from './RemainingTickets' export const Participation = () => { const { isOpen, onOpen, onOpenChange } = useDisclosure() - const { data } = useSuspenseQuery(useEventQueries.info()) + const { data } = useSuspenseQuery(useEventQueries.privateInfo()) const { eventId, prize, diff --git a/apps/web/app/events/lucky-draw/page.tsx b/apps/web/app/events/lucky-draw/page.tsx index add3cf9..e8efece 100644 --- a/apps/web/app/events/lucky-draw/page.tsx +++ b/apps/web/app/events/lucky-draw/page.tsx @@ -15,7 +15,7 @@ const Page = () => { { await Promise.all([ - queryClient.prefetchQuery(useEventQueries.info()), + queryClient.prefetchQuery(useEventQueries.privateInfo()), queryClient.prefetchQuery(useEventQueries.result()), ]) }} diff --git a/apps/web/app/places/new/_components/Step/EventWelcome/EventWelcome.tsx b/apps/web/app/places/new/_components/Step/EventWelcome/EventWelcome.tsx index 11a4b97..6d5683d 100644 --- a/apps/web/app/places/new/_components/Step/EventWelcome/EventWelcome.tsx +++ b/apps/web/app/places/new/_components/Step/EventWelcome/EventWelcome.tsx @@ -13,7 +13,7 @@ type Props = { } export const EventWelcome = ({ nextStep }: Props) => { - const { data } = useSuspenseQuery(useEventQueries.info()) + const { data } = useSuspenseQuery(useEventQueries.publicInfo()) const { prize } = data return ( diff --git a/apps/web/app/requests/_components/PlaceListItem/PlaceListItem.tsx b/apps/web/app/requests/_components/PlaceListItem/PlaceListItem.tsx index c549b88..8714d15 100644 --- a/apps/web/app/requests/_components/PlaceListItem/PlaceListItem.tsx +++ b/apps/web/app/requests/_components/PlaceListItem/PlaceListItem.tsx @@ -20,6 +20,7 @@ export const PlaceListItem = ({
  • diff --git a/apps/web/next.config.ts b/apps/web/next.config.ts index 6e6143f..49ebb7b 100644 --- a/apps/web/next.config.ts +++ b/apps/web/next.config.ts @@ -30,6 +30,11 @@ const nextConfig: NextConfig = { hostname: 'blog.kakaocdn.net', pathname: '/**', }, + { + protocol: 'https', + hostname: 'example.com', + pathname: '/**', + }, ], }, }