tests
This commit is contained in:
parent
17de4fa65a
commit
7864fe058e
@ -44,24 +44,14 @@ const USER_COLORS = [
|
|||||||
|
|
||||||
const expandOvernightAttendances = (entries) => {
|
const expandOvernightAttendances = (entries) => {
|
||||||
return entries.map((entry) => {
|
return entries.map((entry) => {
|
||||||
const start =
|
if (entry.start_time && !entry.end_time) {
|
||||||
entry.start_time ??
|
|
||||||
entry.startTime ??
|
|
||||||
'';
|
|
||||||
|
|
||||||
const end =
|
|
||||||
entry.end_time ??
|
|
||||||
entry.endTime ??
|
|
||||||
'';
|
|
||||||
|
|
||||||
if (start && !end) {
|
|
||||||
return {
|
return {
|
||||||
...entry,
|
...entry,
|
||||||
end_time: '24:00:00',
|
end_time: '24:00:00',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!start && end) {
|
if (!entry.start_time && entry.end_time) {
|
||||||
return {
|
return {
|
||||||
...entry,
|
...entry,
|
||||||
start_time: '00:00:00',
|
start_time: '00:00:00',
|
||||||
@ -439,8 +429,10 @@ const WeeklySummaryPage = ({ userId }) => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Sur mobile, le planning possède sa propre hauteur
|
* Sur mobile, la hauteur du conteneur est volontairement
|
||||||
* visible et son propre scroll.
|
* limitée afin que le contenu interne puisse défiler.
|
||||||
|
*
|
||||||
|
* On ne calcule donc pas availableScheduleHeight ici.
|
||||||
*/
|
*/
|
||||||
if (window.innerWidth < 768) {
|
if (window.innerWidth < 768) {
|
||||||
return;
|
return;
|
||||||
@ -584,11 +576,11 @@ const WeeklySummaryPage = ({ userId }) => {
|
|||||||
: 'endTime';
|
: 'endTime';
|
||||||
|
|
||||||
const value =
|
const value =
|
||||||
attendance[key] ??
|
attendance[key] ||
|
||||||
attendance[legacyKey] ??
|
attendance[legacyKey] ||
|
||||||
'';
|
'';
|
||||||
|
|
||||||
return String(value).slice(0, 5);
|
return value.slice(0, 5);
|
||||||
};
|
};
|
||||||
|
|
||||||
const getMinutes = (time) => {
|
const getMinutes = (time) => {
|
||||||
@ -980,48 +972,6 @@ const WeeklySummaryPage = ({ userId }) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
* ------------------------------------------------------------
|
|
||||||
* Créneaux réellement affichables
|
|
||||||
* ------------------------------------------------------------
|
|
||||||
*
|
|
||||||
* Cette fonction est utilisée par le rendu mobile ET permet
|
|
||||||
* de garantir que les créneaux sont filtrés de la même manière.
|
|
||||||
*/
|
|
||||||
|
|
||||||
const getRenderableAttendancesForDay = (
|
|
||||||
dayAttendances,
|
|
||||||
) => {
|
|
||||||
return getSelectedUserAttendances(
|
|
||||||
dayAttendances,
|
|
||||||
)
|
|
||||||
.map((attendance, index) => ({
|
|
||||||
attendance,
|
|
||||||
index,
|
|
||||||
start: getMinutes(
|
|
||||||
getTimeValue(
|
|
||||||
attendance,
|
|
||||||
'start_time',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
end: getMinutes(
|
|
||||||
getTimeValue(
|
|
||||||
attendance,
|
|
||||||
'end_time',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
}))
|
|
||||||
.filter(
|
|
||||||
({
|
|
||||||
start,
|
|
||||||
end,
|
|
||||||
}) =>
|
|
||||||
start !== null &&
|
|
||||||
end !== null &&
|
|
||||||
end > start,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ------------------------------------------------------------
|
* ------------------------------------------------------------
|
||||||
* États
|
* États
|
||||||
@ -1071,6 +1021,14 @@ const WeeklySummaryPage = ({ userId }) => {
|
|||||||
* ------------------------------------------------------------
|
* ------------------------------------------------------------
|
||||||
* Hauteur du planning
|
* Hauteur du planning
|
||||||
* ------------------------------------------------------------
|
* ------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Desktop :
|
||||||
|
* la hauteur calculée doit tenir dans la Card.
|
||||||
|
*
|
||||||
|
* Mobile :
|
||||||
|
* chaque heure possède une hauteur fixe confortable.
|
||||||
|
* Le planning est donc volontairement plus haut que
|
||||||
|
* sa fenêtre visible et devient réellement scrollable.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const scheduleHeight = isMobile
|
const scheduleHeight = isMobile
|
||||||
@ -1629,13 +1587,41 @@ const WeeklySummaryPage = ({ userId }) => {
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
getRenderableAttendancesForDay(
|
getSelectedUserAttendances(
|
||||||
getAttendancesForDay(
|
getAttendancesForDay(
|
||||||
weekDays[
|
weekDays[
|
||||||
selectedDayIndex
|
selectedDayIndex
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
).map(
|
)
|
||||||
|
.map(
|
||||||
|
(attendance, index) => ({
|
||||||
|
attendance,
|
||||||
|
index,
|
||||||
|
start: getMinutes(
|
||||||
|
getTimeValue(
|
||||||
|
attendance,
|
||||||
|
'start_time',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
end: getMinutes(
|
||||||
|
getTimeValue(
|
||||||
|
attendance,
|
||||||
|
'end_time',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
.filter(
|
||||||
|
({
|
||||||
|
start,
|
||||||
|
end,
|
||||||
|
}) =>
|
||||||
|
start !== null &&
|
||||||
|
end !== null &&
|
||||||
|
end > start,
|
||||||
|
)
|
||||||
|
.map(
|
||||||
({
|
({
|
||||||
attendance,
|
attendance,
|
||||||
start,
|
start,
|
||||||
@ -1662,7 +1648,9 @@ const WeeklySummaryPage = ({ userId }) => {
|
|||||||
)}-${start}-${end}-${index}`
|
)}-${start}-${end}-${index}`
|
||||||
}
|
}
|
||||||
className="absolute left-0 right-0 overflow-hidden rounded-sm border border-blue-600/30 bg-blue-500/80"
|
className="absolute left-0 right-0 overflow-hidden rounded-sm border border-blue-600/30 bg-blue-500/80"
|
||||||
style={style}
|
style={
|
||||||
|
style
|
||||||
|
}
|
||||||
>
|
>
|
||||||
<div className="p-1 text-xs text-white">
|
<div className="p-1 text-xs text-white">
|
||||||
{formatSegmentTime(
|
{formatSegmentTime(
|
||||||
@ -1875,9 +1863,40 @@ const WeeklySummaryPage = ({ userId }) => {
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
getRenderableAttendancesForDay(
|
getSelectedUserAttendances(
|
||||||
dayAttendances,
|
dayAttendances,
|
||||||
).map(
|
)
|
||||||
|
.map(
|
||||||
|
(
|
||||||
|
attendance,
|
||||||
|
index,
|
||||||
|
) => ({
|
||||||
|
attendance,
|
||||||
|
index,
|
||||||
|
start: getMinutes(
|
||||||
|
getTimeValue(
|
||||||
|
attendance,
|
||||||
|
'start_time',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
end: getMinutes(
|
||||||
|
getTimeValue(
|
||||||
|
attendance,
|
||||||
|
'end_time',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
.filter(
|
||||||
|
({
|
||||||
|
start,
|
||||||
|
end,
|
||||||
|
}) =>
|
||||||
|
start !== null &&
|
||||||
|
end !== null &&
|
||||||
|
end > start,
|
||||||
|
)
|
||||||
|
.map(
|
||||||
({
|
({
|
||||||
attendance,
|
attendance,
|
||||||
start,
|
start,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user