import React, { useState } from 'react'; import { DatePicker, Radio } from 'antd'; import moment from 'moment'; import { getRange } from 'components/PrometheusChart/utils/utils'; const { RangePicker } = DatePicker; function useRangeSelect(initialRange) { const [groupIndex, setGroupIndex] = useState(0); const [range, setRange] = useState(initialRange); const handleGroupChange = (e) => { const val = e.target.value; setGroupIndex(val); setRange(getRange(val)); }; const handleRangePickerChange = (dates) => { setGroupIndex(4); setRange(dates); }; const Selector = () => ( {t('Last Hour')} {t('Last Day')} {t('Last 7 Days')} {t('Last 2 Weeks')} ); return [range, Selector, groupIndex, setRange]; } export default useRangeSelect; function disableTime(pickRange) { const now = moment(); if (now.isSame(pickRange, 'day')) { if (now.isSame(pickRange, 'hour')) { if (now.isSame(pickRange, 'minutes')) { return { disabledHours: () => filterRange(now.hour() + 1, 24), disabledMinutes: () => filterRange(now.minute() + 1, 60), disabledSeconds: () => filterRange(now.second() + 1, 60), }; } return { disabledHours: () => filterRange(now.hour() + 1, 24), disabledMinutes: () => filterRange(now.minute() + 1, 60), }; } return { disabledHours: () => filterRange(now.hour() + 1, 24), }; } } function disabledDate(current) { // Can not select days after today return current > moment().endOf('day'); } function filterRange(start, end) { const result = []; for (let i = start; i < end; i++) { result.push(i); } return result; }