mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-04-06 13:11:25 +00:00
fix: Mise à jour des plannings
This commit is contained in:
@ -7,7 +7,7 @@ import { isToday } from 'date-fns';
|
||||
|
||||
|
||||
const WeekView = ({ onDateClick, onEventClick, events }) => {
|
||||
const { currentDate, planningMode, parentView } = usePlanning();
|
||||
const { currentDate, planningMode, parentView, schedules } = usePlanning();
|
||||
const [currentTime, setCurrentTime] = useState(new Date());
|
||||
const scrollContainerRef = useRef(null); // Ajouter cette référence
|
||||
|
||||
@ -71,11 +71,28 @@ const WeekView = ({ onDateClick, onEventClick, events }) => {
|
||||
});
|
||||
};
|
||||
|
||||
const getScheduleColor = (event) => {
|
||||
const schedule = schedules?.find(
|
||||
(item) => Number(item.id) === Number(event.planning)
|
||||
);
|
||||
return schedule?.color || event.color || '#6B7280';
|
||||
};
|
||||
|
||||
const getScheduleClassLevelLabel = (event) => {
|
||||
const schedule = schedules?.find(
|
||||
(item) => Number(item.id) === Number(event.planning)
|
||||
);
|
||||
const scheduleName = schedule?.name || '';
|
||||
if (!scheduleName) return '';
|
||||
return scheduleName;
|
||||
};
|
||||
|
||||
const calculateEventStyle = (event, dayEvents) => {
|
||||
const start = new Date(event.start);
|
||||
const end = new Date(event.end);
|
||||
const startMinutes = (start.getMinutes() / 60) * 5;
|
||||
const duration = ((end - start) / (1000 * 60 * 60)) * 5;
|
||||
const scheduleColor = getScheduleColor(event);
|
||||
|
||||
// Trouver les événements qui se chevauchent
|
||||
const overlappingEvents = findOverlappingEvents(event, dayEvents);
|
||||
@ -101,6 +118,8 @@ const WeekView = ({ onDateClick, onEventClick, events }) => {
|
||||
|
||||
const renderEventInCell = (event, dayEvents) => {
|
||||
const eventStyle = calculateEventStyle(event, dayEvents);
|
||||
const scheduleColor = getScheduleColor(event);
|
||||
const classLevelLabel = getScheduleClassLevelLabel(event);
|
||||
|
||||
return (
|
||||
<div
|
||||
@ -116,12 +135,32 @@ const WeekView = ({ onDateClick, onEventClick, events }) => {
|
||||
}
|
||||
}
|
||||
>
|
||||
{classLevelLabel && (
|
||||
<div
|
||||
className="px-1 py-0.5 border-t-2"
|
||||
style={{
|
||||
borderTopColor: scheduleColor,
|
||||
backgroundColor: `${scheduleColor}22`,
|
||||
}}
|
||||
>
|
||||
<span
|
||||
className="text-[10px] font-semibold uppercase tracking-wide truncate block text-center"
|
||||
style={{ color: scheduleColor }}
|
||||
>
|
||||
{classLevelLabel}
|
||||
</span>
|
||||
</div>
|
||||
)}
|
||||
<div className="p-1">
|
||||
<div
|
||||
className="font-semibold text-xs truncate"
|
||||
className="font-semibold text-xs truncate flex items-center gap-1"
|
||||
style={{ color: event.color }}
|
||||
>
|
||||
{event.title}
|
||||
<span
|
||||
className="w-2 h-2 rounded-full shrink-0"
|
||||
style={{ backgroundColor: event.color }}
|
||||
/>
|
||||
<span className="truncate flex-1">{event.title}</span>
|
||||
</div>
|
||||
<div
|
||||
className="text-xs"
|
||||
|
||||
Reference in New Issue
Block a user