vision refactor
This commit is contained in:
parent
b185c130c9
commit
925fa95da4
@ -499,6 +499,16 @@ export default function VisionPage() {
|
||||
}
|
||||
};
|
||||
|
||||
// Format date-time to local format (YYYY-MM-DDTHH:mm) preserving local time
|
||||
const formatLocalDateTime = (date: Date): string => {
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
const hours = String(date.getHours()).padStart(2, '0');
|
||||
const minutes = String(date.getMinutes()).padStart(2, '0');
|
||||
return `${year}-${month}-${day}T${hours}:${minutes}`;
|
||||
};
|
||||
|
||||
// Handle open meeting dialog
|
||||
const handleOpenMeetingDialog = (type: "group" | "mission", id: string, name: string) => {
|
||||
const defaultDate = selectedDate || new Date();
|
||||
@ -512,8 +522,8 @@ export default function VisionPage() {
|
||||
entityId: id,
|
||||
entityName: name,
|
||||
title: "",
|
||||
start: startDate.toISOString().slice(0, 16),
|
||||
end: endDate.toISOString().slice(0, 16),
|
||||
start: formatLocalDateTime(startDate),
|
||||
end: formatLocalDateTime(endDate),
|
||||
allDay: false,
|
||||
description: "",
|
||||
recurrence: "none",
|
||||
@ -706,6 +716,21 @@ export default function VisionPage() {
|
||||
return date.toLocaleDateString('fr-FR', { weekday: 'long', day: 'numeric', month: 'long' });
|
||||
};
|
||||
|
||||
// Format time range for display (start - end)
|
||||
const formatTimeRange = (meeting: ScheduledMeeting): string => {
|
||||
if (meeting.isAllDay) {
|
||||
return "Toute la journée";
|
||||
}
|
||||
if (!meeting.start || !meeting.end) {
|
||||
return meeting.time || "";
|
||||
}
|
||||
const start = new Date(meeting.start);
|
||||
const end = new Date(meeting.end);
|
||||
const startTime = start.toTimeString().slice(0, 5);
|
||||
const endTime = end.toTimeString().slice(0, 5);
|
||||
return `${startTime} - ${endTime}`;
|
||||
};
|
||||
|
||||
// Show loading state
|
||||
if (status === "loading" || loading) {
|
||||
return (
|
||||
@ -794,7 +819,10 @@ export default function VisionPage() {
|
||||
{meeting.title || `${meeting.type === "group" ? "Groupe" : "Mission"}: ${meeting.entityName}`}
|
||||
</h3>
|
||||
<p className="text-sm text-gray-500">
|
||||
{meeting.time} - {formatDate(meeting.date)}
|
||||
{meeting.type === "group" ? "Groupe" : "Mission"}: {meeting.entityName}
|
||||
</p>
|
||||
<p className="text-sm text-gray-500">
|
||||
{formatTimeRange(meeting)}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@ -976,12 +1004,17 @@ export default function VisionPage() {
|
||||
<h4 className="font-medium text-gray-900">
|
||||
{meeting.title || `${meeting.type === "group" ? "Groupe" : "Mission"}: ${meeting.entityName}`}
|
||||
</h4>
|
||||
<p className="text-sm text-gray-500">{meeting.time}</p>
|
||||
<p className="text-sm text-gray-500">
|
||||
{meeting.type === "group" ? "Groupe" : "Mission"}: {meeting.entityName}
|
||||
</p>
|
||||
<p className="text-sm text-gray-500">
|
||||
{formatTimeRange(meeting)}
|
||||
</p>
|
||||
</div>
|
||||
{canJoinMeeting(meeting) && (
|
||||
{canJoinMeeting(meeting) && meeting.location && (
|
||||
<Button
|
||||
size="sm"
|
||||
variant="outline"
|
||||
className="bg-blue-600 hover:bg-blue-700 text-white"
|
||||
onClick={() => handleConferenceClick(meeting.type, meeting.entityId, meeting.entityName, meeting.location)}
|
||||
>
|
||||
<Video className="h-4 w-4 mr-1" />
|
||||
@ -1029,9 +1062,6 @@ export default function VisionPage() {
|
||||
<h3 className="font-medium text-gray-900 truncate">
|
||||
{group.name}
|
||||
</h3>
|
||||
<p className="text-sm text-gray-500 truncate">
|
||||
{group.path}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex items-center gap-2 ml-2">
|
||||
@ -1198,8 +1228,8 @@ export default function VisionPage() {
|
||||
}
|
||||
setMeetingForm({
|
||||
...meetingForm,
|
||||
start: newStart.toISOString().slice(0, 16),
|
||||
end: newEnd.toISOString().slice(0, 16)
|
||||
start: formatLocalDateTime(newStart),
|
||||
end: formatLocalDateTime(newEnd)
|
||||
});
|
||||
}
|
||||
}}
|
||||
@ -1228,8 +1258,8 @@ export default function VisionPage() {
|
||||
}
|
||||
setMeetingForm({
|
||||
...meetingForm,
|
||||
start: newStart.toISOString().slice(0, 16),
|
||||
end: newEnd.toISOString().slice(0, 16)
|
||||
start: formatLocalDateTime(newStart),
|
||||
end: formatLocalDateTime(newEnd)
|
||||
});
|
||||
}
|
||||
}}
|
||||
@ -1260,7 +1290,7 @@ export default function VisionPage() {
|
||||
newEnd.setHours(currentEnd.getHours(), currentEnd.getMinutes());
|
||||
}
|
||||
}
|
||||
setMeetingForm({ ...meetingForm, end: newEnd.toISOString().slice(0, 16) });
|
||||
setMeetingForm({ ...meetingForm, end: formatLocalDateTime(newEnd) });
|
||||
}
|
||||
}}
|
||||
dateFormat="dd/MM/yyyy"
|
||||
@ -1279,7 +1309,7 @@ export default function VisionPage() {
|
||||
const currentEnd = getDateFromString(meetingForm.end) || new Date();
|
||||
const newEnd = new Date(currentEnd);
|
||||
newEnd.setHours(date.getHours(), date.getMinutes());
|
||||
setMeetingForm({ ...meetingForm, end: newEnd.toISOString().slice(0, 16) });
|
||||
setMeetingForm({ ...meetingForm, end: formatLocalDateTime(newEnd) });
|
||||
}
|
||||
}}
|
||||
showTimeSelect
|
||||
|
||||
Loading…
Reference in New Issue
Block a user