Skip to content

Commit 627236b

Browse files
committed
fix(web): keep day event form closed after drag
1 parent 2100e25 commit 627236b

2 files changed

Lines changed: 59 additions & 5 deletions

File tree

packages/web/src/views/Day/interaction/DayInteractionCoordinator.test.tsx

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,4 +239,61 @@ describe("DayInteractionCoordinator", () => {
239239
expect(isOpenAtCursor(CursorItem.EventForm)).toBe(false);
240240
expect(store.getState().events.draft.event).toBeNull();
241241
});
242+
243+
it("saves a moved event without opening a form", async () => {
244+
const { dispatch, store } = renderCoordinator();
245+
const child = screen.getByTestId("timed-child");
246+
247+
fireEvent.pointerDown(child, {
248+
button: 0,
249+
clientX: 160,
250+
clientY: 160,
251+
isPrimary: true,
252+
pointerId: 1,
253+
});
254+
fireEvent.pointerMove(window, {
255+
clientX: 160,
256+
clientY: 220,
257+
pointerId: 1,
258+
});
259+
flushFrame();
260+
fireEvent.pointerUp(window, {
261+
clientX: 160,
262+
clientY: 220,
263+
pointerId: 1,
264+
});
265+
266+
await waitFor(() => {
267+
expect(
268+
dispatch.mock.calls.some(
269+
([action]) => action.type === editEventSlice.actions.request.type,
270+
),
271+
).toBe(true);
272+
});
273+
expect(isOpenAtCursor(CursorItem.EventForm)).toBe(false);
274+
expect(store.getState().events.draft.event).toBeNull();
275+
});
276+
277+
it("opens the event form when pointer interaction does not move the event", async () => {
278+
const { store } = renderCoordinator();
279+
const child = screen.getByTestId("timed-child");
280+
281+
fireEvent.pointerDown(child, {
282+
button: 0,
283+
clientX: 160,
284+
clientY: 160,
285+
isPrimary: true,
286+
pointerId: 1,
287+
});
288+
fireEvent.pointerUp(window, {
289+
clientX: 160,
290+
clientY: 160,
291+
pointerId: 1,
292+
});
293+
294+
await waitFor(() => {
295+
expect(isOpenAtCursor(CursorItem.EventForm)).toBe(true);
296+
});
297+
expect(store.getState().events.draft.event?._id).toBe(timedEvent._id);
298+
});
242299
});

packages/web/src/views/Day/interaction/DayInteractionCoordinator.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -115,12 +115,9 @@ export const DayInteractionCoordinator: FC<Props> = ({
115115
return;
116116
}
117117

118-
if (result.hadFormOpenBeforeInteraction) {
119-
openDayCalendarEvent(result.event);
120-
return;
121-
}
122-
118+
closeFloatingAtCursor();
123119
updateEvent({ event: result.event }, true);
120+
dispatch(draftSlice.actions.discard(undefined));
124121
};
125122

126123
runtimeRef.current = {

0 commit comments

Comments
 (0)