@@ -268,6 +268,7 @@ let CalendarBasicComp = (function () {
268268    const  ref  =  createRef < HTMLDivElement > ( ) ; 
269269    const  editEvent  =  useRef < EventInput > ( ) ; 
270270    const  initData  =  useRef < boolean > ( false ) ; 
271+     const  clickTimeout  =  useRef < NodeJS . Timeout  |  null > ( null ) ; 
271272    const  [ form ]  =  Form . useForm ( ) ;  
272273    const  [ left ,  setLeft ]  =  useState < number  |  undefined > ( undefined ) ; 
273274    const  [ licensed ,  setLicensed ]  =  useState < boolean > ( props . licenseKey  !==  "" ) ; 
@@ -370,6 +371,15 @@ let CalendarBasicComp = (function () {
370371        initData . current  =  true ; 
371372      } 
372373    } ,  [ JSON . stringify ( initialEvents ) ,  comp ?. children ?. comp ?. children ?. initialData ] ) ; 
374+ 
375+     // Cleanup timeout on unmount 
376+     useEffect ( ( )  =>  { 
377+       return  ( )  =>  { 
378+         if  ( clickTimeout . current )  { 
379+           clearTimeout ( clickTimeout . current ) ; 
380+         } 
381+       } ; 
382+     } ,  [ ] ) ; 
373383
374384    const  resources  =  useMemo ( ( )  =>  props . resources . value ,  [ props . resources . value ] ) ; 
375385
@@ -850,22 +860,30 @@ let CalendarBasicComp = (function () {
850860      handleEventDataChange , 
851861    ] ) ;  
852862
863+     const  handleSingleClick  =  useCallback ( ( )  =>  { 
864+       // Prevent double click from triggering the event 
865+       // Use a timeout to debounce rapid clicks 
866+       if  ( clickTimeout . current )  { 
867+         clearTimeout ( clickTimeout . current ) ; 
868+         clickTimeout . current  =  null ; 
869+         return ;  // This was a double click, don't trigger 
870+       } 
871+       
872+       clickTimeout . current  =  setTimeout ( ( )  =>  { 
873+         props . onEvent ( 'click' ) ; 
874+         clickTimeout . current  =  null ; 
875+       } ,  150 ) ;  // Small delay to catch double clicks 
876+     } ,  [ props . onEvent ] ) ; 
877+ 
853878    const  handleDbClick  =  useCallback ( ( )  =>  { 
854-       const  event  =  props . updatedEventsData . find ( 
855-         ( item : EventType )  =>  item . id  ===  editEvent . current ?. id 
856-       )  as  EventType ; 
857879      if  ( ! props . editable  ||  ! editEvent . current )  { 
858880        return ; 
859881      } 
860-       if  ( event )  { 
861-         showModal ( event ,  true ) ; 
882+       if  ( onEventVal  &&  onEventVal . some ( ( e : any )  =>  e . name  ===  'doubleClick' ) )  { 
883+         // Check if 'doubleClick' is included in the array 
884+         props . onEvent ( 'doubleClick' ) ; 
862885      }  else  { 
863-         if  ( onEventVal  &&  onEventVal . some ( ( e : any )  =>  e . name  ===  'doubleClick' ) )  { 
864-           // Check if 'doubleClick' is included in the array 
865-           props . onEvent ( 'doubleClick' ) ; 
866-         }  else  { 
867-           showModal ( editEvent . current  as  EventType ,  false ) ; 
868-         } 
886+         showModal ( editEvent . current  as  EventType ,  false ) ; 
869887      } 
870888    } ,  [ 
871889      editEvent , 
@@ -974,6 +992,9 @@ let CalendarBasicComp = (function () {
974992            allDaySlot = { props . showAllDay } 
975993            eventContent = { renderEventContent } 
976994            select = { ( info )  =>  handleCreate ( info ) } 
995+             dateClick = { ( )  =>  { 
996+               handleSingleClick ( ) ; 
997+             } } 
977998            eventClick = { ( info )  =>  { 
978999              const  event  =  events . find ( 
9791000                ( item : EventInput )  =>  item . id  ===  info . event . id 
@@ -982,6 +1003,7 @@ let CalendarBasicComp = (function () {
9821003              setTimeout ( ( )  =>  { 
9831004                editEvent . current  =  undefined ; 
9841005              } ,  500 ) ; 
1006+               handleSingleClick ( ) ; 
9851007            } } 
9861008            moreLinkClick = { ( info )  =>  { 
9871009              let  left  =  0 ; 
0 commit comments