Skip to content

Commit

Permalink
fix: 🐛 Show the weekday on startpage if not today
Browse files Browse the repository at this point in the history
  • Loading branch information
whyer committed Dec 3, 2021
1 parent 3fbd08c commit df28066
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
39 changes: 39 additions & 0 deletions apps/skolplattformen-app/utils/__tests__/calendarHelpers.test.ts
Original file line number Diff line number Diff line change
@@ -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())
})
})
10 changes: 9 additions & 1 deletion apps/skolplattformen-app/utils/calendarHelpers.ts
Original file line number Diff line number Diff line change
@@ -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
}

0 comments on commit df28066

Please sign in to comment.