I want an array of days to update to same start time and end time and update it a state variable. When i am mapping the array of days to the update state variable form. When checking the console logs. either only starttime updates or endtime or only 1 day is updated to the state variable
const daystime={
sunday: {
start: "3000",
end: "3000",
},
monday: {
start: "3000",
end: "3000",
},
tuesday: {
start: "3000",
end: "3000",
},
wednesday: {
start: "3000",
end: "3000",
},
thursday: {
start: "3000",
end: "3000",
},
friday: {
start: "3000",
end: "3000",
},
saturday: {
start: "3000",
end: "3000",
},
}
const [form, setForm] = React.useState(daystime);
const [singleStartTime, setSingleStartTime] = React.useState(new Date());
const [singleEndTime, setSingleEndTime] = React.useState(new Date());
useEffect(() => {
if(value==='Same Timing'){
let starttime='3000'
let endtime='3000'
if (singleStartTime._d) {
if(singleStartTime._d.getMinutes().toString().length<2)
starttime = singleStartTime._d.getHours().toString() +'0'+singleStartTime._d.getMinutes().toString();
else
starttime =singleStartTime._d.getHours().toString() +singleStartTime._d.getMinutes().toString();
days.map((day) => {
pass(day.title, "start", starttime);
return "";
});
}
if (singleEndTime._d) {
if(singleEndTime._d.getMinutes().toString().length<2)
endtime = singleEndTime._d.getHours().toString() +'0'+singleEndTime._d.getMinutes().toString();
else
endtime =singleEndTime._d.getHours().toString() +singleEndTime._d.getMinutes().toString();
days.map((day) => {
pass(day.title, "end", endtime);
return "";
});
}}
}, [singleStartTime, singleEndTime, days]);
const pass = (day, side, time) => {
setForm({
...form,
[`${day}`]: { ...form[`${day}`], [`${side}`]: time },
});
};