Skip to content

Commit 5361abb

Browse files
committed
fix(DatePeriodInput): 修复清空后minDate 和 maxDate问题
1 parent c99be70 commit 5361abb

File tree

4 files changed

+22
-18
lines changed

4 files changed

+22
-18
lines changed

packages/core/src/DatePicker/components/basic-date-picker/useDatePicker.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { useMemo } from 'react';
2-
import { useMemoizedFn } from 'ahooks';
32
import dayjs, { Dayjs } from 'dayjs';
43
import { ItemValue } from '../../../Picker/components/WheelPicker/type';
54
import { CascadePickerItemProps, DatePickerPropsBase } from './type';
@@ -320,8 +319,8 @@ export default function useDatePicker({
320319
};
321320

322321
return {
323-
getValueCols: useMemoizedFn(getValueCols),
324-
onValueChange: useMemoizedFn(onValueChange),
322+
getValueCols: getValueCols,
323+
onValueChange: onValueChange,
325324
};
326325
}
327326

packages/core/src/DatePicker/date-period-input/index.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { FC, ReactNode } from 'react';
1+
import React, { FC } from 'react';
22
import { TouchableOpacity, Animated, View } from 'react-native';
33
import { useTheme } from '@shopify/restyle';
44
import Flex from '../../Flex';
@@ -57,7 +57,6 @@ const DatePeriodInput: FC<DatePeriodInputProps> = ({
5757
lineHeight: 19,
5858
fontFamily: 'PingFang SC',
5959
};
60-
6160
return (
6261
<View>
6362
<Flex

packages/core/src/DatePicker/date-period-input/useDatePeriodInput.ts

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useEffect, useMemo } from 'react';
22
import { Keyboard } from 'react-native';
3-
import { useBoolean, useSafeState, useMemoizedFn } from 'ahooks';
3+
import { useBoolean, useSafeState } from 'ahooks';
44
import { useLatest } from '../../utils/hooks';
55
import dayjs from 'dayjs';
66

@@ -43,6 +43,10 @@ export default function useDatePeriodInput({
4343
setMinDate(undefined);
4444
setMaxDate(dayjs(dates[1]).format(format));
4545
}
46+
if (!dates[1]) {
47+
setMinDate(undefined);
48+
setMaxDate(undefined);
49+
}
4650
setTrue();
4751
};
4852

@@ -53,19 +57,21 @@ export default function useDatePeriodInput({
5357
setMinDate(dayjs(dates[0]).format(format));
5458
setMaxDate(undefined);
5559
}
60+
if (!dates[0]) {
61+
setMinDate(undefined);
62+
setMaxDate(undefined);
63+
}
5664
setTrue();
5765
};
5866

5967
const handleInputClear1 = () => {
6068
const [, secondDate] = value ?? [, undefined];
61-
6269
setDates((draft) => [undefined, draft[1]]);
6370
onChangeRef.current?.([undefined, secondDate]);
6471
};
6572

6673
const handleInputClear2 = () => {
6774
const [firstDate] = value ?? [undefined];
68-
6975
setDates((draft) => [draft[0], undefined]);
7076
onChangeRef.current?.([firstDate, undefined]);
7177
};
@@ -90,11 +96,11 @@ export default function useDatePeriodInput({
9096
maxDate,
9197
clearIconStyle1,
9298
clearIconStyle2,
93-
setFalse: useMemoizedFn(setFalse),
94-
handleStartPress: useMemoizedFn(handleStartPress),
95-
handleEndPress: useMemoizedFn(handleEndPress),
96-
handleChange: useMemoizedFn(handleChange),
97-
handleInputClear1: useMemoizedFn(handleInputClear1),
98-
handleInputClear2: useMemoizedFn(handleInputClear2),
99+
setFalse: setFalse,
100+
handleStartPress: handleStartPress,
101+
handleEndPress: handleEndPress,
102+
handleChange: handleChange,
103+
handleInputClear1: handleInputClear1,
104+
handleInputClear2: handleInputClear2,
99105
};
100106
}

packages/core/src/DatePicker/date-picker/useDatePicker.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useEffect } from 'react';
22
import { BackHandler } from 'react-native';
3-
import { useSafeState, useMemoizedFn } from 'ahooks';
3+
import { useSafeState } from 'ahooks';
44
import { useLatest } from '../../utils/hooks';
55
import dayjs from 'dayjs';
66
import { DatePickerPropsBase, ModalPickerProps } from '../components/basic-date-picker/type';
@@ -46,8 +46,8 @@ export default function useDatePicker({
4646

4747
return {
4848
date,
49-
handleChange: useMemoizedFn(handleChange),
50-
handleOk: useMemoizedFn(handleOk),
51-
handleClose: useMemoizedFn(handleClose),
49+
handleChange: handleChange,
50+
handleOk: handleOk,
51+
handleClose: handleClose,
5252
};
5353
}

0 commit comments

Comments
 (0)