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: '/**',
+ },
],
},
}