@@ -121,16 +121,15 @@ export const ObjectCalendar: React.FC<ObjectCalendarProps> = ({
121121 onEventClick,
122122 onDateClick,
123123} ) => {
124- console . log ( 'ObjectCalendar Schema:' , JSON . stringify ( schema ) ) ;
125124 const [ data , setData ] = useState < any [ ] > ( [ ] ) ;
126125 const [ loading , setLoading ] = useState ( true ) ;
127126 const [ error , setError ] = useState < Error | null > ( null ) ;
128127 const [ objectSchema , setObjectSchema ] = useState < any > ( null ) ;
129128 const [ currentDate , setCurrentDate ] = useState ( new Date ( ) ) ;
130129 const [ view , setView ] = useState < 'month' | 'week' | 'day' > ( 'month' ) ;
131130
132- const dataConfig = getDataConfig ( schema ) ;
133- const calendarConfig = getCalendarConfig ( schema ) ;
131+ const dataConfig = useMemo ( ( ) => getDataConfig ( schema ) , [ schema ] ) ;
132+ const calendarConfig = useMemo ( ( ) => getCalendarConfig ( schema ) , [ schema ] ) ;
134133 const hasInlineData = dataConfig ?. provider === 'value' ;
135134
136135 // Fetch data based on provider
@@ -155,7 +154,20 @@ export const ObjectCalendar: React.FC<ObjectCalendarProps> = ({
155154 $filter : schema . filter ,
156155 $orderby : convertSortToQueryParams ( schema . sort ) ,
157156 } ) ;
158- setData ( result ?. data || [ ] ) ;
157+
158+ let items : any [ ] = [ ] ;
159+
160+ if ( Array . isArray ( result ) ) {
161+ items = result ;
162+ } else if ( result && typeof result === 'object' ) {
163+ if ( Array . isArray ( ( result as any ) . data ) ) {
164+ items = ( result as any ) . data ;
165+ } else if ( Array . isArray ( ( result as any ) . value ) ) {
166+ items = ( result as any ) . value ;
167+ }
168+ }
169+
170+ setData ( items ) ;
159171 } else if ( dataConfig ?. provider === 'api' ) {
160172 console . warn ( 'API provider not yet implemented for ObjectCalendar' ) ;
161173 setData ( [ ] ) ;
@@ -248,7 +260,14 @@ export const ObjectCalendar: React.FC<ObjectCalendarProps> = ({
248260 return events . filter ( event => {
249261 const eventStart = new Date ( event . start ) ;
250262 eventStart . setHours ( 0 , 0 , 0 , 0 ) ;
251- const eventEnd = event . end ? new Date ( event . end ) : eventStart ;
263+
264+ let eventEnd : Date ;
265+ if ( event . end ) {
266+ eventEnd = new Date ( event . end ) ;
267+ } else {
268+ eventEnd = new Date ( eventStart ) ;
269+ }
270+
252271 eventEnd . setHours ( 23 , 59 , 59 , 999 ) ;
253272
254273 const checkDay = new Date ( day ) ;
0 commit comments