@@ -57,7 +57,7 @@ export const DraggableEvent: FC<DraggableEventProps> = ({
5757 } ;
5858 } , [ ] )
5959 ) ;
60- const { minuteHeight, columnWidthAnim , start, numberOfDays } = useBody ( ) ;
60+ const { minuteHeight, columnWidth , start, numberOfDays } = useBody ( ) ;
6161 const {
6262 dragStartUnix,
6363 dragSelectedStartUnix,
@@ -70,10 +70,9 @@ export const DraggableEvent: FC<DraggableEventProps> = ({
7070 const totalResources =
7171 resources && resources . length > 1 ? resources . length : 1 ;
7272
73- const eventWidth = useDerivedValue (
74- ( ) => columnWidthAnim . value / totalResources ,
75- [ totalResources ]
76- ) ;
73+ const eventWidth = columnWidth / totalResources ;
74+
75+ const eventWidthAnim = useDerivedValue ( ( ) => eventWidth , [ eventWidth ] ) ;
7776
7877 const resourceIndex = useMemo ( ( ) => {
7978 if ( ! resources ) {
@@ -84,10 +83,10 @@ export const DraggableEvent: FC<DraggableEventProps> = ({
8483 ( resource ) => resource . id === selectedEvent ?. resourceId
8584 ) ;
8685 } , [ resources , selectedEvent ?. resourceId ] ) ;
87- const left = useDerivedValue ( ( ) => {
86+ const left = useMemo ( ( ) => {
8887 const diffDays = visibleDates [ startUnix ] ?. diffDays ?? 1 ;
89- return ( diffDays - 1 ) * columnWidthAnim . value ;
90- } , [ visibleDates , startUnix ] ) ;
88+ return ( diffDays - 1 ) * columnWidth ;
89+ } , [ visibleDates , startUnix , columnWidth ] ) ;
9190
9291 const top = useDerivedValue ( ( ) => {
9392 if ( index > 0 ) {
@@ -104,16 +103,13 @@ export const DraggableEvent: FC<DraggableEventProps> = ({
104103 const eventHeight = useDerivedValue (
105104 ( ) => dragSelectedDuration . value * minuteHeight . value
106105 ) ;
106+ const startX = resourceIndex !== - 1 ? resourceIndex * eventWidth : 0 ;
107107
108108 const isDragging = useDerivedValue ( ( ) => dragStartUnix . value !== - 1 ) ;
109-
110109 const animView = useAnimatedStyle ( ( ) => {
111- const startX = resourceIndex !== - 1 ? resourceIndex * eventWidth . value : 0 ;
112110 return {
113111 top : top . value ,
114112 height : eventHeight . value ,
115- width : eventWidth . value ,
116- left : startX + left . value ,
117113 opacity :
118114 isDragging . value || dragSelectedStartMinutes . value === - 1 ? 0 : 1 ,
119115 } ;
@@ -159,7 +155,12 @@ export const DraggableEvent: FC<DraggableEventProps> = ({
159155 } ) ;
160156
161157 return (
162- < Animated . View style = { [ styles . container , animView ] } >
158+ < Animated . View
159+ style = { [
160+ styles . container ,
161+ { width : eventWidth , left : startX + left } ,
162+ animView ,
163+ ] } >
163164 { selectedEvent && (
164165 < View
165166 style = { [
@@ -178,7 +179,7 @@ export const DraggableEvent: FC<DraggableEventProps> = ({
178179 ] } >
179180 { renderEvent ? (
180181 renderEvent ( selectedEvent , {
181- width : eventWidth ,
182+ width : eventWidthAnim ,
182183 height : eventHeight ,
183184 } )
184185 ) : (
0 commit comments