diff --git a/src/components/Schedule/Pages/ScheduleTab.astro b/src/components/Schedule/Pages/ScheduleTab.astro index 38ba55f..763429c 100644 --- a/src/components/Schedule/Pages/ScheduleTab.astro +++ b/src/components/Schedule/Pages/ScheduleTab.astro @@ -12,29 +12,29 @@ interface Props { const lang = getLangFromUrl(Astro.url); const { schedule, rooms } = Astro.props; -const calcSlotsTaken = (s, tsr, ts_idx) => { +const calcSlotsTaken = (timeSlots, tsr, ts_idx) => { const endDate = new Date(tsr.session.endsAt); endDate.setSeconds(0) endDate.setMilliseconds(0) //Calculate the space to take (how many timeSlot takes this session (until a service session)) let session_len = 1; let last_is_service = false; - for (let i = ts_idx+1; i < s.timeSlots.length; i++){ + for (let i = ts_idx+1; i < timeSlots.length; i++){ //No sessions - if (s.timeSlots[i].rooms.length == 0) continue + if (timeSlots[i].rooms.length == 0) continue //Take time from one of the sessions //Get next start date - const next_date = new Date(s.timeSlots[i].rooms[0].session.startsAt) + const next_date = new Date(timeSlots[i].rooms[0].session.startsAt) next_date.setSeconds(0) next_date.setMilliseconds(0) //If it's a service session, can't take this space - if (s.timeSlots[i].rooms.some( (tsr) => tsr.session.isServiceSession)){ + if (timeSlots[i].rooms.some( (tsr) => tsr.session.isServiceSession)){ last_is_service = true continue //We need to check if replicate this session for the next timeSlot that is not a service session } if (last_is_service){ //We stopped at a service session and need to check if replicate this session in next timeSlots if (next_date < endDate){ - s.timeSlots[i].rooms.push(tsr) //Replicate + timeSlots[i].rooms.push(tsr) //Replicate } break } @@ -48,13 +48,15 @@ const calcSlotsTaken = (s, tsr, ts_idx) => { return session_len } + const isServiceTimeSlot = (ts) => ts.rooms.some((tsr) => tsr.session.isServiceSession); ---