Skip to content

Commit 5df7868

Browse files
🐛 Fix: someday event validation errors (#597)
* fix(web): Someday event validation error due to incorrect prep function old prep function used core event zod schema, which did not return `order` field, triggering a validation runtime error implemented a new prep function specially for someday events that return expected someday event schema shape including the order field * fix(web): update on convert to someday event validation to use validateSomedayEvent fixes runtime error due to incorrect zod schema validation function
1 parent fe6dae7 commit 5df7868

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

packages/web/src/common/utils/event.util.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { Categories_Event, Schema_Event } from "@core/types/event.types";
1111
import { validateEvent } from "@core/validators/event.validator";
1212
import { getUserId } from "@web/auth/auth.util";
1313
import { PartialMouseEvent } from "@web/common/types/util.types";
14+
import { validateSomedayEvent } from "@web/common/validators/someday.event.validator";
1415
import {
1516
DATA_EVENT_ELEMENT_ID,
1617
ID_OPTIMISTIC_PREFIX,
@@ -223,6 +224,20 @@ export const prepEvtBeforeSubmit = (
223224
return event;
224225
};
225226

227+
export const prepSomedayEventBeforeSubmit = (
228+
draft: Schema_Event | Schema_GridEvent,
229+
userId: string,
230+
) => {
231+
const _event = {
232+
...draft,
233+
origin: Origin.COMPASS,
234+
user: userId,
235+
};
236+
237+
const event = validateSomedayEvent(_event);
238+
return event;
239+
};
240+
226241
export const replaceIdWithOptimisticId = (
227242
event: Schema_Event,
228243
): Schema_OptimisticEvent => {

packages/web/src/views/Calendar/components/Draft/hooks/actions/useDraftActions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {
66
} from "@core/constants/core.constants";
77
import { YEAR_MONTH_DAY_FORMAT } from "@core/constants/date.constants";
88
import { devAlert } from "@core/util/app.util";
9-
import { validateEvent } from "@core/validators/event.validator";
109
import { getUserId } from "@web/auth/auth.util";
1110
import { PartialMouseEvent } from "@web/common/types/util.types";
1211
import { Schema_GridEvent } from "@web/common/types/web.event.types";
@@ -15,6 +14,7 @@ import {
1514
prepEvtBeforeSubmit,
1615
} from "@web/common/utils/event.util";
1716
import { getX } from "@web/common/utils/grid.util";
17+
import { validateSomedayEvent } from "@web/common/validators/someday.event.validator";
1818
import {
1919
selectDraft,
2020
selectDraftStatus,
@@ -151,7 +151,7 @@ export const useDraftActions = (
151151
endDate: end,
152152
order: somedayWeekCount,
153153
};
154-
const event = validateEvent(_draft);
154+
const event = validateSomedayEvent(_draft);
155155
dispatch(getWeekEventsSlice.actions.convert({ event }));
156156

157157
discard();

packages/web/src/views/Calendar/components/Draft/sidebar/hooks/useSidebarActions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { isEventFormOpen, isSomedayEventFormOpen } from "@web/common/utils";
2020
import {
2121
assembleDefaultEvent,
2222
prepEvtAfterDraftDrop,
23-
prepEvtBeforeSubmit,
23+
prepSomedayEventBeforeSubmit,
2424
} from "@web/common/utils/event.util";
2525
import { getX } from "@web/common/utils/grid.util";
2626
import {
@@ -386,7 +386,7 @@ export const useSidebarActions = (
386386
}
387387

388388
const userId = await getUserId();
389-
_event = prepEvtBeforeSubmit(_event, userId);
389+
_event = prepSomedayEventBeforeSubmit(_event, userId);
390390

391391
const isExisting = _event._id;
392392
if (isExisting) {

0 commit comments

Comments
 (0)