commit
b9fe558019
3 changed files with 23 additions and 27 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
import { useLazyQuery } from '@apollo/react-hooks'
|
import { useLazyQuery } from '@apollo/react-hooks'
|
||||||
import { makeStyles, ClickAwayListener } from '@material-ui/core'
|
import { makeStyles, ClickAwayListener } from '@material-ui/core'
|
||||||
import classnames from 'classnames'
|
import classnames from 'classnames'
|
||||||
import { format } from 'date-fns/fp'
|
import { format, set } from 'date-fns/fp'
|
||||||
import FileSaver from 'file-saver'
|
import FileSaver from 'file-saver'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
import React, { useState, useCallback } from 'react'
|
import React, { useState, useCallback } from 'react'
|
||||||
|
|
@ -280,7 +280,15 @@ const LogsDownloaderPopover = ({
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<DateRangePicker
|
<DateRangePicker
|
||||||
maxDate={new Date()}
|
maxDate={set(
|
||||||
|
{
|
||||||
|
hours: 23,
|
||||||
|
minutes: 59,
|
||||||
|
seconds: 59,
|
||||||
|
milliseconds: 999
|
||||||
|
},
|
||||||
|
new Date()
|
||||||
|
)}
|
||||||
onRangeChange={handleRangeChange}
|
onRangeChange={handleRangeChange}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -178,9 +178,7 @@ const Calendar = ({ minDate, maxDate, handleSelect, ...props }) => {
|
||||||
{R.range(1, 8).map((row, key) => (
|
{R.range(1, 8).map((row, key) => (
|
||||||
<tr key={key}>
|
<tr key={key}>
|
||||||
{getRow(currentDisplayedMonth, row).map((day, key) => (
|
{getRow(currentDisplayedMonth, row).map((day, key) => (
|
||||||
<td
|
<td key={key} onClick={() => handleSelect(day)}>
|
||||||
key={key}
|
|
||||||
onClick={() => handleSelect(day, minDate, maxDate)}>
|
|
||||||
<Tile
|
<Tile
|
||||||
isDisabled={
|
isDisabled={
|
||||||
(maxDate && isAfter(maxDate, day)) ||
|
(maxDate && isAfter(maxDate, day)) ||
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
import { makeStyles } from '@material-ui/core/styles'
|
import { makeStyles } from '@material-ui/core/styles'
|
||||||
import classnames from 'classnames'
|
import classnames from 'classnames'
|
||||||
import {
|
import { compareAsc, differenceInDays, set } from 'date-fns/fp'
|
||||||
differenceInDays,
|
|
||||||
differenceInMonths,
|
|
||||||
isSameMonth,
|
|
||||||
set
|
|
||||||
} from 'date-fns/fp'
|
|
||||||
import React, { useState, useEffect } from 'react'
|
import React, { useState, useEffect } from 'react'
|
||||||
|
|
||||||
import Calendar from './Calendar'
|
import Calendar from './Calendar'
|
||||||
|
|
@ -29,27 +24,22 @@ const DateRangePicker = ({ minDate, maxDate, className, onRangeChange }) => {
|
||||||
|
|
||||||
const classes = useStyles()
|
const classes = useStyles()
|
||||||
|
|
||||||
const handleSelect = (day, minDate, maxDate) => {
|
const handleSelect = day => {
|
||||||
if (
|
if (
|
||||||
(maxDate && differenceInDays(maxDate, day) > 0) ||
|
(maxDate && compareAsc(maxDate, day) > 0) ||
|
||||||
(minDate && differenceInDays(day, minDate) > 0)
|
(minDate && differenceInDays(day, minDate) > 0)
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
if (from && !to && differenceInDays(day, from) > 0) {
|
if (from && !to) {
|
||||||
setTo(from)
|
if (differenceInDays(from, day) >= 0) {
|
||||||
setFrom(day)
|
setTo(
|
||||||
return
|
set({ hours: 23, minutes: 59, seconds: 59, milliseconds: 999 }, day)
|
||||||
}
|
)
|
||||||
|
} else {
|
||||||
if (
|
setTo(from)
|
||||||
from &&
|
setFrom(day)
|
||||||
!to &&
|
}
|
||||||
(isSameMonth(from, day) || differenceInMonths(from, day) > 0)
|
|
||||||
) {
|
|
||||||
setTo(
|
|
||||||
set({ hours: 23, minutes: 59, seconds: 59, milliseconds: 999 }, day)
|
|
||||||
)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue