@@ -13,12 +13,13 @@ import { useStore } from "@nanostores/react";
13
13
import { EventImpl } from "@fullcalendar/core/internal" ;
14
14
import styles from "./EntryCalendar.module.css" ;
15
15
import { $layout } from "../../../stores/layout" ;
16
+ import { C } from "../../../configuration" ;
16
17
17
18
const calendarBaseConfig : FullCalendar [ "props" ] = {
18
19
allDaySlot : false ,
19
20
headerToolbar : false ,
20
- slotMinTime : { hour : 5 } ,
21
- slotMaxTime : { hour : 23 } ,
21
+ slotMinTime : C . calendar . minTime ,
22
+ slotMaxTime : C . calendar . maxTime ,
22
23
slotDuration : { hour : 1 } ,
23
24
firstDay : 1 ,
24
25
locale : "de" ,
@@ -149,9 +150,14 @@ export function EntryCalendar({
149
150
150
151
const handleEventChange = ( { event } : EventChangeArg ) => {
151
152
const { id, start, end } = event ;
153
+ if ( ! start || ! end ) return ;
154
+
155
+ const startTime = getTime ( start ) < C . calendar . minTime ? C . calendar . minTime : getTime ( start ) ;
156
+ const endTime = isSame ( "day" , start , end ) ? getTime ( end ) : C . calendar . maxTime ;
157
+
152
158
setEvents ( events . map ( ( e ) => ( e . id === id ? { ...e , start : start ! , end : end ! } : e ) ) ) ;
153
159
154
- onUpdateEntry ( parseInt ( id ) , { startedAt : getTime ( start ! ) , endedAt : getTime ( end ! ) , weekday : start ! . getDay ( ) } ) ;
160
+ onUpdateEntry ( parseInt ( id ) , { startedAt : startTime , endedAt : endTime , weekday : start ! . getDay ( ) } ) ;
155
161
} ;
156
162
157
163
const handleOnSave = async ( entry : EntryFormValues ) => {
0 commit comments