diff --git a/apps/cs/src/pages/schedule/ui/schedule-page.tsx b/apps/cs/src/pages/schedule/ui/schedule-page.tsx
index bb05ad54f..22df69363 100644
--- a/apps/cs/src/pages/schedule/ui/schedule-page.tsx
+++ b/apps/cs/src/pages/schedule/ui/schedule-page.tsx
@@ -8,9 +8,11 @@ import dayGridPlugin from "@fullcalendar/daygrid";
import interactionPlugin, {
type DateClickArg,
} from "@fullcalendar/interaction";
+import type { EventClickArg } from "@fullcalendar/core";
import { useQuery } from "@tanstack/react-query";
import { ENDPOINT, SITE_ID } from "@/shared/config";
import { ScheduleApi } from "../api/schedule-service";
+import { calculateEventDuration } from "../lib/utils";
import type { ScheduleParams } from "../model/schedule-interface";
function SchedulePage() {
@@ -22,19 +24,33 @@ function SchedulePage() {
useYn: "Y",
});
- const { data } = useQuery({
+ const { data: eventData } = useQuery({
queryKey: [ENDPOINT.CMS_SERVICE.SCHEDULES, scheduleParams],
queryFn: () => ScheduleApi.getSchedules(scheduleParams),
select: (data) => {
- return data.map((item) => ({
- title: item.schdlTtl,
- start: item.schdlBgngDt,
- end: item.schdlEndDt,
- }));
+ return data.map((item) => {
+ const minuteDiff = calculateEventDuration(
+ item.schdlBgngDt,
+ item.schdlEndDt,
+ );
+
+ return {
+ id: item.schdlSn.toString(),
+ title: item.schdlTtl,
+ start: item.schdlBgngDt,
+ end: item.schdlEndDt,
+ allDay: minuteDiff >= 1439,
+ classNames: ["cursor-pointer"],
+ };
+ });
},
enabled: !!scheduleParams.schdlBgngYmd && !!scheduleParams.schdlEndYmd,
});
+ const handleEventClick = (info: EventClickArg) => {
+ router.push(`/schedule/register/${info.event.id}`);
+ };
+
const handleDateClick = (info: DateClickArg) => {
router.push(`/schedule/register?dateStr=${info.dateStr}`);
};
@@ -44,8 +60,10 @@ function SchedulePage() {
{
setScheduleParams({