function section(title,list,dateStr){
const s=document.createElement('section');
s.className='w91-time-section';
s.innerHTML=`
${title}
`;
const grid=document.createElement('div');
grid.className='w91-time-grid';
list.forEach((slot)=>{
const time=slot.time;
const idx=slot.sourceIndex;
const past=isPast(dateStr,time);
const label=document.createElement('label');
label.className='w91-time-radio'+(past?' is-disabled':'');
const radio=document.createElement('input');
radio.type='radio';
radio.name='w91-time';
radio.value=time;
radio.disabled=past;
if(!past && time===selectedTime){
radio.checked=true;
label.classList.add('is-selected');
}
const span=document.createElement('span');
span.textContent=time+(past?' · passé':'');
label.append(radio,span);
grid.appendChild(label);
if(past) return;
radio.addEventListener('change',()=>{
if(!radio.checked) return;
selectedTime=time;
checks.forEach((cb,j)=>{
const shouldBeChecked=(j===idx);
if(cb.checked!==shouldBeChecked){
cb.click();
}
});
hidden.value=time;
trigger(hidden,'input');
trigger(hidden,'change');
ui.querySelectorAll('.w91-time-radio').forEach(x=>{
x.classList.remove('is-selected');
});
label.classList.add('is-selected');
err.classList.remove('show');
/* Message durée 1h30 :
uniquement vendredi/samedi + créneau du soir */
const durationNote=sectionsWrap.querySelector('.w91-duration-note');
const dow=dayOfWeek(dateStr);
const isFridaySaturday=(dow===5 || dow===6);
const isEveningTime=[
'19h30',
'20h00',
'20h30',
'21h00',
'21h30',
'22h00'
].includes(time);
if(durationNote){
durationNote.hidden=!(isFridaySaturday && isEveningTime);
}
/* Avertissement dernier créneau */
const info=lateInfo(dateStr,time);
if(info){
lateWarning.innerHTML=`Attention : la cuisine ferme à ${info.close}. Pour ce créneau, merci d’arriver à l’heure. En cas de retard, prévenez le restaurant au ${(window.SMARTLY_W91&&SMARTLY_W91.phone)||'06 66 91 40 33'}. Sans information de votre part, le service ne pourra pas être garanti.`;
lateWarning.classList.add('is-visible');
}else{
lateWarning.innerHTML='';
lateWarning.classList.remove('is-visible');
}
});
});
s.appendChild(grid);
/* Le message appartient visuellement uniquement au service du soir */
if(title==='Service du soir'){
const durationNote=document.createElement('div');
durationNote.className='w91-duration-note';
durationNote.hidden=true;
durationNote.innerHTML=`
Réservations limitées à 1h30
Le vendredi soir et le samedi soir, les tables sont réservées pour une durée de 1h30 afin de garantir le bon déroulement du service. Merci pour votre compréhension.
`;
s.appendChild(durationNote);
}
return s;
}
https://west91.fr/