@@ -18,7 +18,7 @@ import {
1818
1919import { paginated } from "#core:utils/api" ;
2020import type { SlotSelectedEventArg } from "#reservation:reservation/types" ;
21- import interactionPlugin from "@fullcalendar/interaction" ;
21+ import interactionPlugin , { type EventResizeDoneArg } from "@fullcalendar/interaction" ;
2222import resourceTimelinePlugin from "@fullcalendar/resource-timeline" ;
2323
2424@registerComponent ( "room-scheduler" )
@@ -75,17 +75,15 @@ export class RoomScheduler extends inheritHtmlElement("div") {
7575 * Send a request to the API to change
7676 * the start and the duration of a reservation slot
7777 */
78- async changeReservation ( args : EventDropArg ) {
79- const duration = new Date ( args . event . end . getTime ( ) - args . event . start . getTime ( ) ) ;
78+ async changeReservation ( args : EventDropArg | EventResizeDoneArg ) {
8079 const response = await reservationslotUpdateSlot ( {
8180 // biome-ignore lint/style/useNamingConvention: api is snake_case
8281 path : { slot_id : Number . parseInt ( args . event . id ) } ,
83- body : {
84- start_at : args . event . startStr ,
85- end_at : args . event . endStr ,
86- } ,
82+ // biome-ignore lint/style/useNamingConvention: api is snake_case
83+ body : { start_at : args . event . startStr , end_at : args . event . endStr } ,
8784 } ) ;
8885 if ( response . response . ok ) {
86+ document . dispatchEvent ( new CustomEvent ( "reservationSlotChanged" ) ) ;
8987 this . scheduler . refetchEvents ( ) ;
9088 }
9189 }
@@ -133,6 +131,7 @@ export class RoomScheduler extends inheritHtmlElement("div") {
133131 selectConstraint : { start : new Date ( ) } ,
134132 nowIndicator : true ,
135133 eventDrop : this . changeReservation ,
134+ eventResize : this . changeReservation ,
136135 } ) ;
137136 this . scheduler . render ( ) ;
138137 }
0 commit comments