Skip to content

Commit f9ac13a

Browse files
author
신용준
committed
feat: className, disabled, placeholder 옵션 추가
1 parent d365038 commit f9ac13a

File tree

6 files changed

+40
-5
lines changed

6 files changed

+40
-5
lines changed

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.9.0",
3+
"version": "1.10.0",
44
"main": "./dist/cjs/index.js",
55
"module": "./dist/esm/index.js",
66
"source": "./src/index.tsx",

package/src/components/Datepicker.tsx

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ interface IProps {
2121
labelFormat?: string;
2222
closesAfterChange?: boolean;
2323
weekdayLabels?: string[];
24+
className?: string;
25+
placeholder?: string;
26+
disabled?: boolean;
2427
onChange?: (activeDate: Date | null) => void;
2528
}
2629

@@ -32,6 +35,9 @@ function Datepicker({
3235
labelFormat = 'YYYY / MM',
3336
closesAfterChange = true,
3437
weekdayLabels = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
38+
className = '',
39+
placeholder = '',
40+
disabled = false,
3541
onChange,
3642
}: IProps) {
3743
// 인수가 없을 땐 LOCAL 기준 현재 시간을 반환한다.
@@ -64,13 +70,15 @@ function Datepicker({
6470
}, [value, onChange, setViewDate]);
6571

6672
return (
67-
<div className={`${NAME_SPACE}__wrapper`}>
73+
<div className={`${NAME_SPACE}__wrapper ${className}`}>
6874
<InputDate
6975
value={value}
70-
setValue={setValue}
7176
valueFormat={valueFormat}
72-
setIsVisible={setIsVisible}
7377
useClearButton={useClearButton}
78+
placeholder={placeholder}
79+
disabled={disabled}
80+
setValue={setValue}
81+
setIsVisible={setIsVisible}
7482
/>
7583
{isVisible && (
7684
<div className={`${NAME_SPACE}__datepicker-container`} ref={container}>

package/src/components/Rangepicker.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ interface IProps {
2323
labelFormat?: string;
2424
closesAfterChange?: boolean;
2525
weekdayLabels?: string[];
26+
className?: string;
27+
placeholder?: string;
28+
disabled?: boolean;
2629
onChange?: (startDate: Date | null, endDate: Date | null) => void;
2730
}
2831

@@ -35,6 +38,9 @@ function Rangepicker({
3538
labelFormat = 'YYYY / MM',
3639
closesAfterChange = true,
3740
weekdayLabels = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
41+
className = '',
42+
placeholder = '',
43+
disabled = false,
3844
onChange,
3945
}: IProps) {
4046
// 인수가 없을 땐 LOCAL 기준 현재 시간을 반환한다.
@@ -73,12 +79,14 @@ function Rangepicker({
7379
}, [startValue, endValue, onChange]);
7480

7581
return (
76-
<div className={`${NAME_SPACE}__wrapper`}>
82+
<div className={`${NAME_SPACE}__wrapper ${className}`}>
7783
<InputRange
7884
startValue={startValue}
7985
endValue={endValue}
8086
valueFormat={valueFormat}
8187
useClearButton={useClearButton}
88+
placeholder={placeholder}
89+
disabled={disabled}
8290
setIsVisible={setIsVisible}
8391
setStartValue={setStartValue}
8492
setEndValue={setEndValue}

package/src/components/input/Date.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ interface IProps {
88
value: Date | null;
99
valueFormat: string;
1010
useClearButton: boolean;
11+
placeholder: string;
12+
disabled: boolean;
1113
setValue: (value: Date | null) => void;
1214
setIsVisible: (value: boolean) => void;
1315
}
@@ -16,6 +18,8 @@ function InputDate({
1618
value,
1719
valueFormat,
1820
useClearButton,
21+
placeholder,
22+
disabled,
1923
setValue,
2024
setIsVisible,
2125
}: IProps) {
@@ -30,6 +34,8 @@ function InputDate({
3034
type="text"
3135
value={formatDate(value, valueFormat)}
3236
readOnly
37+
placeholder={placeholder}
38+
disabled={disabled}
3339
onFocus={handleFocus}
3440
/>
3541
{useClearButton && value && (

package/src/components/input/Range.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ interface IProps {
99
endValue: Date | null;
1010
valueFormat: string;
1111
useClearButton: boolean;
12+
placeholder: string;
13+
disabled: boolean;
1214
setStartValue: (value: Date | null) => void;
1315
setEndValue: (value: Date | null) => void;
1416
setIsVisible: (value: boolean) => void;
@@ -19,6 +21,8 @@ function InputRange({
1921
endValue,
2022
valueFormat,
2123
useClearButton,
24+
placeholder,
25+
disabled,
2226
setStartValue,
2327
setEndValue,
2428
setIsVisible,
@@ -50,6 +54,8 @@ function InputRange({
5054
type="text"
5155
value={setRangeValue()}
5256
readOnly
57+
placeholder={placeholder}
58+
disabled={disabled}
5359
onFocus={handleFocus}
5460
/>
5561
{useClearButton && (startValue || endValue) && (

test/src/App.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,13 @@ function App() {
3939
initStartValue={new Date(2023, 7, 1)}
4040
initEndValue={new Date(2023, 8, 7)}
4141
/>
42+
<div style={{ marginTop: 100 }}>
43+
<Datepicker className="test" />
44+
<Datepicker placeholder="YYYY-MM-DD" />
45+
<Rangepicker placeholder="YYYY-MM-DD - YYYY-MM-DD" />
46+
<Datepicker disabled={true} />
47+
<Rangepicker disabled={true} />
48+
</div>
4249
</div>
4350
);
4451
}

0 commit comments

Comments
 (0)