@@ -139,19 +139,34 @@ export const ObjectCalendar: React.FC<ObjectCalendarProps> = ({
139139 const [ currentDate , setCurrentDate ] = useState ( new Date ( ) ) ;
140140 const [ view , setView ] = useState < 'month' | 'week' | 'day' > ( 'month' ) ;
141141
142- const dataConfig = useMemo ( ( ) => getDataConfig ( schema ) , [ schema ] ) ;
143- const calendarConfig = useMemo ( ( ) => getCalendarConfig ( schema ) , [ schema ] ) ;
142+ const dataConfig = useMemo ( ( ) => getDataConfig ( schema ) , [
143+ ( schema as any ) . data ,
144+ ( schema as any ) . staticData ,
145+ schema . objectName ,
146+ ] ) ;
147+ const calendarConfig = useMemo ( ( ) => getCalendarConfig ( schema ) , [
148+ schema . filter ,
149+ ( schema as any ) . calendar ,
150+ ( schema as any ) . dateField ,
151+ ( schema as any ) . endField ,
152+ ( schema as any ) . titleField ,
153+ ( schema as any ) . colorField
154+ ] ) ;
144155 const hasInlineData = dataConfig ?. provider === 'value' ;
145156
146157 // Fetch data based on provider
147158 useEffect ( ( ) => {
159+ let isMounted = true ;
148160 const fetchData = async ( ) => {
149161 try {
162+ if ( ! isMounted ) return ;
150163 setLoading ( true ) ;
151164
152165 if ( hasInlineData && dataConfig ?. provider === 'value' ) {
153- setData ( dataConfig . items as any [ ] ) ;
154- setLoading ( false ) ;
166+ if ( isMounted ) {
167+ setData ( dataConfig . items as any [ ] ) ;
168+ setLoading ( false ) ;
169+ }
155170 return ;
156171 }
157172
@@ -178,20 +193,26 @@ export const ObjectCalendar: React.FC<ObjectCalendarProps> = ({
178193 }
179194 }
180195
181- setData ( items ) ;
196+ if ( isMounted ) {
197+ setData ( items ) ;
198+ }
182199 } else if ( dataConfig ?. provider === 'api' ) {
183200 console . warn ( 'API provider not yet implemented for ObjectCalendar' ) ;
184- setData ( [ ] ) ;
201+ if ( isMounted ) setData ( [ ] ) ;
185202 }
186203
187- setLoading ( false ) ;
204+ if ( isMounted ) setLoading ( false ) ;
188205 } catch ( err ) {
189- setError ( err as Error ) ;
190- setLoading ( false ) ;
206+ console . error ( '[ObjectCalendar] Error fetching data:' , err ) ;
207+ if ( isMounted ) {
208+ setError ( err as Error ) ;
209+ setLoading ( false ) ;
210+ }
191211 }
192212 } ;
193213
194214 fetchData ( ) ;
215+ return ( ) => { isMounted = false ; } ;
195216 } , [ dataConfig , dataSource , hasInlineData , schema . filter , schema . sort ] ) ;
196217
197218 // Fetch object schema for field metadata
0 commit comments