+
+
๐
Calendar
+
+
+ {/* Tab switcher */}
+
+
+
+
+
+ {error &&
{error}
}
+
+ {activeTab === 'daily' && (
+ <>
+ {/* Date navigation */}
+
+
+
+
+
+
+
+ {/* Slot list */}
+ {loading ? (
+
Loading...
+ ) : slots.length === 0 ? (
+
+ No slots scheduled for {dayjs(selectedDate).format('MMMM D, YYYY')}.
+
+ ) : (
+
+ {slots.map((slot) => (
+
+
+ {SLOT_TYPE_ICONS[slot.slot_type] || '๐'}
+ {slot.slot_type.replace('_', ' ')}
+ {slot.status.replace('_', ' ')}
+ {slot.is_virtual && plan}
+ {slot.scheduled_at}
+
+
+ โฑ {slot.estimated_duration} min
+ โก Priority: {slot.priority}
+ {slot.event_type && ๐ {slot.event_type.replace('_', ' ')}}
+
+ {slot.event_data && slot.event_data.code && (
+
+ ๐ {slot.event_data.code}
+
+ )}
+ {slot.event_data && slot.event_data.event && (
+
+ ๐ฃ {slot.event_data.event}
+
+ )}
+
+ ))}
+
+ )}
+ >
+ )}
+
+ {activeTab === 'plans' && (
+
+ {plans.length === 0 ? (
+
+ No schedule plans configured.
+
+ ) : (
+ plans.map((plan) => (
+
+
+ {SLOT_TYPE_ICONS[plan.slot_type] || '๐'}
+ {plan.slot_type.replace('_', ' ')}
+ {!plan.is_active && inactive}
+ Plan #{plan.id}
+
+
+
๐ {formatPlanSchedule(plan)}
+
โฑ {plan.estimated_duration} min
+ {plan.event_type &&
๐ {plan.event_type.replace('_', ' ')}
}
+
+
+ ))
+ )}
+
+ )}
+
+ )
+}