Merge pull request #581 from kolplattformen/feat/fix-date-problems
fix: 🐛 Show the weekday on startpage if not today
This commit is contained in:
commit
09558115d1
|
@ -172,7 +172,7 @@ export const ChildListItem = ({
|
||||||
/>
|
/>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
{currentDate.hour() > 17 && currentDate.hour() <= 23 ? (
|
{moment().weekday() !== currentDate.weekday() ? (
|
||||||
<Text category="c2" style={styles.weekday}>
|
<Text category="c2" style={styles.weekday}>
|
||||||
{capitalizeFirstLetter(currentDate.format('dddd'))}
|
{capitalizeFirstLetter(currentDate.format('dddd'))}
|
||||||
</Text>
|
</Text>
|
||||||
|
|
|
@ -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())
|
||||||
|
})
|
||||||
|
})
|
|
@ -1,9 +1,17 @@
|
||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
|
|
||||||
export const getMeaningfulStartingDate = (date = moment()) => {
|
export const getMeaningfulStartingDate = (date = moment()) => {
|
||||||
|
const originalDate = date.clone()
|
||||||
// are we on the evening?
|
// are we on the evening?
|
||||||
if (date.hour() > 17) date = date.add('1', 'day')
|
if (date.hour() > 17) date = date.add('1', 'day')
|
||||||
// are we on the weekend
|
// 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
|
return date
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue