Add support for selecting all days and months in RepeatSection
This commit is contained in:
parent
ba75962fc2
commit
e78008baea
1 changed files with 77 additions and 37 deletions
|
@ -1,5 +1,6 @@
|
||||||
import {
|
import {
|
||||||
Box,
|
Box,
|
||||||
|
Button,
|
||||||
Card,
|
Card,
|
||||||
Checkbox,
|
Checkbox,
|
||||||
Chip,
|
Chip,
|
||||||
|
@ -53,6 +54,30 @@ const MONTH_WITH_NO_31_DAYS = [
|
||||||
'september',
|
'september',
|
||||||
'november',
|
'november',
|
||||||
]
|
]
|
||||||
|
const MONTHS = [
|
||||||
|
'january',
|
||||||
|
'february',
|
||||||
|
'march',
|
||||||
|
'april',
|
||||||
|
'may',
|
||||||
|
'june',
|
||||||
|
'july',
|
||||||
|
'august',
|
||||||
|
'september',
|
||||||
|
'october',
|
||||||
|
'november',
|
||||||
|
'december',
|
||||||
|
]
|
||||||
|
|
||||||
|
const DAYS = [
|
||||||
|
'monday',
|
||||||
|
'tuesday',
|
||||||
|
'wednesday',
|
||||||
|
'thursday',
|
||||||
|
'friday',
|
||||||
|
'saturday',
|
||||||
|
'sunday',
|
||||||
|
]
|
||||||
const RepeatOnSections = ({
|
const RepeatOnSections = ({
|
||||||
frequencyType,
|
frequencyType,
|
||||||
frequency,
|
frequency,
|
||||||
|
@ -142,19 +167,9 @@ const RepeatOnSections = ({
|
||||||
'--ListItem-radius': '20px',
|
'--ListItem-radius': '20px',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{[
|
{DAYS.map(item => (
|
||||||
'monday',
|
|
||||||
'tuesday',
|
|
||||||
'wednesday',
|
|
||||||
'thursday',
|
|
||||||
'friday',
|
|
||||||
'saturday',
|
|
||||||
'sunday',
|
|
||||||
].map(item => (
|
|
||||||
<ListItem key={item}>
|
<ListItem key={item}>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
// disabled={index === 0}
|
|
||||||
|
|
||||||
checked={frequencyMetadata?.days?.includes(item) || false}
|
checked={frequencyMetadata?.days?.includes(item) || false}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
const newDaysOfTheWeek = frequencyMetadata['days'] || []
|
const newDaysOfTheWeek = frequencyMetadata['days'] || []
|
||||||
|
@ -180,6 +195,31 @@ const RepeatOnSections = ({
|
||||||
</ListItem>
|
</ListItem>
|
||||||
))}
|
))}
|
||||||
</List>
|
</List>
|
||||||
|
<Button
|
||||||
|
size='sm'
|
||||||
|
variant='soft'
|
||||||
|
color='neutral'
|
||||||
|
checked={frequencyMetadata?.days?.length === 7}
|
||||||
|
onClick={() => {
|
||||||
|
if (frequencyMetadata?.days?.length === 7) {
|
||||||
|
onFrequencyMetadataUpdate({
|
||||||
|
...frequencyMetadata,
|
||||||
|
days: [],
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
onFrequencyMetadataUpdate({
|
||||||
|
...frequencyMetadata,
|
||||||
|
days: DAYS.map(item => item),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
overlay
|
||||||
|
disableIcon
|
||||||
|
>
|
||||||
|
{frequencyMetadata?.days?.length === 7
|
||||||
|
? 'Unselect All'
|
||||||
|
: 'Select All'}
|
||||||
|
</Button>
|
||||||
</Card>
|
</Card>
|
||||||
</Grid>
|
</Grid>
|
||||||
{timePickerComponent}
|
{timePickerComponent}
|
||||||
|
@ -207,35 +247,10 @@ const RepeatOnSections = ({
|
||||||
'--ListItem-radius': '20px',
|
'--ListItem-radius': '20px',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{[
|
{MONTHS.map(item => (
|
||||||
'january',
|
|
||||||
'february',
|
|
||||||
'march',
|
|
||||||
'april',
|
|
||||||
'may',
|
|
||||||
'june',
|
|
||||||
'july',
|
|
||||||
'august',
|
|
||||||
'september',
|
|
||||||
'october',
|
|
||||||
'november',
|
|
||||||
'december',
|
|
||||||
].map(item => (
|
|
||||||
<ListItem key={item}>
|
<ListItem key={item}>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
// disabled={index === 0}
|
|
||||||
checked={frequencyMetadata?.months?.includes(item)}
|
checked={frequencyMetadata?.months?.includes(item)}
|
||||||
// checked={months[item] || false}
|
|
||||||
// onClick={() => {
|
|
||||||
// const newMonthsOfTheYear = {
|
|
||||||
// ...monthsOfTheYear,
|
|
||||||
// }
|
|
||||||
// newMonthsOfTheYear[item] = !newMonthsOfTheYear[item]
|
|
||||||
// onFrequencyMetadataUpdate({
|
|
||||||
// months: newMonthsOfTheYear,
|
|
||||||
// })
|
|
||||||
// setMonthsOfTheYear(newMonthsOfTheYear)
|
|
||||||
// }}
|
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
const newMonthsOfTheYear =
|
const newMonthsOfTheYear =
|
||||||
frequencyMetadata['months'] || []
|
frequencyMetadata['months'] || []
|
||||||
|
@ -263,6 +278,31 @@ const RepeatOnSections = ({
|
||||||
</ListItem>
|
</ListItem>
|
||||||
))}
|
))}
|
||||||
</List>
|
</List>
|
||||||
|
<Button
|
||||||
|
size='sm'
|
||||||
|
variant='soft'
|
||||||
|
color='neutral'
|
||||||
|
checked={frequencyMetadata?.months?.length === 12}
|
||||||
|
onClick={() => {
|
||||||
|
if (frequencyMetadata?.months?.length === 12) {
|
||||||
|
onFrequencyMetadataUpdate({
|
||||||
|
...frequencyMetadata,
|
||||||
|
months: [],
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
onFrequencyMetadataUpdate({
|
||||||
|
...frequencyMetadata,
|
||||||
|
months: MONTHS.map(item => item),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
overlay
|
||||||
|
disableIcon
|
||||||
|
>
|
||||||
|
{frequencyMetadata?.months?.length === 12
|
||||||
|
? 'Unselect All'
|
||||||
|
: 'Select All'}
|
||||||
|
</Button>
|
||||||
</Card>
|
</Card>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Box
|
<Box
|
||||||
|
|
Loading…
Add table
Reference in a new issue