Skip to content

Commit

Permalink
moment/luxon doing same-day range. fixes #4686
Browse files Browse the repository at this point in the history
  • Loading branch information
arshaw committed Aug 6, 2019
1 parent e6545c1 commit be4df52
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 4 deletions.
10 changes: 10 additions & 0 deletions packages/__tests__/src/datelib/luxon.js
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,16 @@ describe('luxon plugin', function() {
expect(s).toEqual('3 September, 2018 asdf - 5 October, 2019 asdf')
})

it('renders the same if same day', function() {
let calendar = new Calendar(document.createElement('div'), {
plugins: PLUGINS
})
let s

s = calendar.formatRange('2018-09-03T00:00:00', '2018-09-03T23:59:59', 'MMMM d yyyy')
expect(s).toEqual('September 3 2018')
})

it('inherits defaultRangeSeparator', function() {
let calendar = new Calendar(document.createElement('div'), {
plugins: PLUGINS,
Expand Down
10 changes: 10 additions & 0 deletions packages/__tests__/src/datelib/moment.js
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,16 @@ describe('moment plugin', function() {
expect(s).toEqual('3 September, 2018 nice - 5 October, 2019 nice')
})

it('renders the same if same day', function() {
let calendar = new Calendar(document.createElement('div'), {
plugins: PLUGINS
})
let s

s = calendar.formatRange('2018-09-03T00:00:00', '2018-09-03T23:59:59', 'MMM Do YY')
expect(s).toEqual('Sep 3rd 18')
})

it('inherits defaultRangeSeparator', function() {
let calendar = new Calendar(document.createElement('div'), {
plugins: PLUGINS,
Expand Down
16 changes: 14 additions & 2 deletions packages/luxon/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,12 @@ function parseCmdStr(cmdStr: string): CmdParts {
}
}

function formatRange(cmd: CmdParts, formatStart: (cmdStr: string) => string, formatEnd: (cmdStr: string) => string, separator: string): string {
function formatRange(
cmd: CmdParts,
formatStart: (cmdStr: string) => string,
formatEnd: (cmdStr: string) => string,
separator: string
): string {
if (cmd.middle) {
let startHead = formatStart(cmd.head)
let startMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator)
Expand All @@ -153,5 +158,12 @@ function formatRange(cmd: CmdParts, formatStart: (cmdStr: string) => string, for
}
}

return formatStart(cmd.whole) + separator + formatEnd(cmd.whole)
let startWhole = formatStart(cmd.whole)
let endWhole = formatEnd(cmd.whole)

if (startWhole === endWhole) {
return startWhole
} else {
return startWhole + separator + endWhole
}
}
16 changes: 14 additions & 2 deletions packages/moment/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,12 @@ function parseCmdStr(cmdStr: string): CmdParts {
}
}

function formatRange(cmd: CmdParts, formatStart: (cmdStr: string) => string, formatEnd: (cmdStr: string) => string, separator: string): string {
function formatRange(
cmd: CmdParts,
formatStart: (cmdStr: string) => string,
formatEnd: (cmdStr: string) => string,
separator: string
): string {
if (cmd.middle) {
let startHead = formatStart(cmd.head)
let startMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator)
Expand All @@ -140,5 +145,12 @@ function formatRange(cmd: CmdParts, formatStart: (cmdStr: string) => string, for
}
}

return formatStart(cmd.whole) + separator + formatEnd(cmd.whole)
let startWhole = formatStart(cmd.whole)
let endWhole = formatEnd(cmd.whole)

if (startWhole === endWhole) {
return startWhole
} else {
return startWhole + separator + endWhole
}
}

0 comments on commit be4df52

Please sign in to comment.