Skip to content

Commit ae86fee

Browse files
committed
feat : Add Props
1 parent 56e0079 commit ae86fee

File tree

4 files changed

+34
-5
lines changed

4 files changed

+34
-5
lines changed

package/CHANGE.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
## 1.8.0
2+
3+
### What's New?
4+
5+
- add props `initStartValue` of `Rangepicker`
6+
- add props `initEndValue` of `Rangepicker`
7+
- add props `onChange` of `Rangepicker`
8+
19
## 1.7.0
210

311
### What's New?

package/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@shinyongjun/react-datepicker",
3-
"version": "1.7.1",
3+
"version": "1.8.0",
44
"main": "./dist/cjs/index.js",
55
"module": "./dist/esm/index.js",
66
"source": "./src/index.tsx",

package/src/components/Rangepicker.tsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,20 @@ import InputRange from './input/Range';
1616

1717
interface IProps {
1818
// initValue?: Date | null;
19+
initStartValue?: Date | null;
20+
initEndValue?: Date | null;
1921
useClearButton?: boolean;
2022
showsMultipleCalendar?: boolean;
2123
valueFormat?: string;
2224
labelFormat?: string;
2325
closesAfterChange?: boolean;
2426
weekdayLabels?: string[];
25-
onChange?: (activeDate: Date | null) => void;
27+
onChange?: (startDate: Date | null, endDate: Date | null) => void;
2628
}
2729

2830
function Rangepicker({
29-
// initValue = null,
31+
initStartValue = null,
32+
initEndValue = null,
3033
useClearButton = false,
3134
showsMultipleCalendar = false,
3235
valueFormat = 'YYYY-MM-DD',
@@ -37,8 +40,8 @@ function Rangepicker({
3740
}: IProps) {
3841
// 인수가 없을 땐 LOCAL 기준 현재 시간을 반환한다.
3942
const NEW_DATE = new Date();
40-
const [startValue, setStartValue] = useState<Date | null>(null);
41-
const [endValue, setEndValue] = useState<Date | null>(null);
43+
const [startValue, setStartValue] = useState<Date | null>(initStartValue);
44+
const [endValue, setEndValue] = useState<Date | null>(initEndValue);
4245
const [hoverValue, setHoverValue] = useState<Date | null>(null);
4346
const [viewDate, setViewDate] = useState<string>(
4447
formatDate(startValue || NEW_DATE, 'YYYY-MM-DD')
@@ -64,6 +67,12 @@ function Rangepicker({
6467
// eslint-disable-next-line react-hooks/exhaustive-deps
6568
}, [endValue, onChange, setViewDate]);
6669

70+
useEffect(() => {
71+
if (onChange) {
72+
onChange(startValue, endValue);
73+
}
74+
}, [startValue, endValue, onChange]);
75+
6776
return (
6877
<div className={`${NAME_SPACE}__wrapper`}>
6978
<InputRange

test/src/App.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,18 @@ function App() {
2626
showsMultipleCalendar
2727
closesAfterChange={false}
2828
/>
29+
<Rangepicker
30+
weekdayLabels={['일', '월', '화', '수', '목', '금', '토']}
31+
showsMultipleCalendar
32+
closesAfterChange={false}
33+
onChange={(startDate, endDate) => {
34+
console.log(startDate, endDate);
35+
}}
36+
/>
37+
<Rangepicker
38+
initStartValue={new Date(2023, 7, 1)}
39+
initEndValue={new Date(2023, 8, 7)}
40+
/>
2941
</div>
3042
);
3143
}

0 commit comments

Comments
 (0)