fix: 🐛 Show the weekday on startpage if not today

This commit is contained in:
Andreas Eriksson 2021-12-03 21:12:16 +01:00
parent 3fbd08c794
commit df2806648a
3 changed files with 49 additions and 2 deletions

View File

@ -172,7 +172,7 @@ export const ChildListItem = ({
/>
</View>
</View>
{currentDate.hour() > 17 && currentDate.hour() <= 23 ? (
{moment().weekday() !== currentDate.weekday() ? (
<Text category="c2" style={styles.weekday}>
{capitalizeFirstLetter(currentDate.format('dddd'))}
</Text>

View File

@ -0,0 +1,39 @@
import moment from 'moment'
import { getMeaningfulStartingDate } from '../calendarHelpers'
const tuesdayMorning = moment('2021-11-30T08:20:00+0100')
const tuesdayEvening = moment('2021-11-30T19:20:26+0100')
const wednesdayEvening = moment('2021-12-01T19:20:26+0100')
const fridayEvening = moment('2021-12-03T19:20:26+0100')
const saturdayEvening = moment('2021-12-04T19:20:26+0100')
const sundayEvening = moment('2021-12-05T19:20:26+0100')
const mondayEvening = moment('2021-12-06T19:20:26+0100')
describe('getMeaningfulStartingDate on weekends', () => {
it('should give next monday if on friday evening', () => {
const startDate = getMeaningfulStartingDate(fridayEvening)
expect(startDate.toISOString()).toEqual(mondayEvening.toISOString())
})
it('should give next monday if on saturday', () => {
const startDate = getMeaningfulStartingDate(saturdayEvening)
expect(startDate.toISOString()).toEqual(mondayEvening.toISOString())
})
it('should give next monday if on sunday', () => {
const startDate = getMeaningfulStartingDate(sundayEvening)
expect(startDate.toISOString()).toEqual(mondayEvening.toISOString())
})
})
describe('getMeaningfulStartingDate on weekdays', () => {
it('should give next day if on tuesday evening', () => {
const startDate = getMeaningfulStartingDate(tuesdayEvening)
expect(startDate.toISOString()).toEqual(wednesdayEvening.toISOString())
})
it('should give same day if on tuesday morning', () => {
const startDate = getMeaningfulStartingDate(tuesdayMorning)
expect(startDate.toISOString()).toEqual(tuesdayMorning.toISOString())
})
})

View File

@ -1,9 +1,17 @@
import moment from 'moment'
export const getMeaningfulStartingDate = (date = moment()) => {
const originalDate = date.clone()
// are we on the evening?
if (date.hour() > 17) date = date.add('1', 'day')
// are we on the weekend
if (date.isoWeekday() > 5) date = date.add(5, 'days').startOf('isoWeek')
if (date.isoWeekday() > 5) {
date = date.add(5, 'days').startOf('isoWeek')
date
.hour(originalDate.hour())
.minute(originalDate.minute())
.second(originalDate.second())
}
return date
}