fix: render calendar overlap conflicts safely
This commit is contained in:
@@ -252,6 +252,17 @@ export default function CalendarPage() {
|
|||||||
const detail = err.response?.data?.detail
|
const detail = err.response?.data?.detail
|
||||||
if (typeof detail === 'string' && detail.toLowerCase().includes('overlap')) {
|
if (typeof detail === 'string' && detail.toLowerCase().includes('overlap')) {
|
||||||
setError(`⚠️ Overlap conflict: ${detail}`)
|
setError(`⚠️ Overlap conflict: ${detail}`)
|
||||||
|
} else if (detail && typeof detail === 'object') {
|
||||||
|
const message = typeof detail.message === 'string' ? detail.message : 'Save failed'
|
||||||
|
const conflicts = Array.isArray(detail.conflicts) ? detail.conflicts : []
|
||||||
|
if (conflicts.length > 0) {
|
||||||
|
const summary = conflicts
|
||||||
|
.map((conflict: any) => `${conflict.slot_type || 'slot'} at ${conflict.scheduled_at || 'unknown time'}`)
|
||||||
|
.join(', ')
|
||||||
|
setError(`⚠️ ${message}: ${summary}`)
|
||||||
|
} else {
|
||||||
|
setError(`⚠️ ${message}`)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
setError(detail || 'Save failed')
|
setError(detail || 'Save failed')
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user