cal.pub0.org/components/ui/WeekdaySelect.tsx

39 lines
1.4 KiB
TypeScript
Raw Normal View History

2021-06-14 18:53:20 +00:00
import React, {useState} from "react";
export const WeekdaySelect = (props) => {
const [ activeDays, setActiveDays ] = useState([false, true, true, true, true, true, false]);
const days = [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ];
const toggleDay = (e, idx: number) => {
e.preventDefault();
activeDays[idx] = !activeDays[idx];
console.log(activeDays);
setActiveDays([].concat(activeDays));
}
return (
<div className="weekdaySelect">
<div className="inline-flex">
{days.map( (day, idx) => activeDays[idx] ?
<button key={idx} onClick={(e) => toggleDay(e, idx)}
style={ {"marginLeft": "-2px"} }
className={`
active focus:outline-none border-2 border-blue-500 px-2 py-1 rounded
${activeDays[idx+1] ? 'rounded-r-none': ''}
${activeDays[idx-1] ? 'rounded-l-none': ''}
${idx === 0 ? 'rounded-l' : ''}
${idx === days.length-1 ? 'rounded-r' : ''}
`}>
{day}
</button>
:
<button key={idx} onClick={(e) => toggleDay(e, idx)}
style={ {"marginTop": "1px", "marginBottom": "1px"} }
className={`border focus:outline-none px-2 py-1 rounded-none ${idx === 0 ? 'rounded-l' : 'border-l-0'} ${idx === days.length-1 ? 'rounded-r' : ''}`}>
{day}
</button>
)}
</div>
</div>);
}