From 4ff85804941fa61168c0596d8c81430671d830b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BE=99=E9=A3=8E?= <455947455@qq.com> Date: Fri, 24 Dec 2021 18:13:25 +0800 Subject: [PATCH 1/4] fix: timePicker confirm event is invalid --- src/time-picker/TimePicker.tsx | 5 +++- src/time-picker/TimeRangePicker.tsx | 5 +++- src/time-picker/panel/TimePickerPanel.tsx | 24 ++++++++++++++++--- .../panel/TimePickerRangePanel.tsx | 20 +++++++++++++--- 4 files changed, 46 insertions(+), 8 deletions(-) diff --git a/src/time-picker/TimePicker.tsx b/src/time-picker/TimePicker.tsx index 4ef460222..4551e3461 100644 --- a/src/time-picker/TimePicker.tsx +++ b/src/time-picker/TimePicker.tsx @@ -78,7 +78,10 @@ const TimePicker = forwardRefWithStatics( hideDisabledTime={hideDisabledTime} isFooterDisplay={true} onChange={onChange} - handleConfirmClick={() => setPanelShow(false)} + handleConfirmClick={(value) => { + onChange(dayjs(value).format(format)); + setPanelShow(false); + }} value={value} /> } diff --git a/src/time-picker/TimeRangePicker.tsx b/src/time-picker/TimeRangePicker.tsx index d3bc23dfc..d237f6079 100644 --- a/src/time-picker/TimeRangePicker.tsx +++ b/src/time-picker/TimeRangePicker.tsx @@ -67,7 +67,10 @@ const TimeRangePicker: FC = (props) => { isFooterDisplay={true} value={value} onChange={onChange} - handleConfirmClick={() => setPanelShow(false)} + handleConfirmClick={(value) => { + onChange(value); + setPanelShow(false); + }} /> } disabled={disabled as boolean} diff --git a/src/time-picker/panel/TimePickerPanel.tsx b/src/time-picker/panel/TimePickerPanel.tsx index ce4133522..a296be571 100644 --- a/src/time-picker/panel/TimePickerPanel.tsx +++ b/src/time-picker/panel/TimePickerPanel.tsx @@ -1,4 +1,4 @@ -import React, { FC } from 'react'; +import React, { FC, useMemo } from 'react'; import dayjs from 'dayjs'; import SinglePanel, { SinglePanelProps } from './SinglePanel'; @@ -10,7 +10,7 @@ import { DEFAULT_STEPS, DEFAULT_FORMAT, useTimePickerTextConfig } from '../const export interface TimePickerPanelProps extends SinglePanelProps { // 是否展示footer isFooterDisplay?: boolean; - handleConfirmClick?: () => void; + handleConfirmClick: (defaultValue: dayjs.Dayjs) => void; } const TimePickerPanel: FC = (props) => { @@ -29,6 +29,18 @@ const TimePickerPanel: FC = (props) => { const panelClassName = `${classPrefix}-time-picker__panel`; const showNowTimeBtn = !!steps.filter((v) => v > 1).length; + const defaultValue = useMemo(() => { + const isStepsSet = !!steps.filter((v) => v > 1).length; + + if (value) { + return dayjs(value, format); + } + if (isStepsSet) { + return dayjs().hour(0).minute(0).second(0); + } + return dayjs(); + }, [value, format, steps]); + return (
@@ -36,7 +48,13 @@ const TimePickerPanel: FC = (props) => {
{isFooterDisplay ? (
- {!showNowTimeBtn ? ( diff --git a/src/time-picker/panel/TimePickerRangePanel.tsx b/src/time-picker/panel/TimePickerRangePanel.tsx index 56c0ca0b6..9640a8c15 100644 --- a/src/time-picker/panel/TimePickerRangePanel.tsx +++ b/src/time-picker/panel/TimePickerRangePanel.tsx @@ -1,4 +1,4 @@ -import React, { FC } from 'react'; +import React, { FC, useMemo } from 'react'; import classNames from 'classnames'; import dayjs from 'dayjs'; @@ -14,7 +14,7 @@ import { TdTimeRangePickerProps } from '../type'; export interface TimeRangePickerPanelProps extends Omit { // 是否展示footer isFooterDisplay?: boolean; - handleConfirmClick?: () => void; + handleConfirmClick?: (value) => void; value: TdTimeRangePickerProps['value']; onChange: TdTimeRangePickerProps['onChange']; } @@ -45,6 +45,14 @@ const TimePickerPanel: FC = (props) => { } }; + const defaultValue = useMemo(() => { + if (value.length === 0) { + return [dayjs().format(format), dayjs().format(format)]; + } + return value; + }, [value, format]); + + console.log(defaultValue); return (
@@ -65,7 +73,13 @@ const TimePickerPanel: FC = (props) => {
{isFooterDisplay ? (
-
From a6b637f55c6c879ebee72dc7955b37ee4a6e3aac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BE=99=E9=A3=8E?= <455947455@qq.com> Date: Fri, 24 Dec 2021 18:16:56 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/time-picker/panel/TimePickerRangePanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/time-picker/panel/TimePickerRangePanel.tsx b/src/time-picker/panel/TimePickerRangePanel.tsx index 9640a8c15..ec65fb77c 100644 --- a/src/time-picker/panel/TimePickerRangePanel.tsx +++ b/src/time-picker/panel/TimePickerRangePanel.tsx @@ -46,7 +46,7 @@ const TimePickerPanel: FC = (props) => { }; const defaultValue = useMemo(() => { - if (value.length === 0) { + if (value && value.length === 0) { return [dayjs().format(format), dayjs().format(format)]; } return value; From 1ca25f6c4e39f58960d399eefb9fc2b447cf75bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BE=99=E9=A3=8E?= <455947455@qq.com> Date: Fri, 24 Dec 2021 18:27:49 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/time-picker/panel/TimePickerPanel.tsx | 1 - src/time-picker/panel/TimePickerRangePanel.tsx | 1 - 2 files changed, 2 deletions(-) diff --git a/src/time-picker/panel/TimePickerPanel.tsx b/src/time-picker/panel/TimePickerPanel.tsx index a296be571..c61e93be3 100644 --- a/src/time-picker/panel/TimePickerPanel.tsx +++ b/src/time-picker/panel/TimePickerPanel.tsx @@ -31,7 +31,6 @@ const TimePickerPanel: FC = (props) => { const defaultValue = useMemo(() => { const isStepsSet = !!steps.filter((v) => v > 1).length; - if (value) { return dayjs(value, format); } diff --git a/src/time-picker/panel/TimePickerRangePanel.tsx b/src/time-picker/panel/TimePickerRangePanel.tsx index ec65fb77c..f14674809 100644 --- a/src/time-picker/panel/TimePickerRangePanel.tsx +++ b/src/time-picker/panel/TimePickerRangePanel.tsx @@ -52,7 +52,6 @@ const TimePickerPanel: FC = (props) => { return value; }, [value, format]); - console.log(defaultValue); return (
From 8fd934c45012f93630eb92aaae1fa34f32665a14 Mon Sep 17 00:00:00 2001 From: yaogengzhu <455947455@qq.com> Date: Sat, 25 Dec 2021 22:01:15 +0800 Subject: [PATCH 4/4] fix: fixup type --- src/time-picker/panel/TimePickerRangePanel.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/time-picker/panel/TimePickerRangePanel.tsx b/src/time-picker/panel/TimePickerRangePanel.tsx index f14674809..93363405b 100644 --- a/src/time-picker/panel/TimePickerRangePanel.tsx +++ b/src/time-picker/panel/TimePickerRangePanel.tsx @@ -9,12 +9,12 @@ import Button from '../../button'; import { DEFAULT_STEPS, DEFAULT_FORMAT, useTimePickerTextConfig } from '../consts'; -import { TdTimeRangePickerProps } from '../type'; +import { TdTimeRangePickerProps, TimeRangeValue } from '../type'; export interface TimeRangePickerPanelProps extends Omit { // 是否展示footer isFooterDisplay?: boolean; - handleConfirmClick?: (value) => void; + handleConfirmClick?: (value: TimeRangeValue) => void; value: TdTimeRangePickerProps['value']; onChange: TdTimeRangePickerProps['onChange']; }