Skip to content

Commit d4a5dc4

Browse files
committed
v1.7.0
1 parent 912be53 commit d4a5dc4

File tree

8 files changed

+52
-2
lines changed

8 files changed

+52
-2
lines changed

package/CHANGE.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## 1.7.0
2+
3+
### What's New?
4+
5+
- add props weekdayLabels - An option that allows you to label the day of the week in any format that you want.
6+
17
## 1.6.0
28

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

package/src/assets/ReactDatepicker.css

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,19 @@
100100
grid-template-columns: repeat(7, 1fr);
101101
width: 252px;
102102
}
103+
.react-datepicker__weekday {
104+
display: flex;
105+
align-items: center;
106+
justify-content: center;
107+
text-align: center;
108+
flex-basis: 100%;
109+
height: 36px;
110+
color: #000;
111+
}
103112
.react-datepicker__datepicker-button {
113+
display: flex;
114+
align-items: center;
115+
justify-content: center;
104116
border: none;
105117
background-color: transparent;
106118
flex-basis: 100%;

package/src/components/Datepicker.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ interface IProps {
2121
valueFormat?: string;
2222
labelFormat?: string;
2323
closesAfterChange?: boolean;
24+
weekdayLabels?: string[];
2425
onChange?: (activeDate: Date | null) => void;
2526
}
2627

@@ -31,6 +32,7 @@ function Datepicker({
3132
valueFormat = 'YYYY-MM-DD',
3233
labelFormat = 'YYYY / MM',
3334
closesAfterChange = true,
35+
weekdayLabels = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
3436
onChange,
3537
}: IProps) {
3638
// 인수가 없을 땐 LOCAL 기준 현재 시간을 반환한다.
@@ -88,13 +90,15 @@ function Datepicker({
8890
value={value}
8991
valueFormat={valueFormat}
9092
monthPage={monthPage}
93+
weekdayLabels={weekdayLabels}
9194
setValue={setValue}
9295
/>
9396
{showsMultipleCalendar && (
9497
<DatepickerMonth
9598
value={value}
9699
valueFormat={valueFormat}
97100
monthPage={monthPage + 1}
101+
weekdayLabels={weekdayLabels}
98102
setValue={setValue}
99103
/>
100104
)}

package/src/components/Rangepicker.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ interface IProps {
2121
valueFormat?: string;
2222
labelFormat?: string;
2323
closesAfterChange?: boolean;
24+
weekdayLabels?: string[];
2425
onChange?: (activeDate: Date | null) => void;
2526
}
2627

@@ -31,6 +32,7 @@ function Rangepicker({
3132
valueFormat = 'YYYY-MM-DD',
3233
labelFormat = 'YYYY / MM',
3334
closesAfterChange = true,
35+
weekdayLabels = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
3436
onChange,
3537
}: IProps) {
3638
// 인수가 없을 땐 LOCAL 기준 현재 시간을 반환한다.
@@ -92,6 +94,7 @@ function Rangepicker({
9294
hoverValue={hoverValue}
9395
valueFormat={valueFormat}
9496
monthPage={monthPage}
97+
weekdayLabels={weekdayLabels}
9598
setStartValue={setStartValue}
9699
setEndValue={setEndValue}
97100
setHoverValue={setHoverValue}
@@ -103,6 +106,7 @@ function Rangepicker({
103106
hoverValue={hoverValue}
104107
valueFormat={valueFormat}
105108
monthPage={monthPage + 1}
109+
weekdayLabels={weekdayLabels}
106110
setStartValue={setStartValue}
107111
setEndValue={setEndValue}
108112
setHoverValue={setHoverValue}

package/src/components/datepicker/Month.tsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,17 @@ interface Iprops {
88
value: Date | null;
99
valueFormat: string;
1010
monthPage: number;
11+
weekdayLabels: string[];
1112
setValue: (value: Date) => void;
1213
}
1314

14-
function DatepicerMonth({ value, valueFormat, monthPage, setValue }: Iprops) {
15+
function DatepicerMonth({
16+
value,
17+
valueFormat,
18+
monthPage,
19+
weekdayLabels,
20+
setValue,
21+
}: Iprops) {
1522
const year = Math.ceil(monthPage / 12);
1623
const month = monthPage % 12 || 12;
1724
const firstDay = new Date(year, month - 1, 1).getDay(); // 이달 1일의 요일
@@ -46,6 +53,11 @@ function DatepicerMonth({ value, valueFormat, monthPage, setValue }: Iprops) {
4653

4754
return (
4855
<div className={`${NAME_SPACE}__month-view`}>
56+
{weekdayLabels.map((day, index) => (
57+
<div className={`${NAME_SPACE}__weekday`} data-day={index} key={day}>
58+
{day}
59+
</div>
60+
))}
4961
{Array.apply(0, Array(firstDay)).map((x, i) => {
5062
const date = prevLastDate - (firstDay - i - 1);
5163
const thisValue = new Date(-1, monthPage + 22, date);

package/src/components/rangepicker/Month.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ interface Iprops {
1010
hoverValue: Date | null;
1111
valueFormat: string;
1212
monthPage: number;
13+
weekdayLabels: string[];
1314
setStartValue: (value: Date | null) => void;
1415
setEndValue: (value: Date | null) => void;
1516
setHoverValue: (value: Date | null) => void;
@@ -21,6 +22,7 @@ function RangepicerMonth({
2122
hoverValue,
2223
valueFormat,
2324
monthPage,
25+
weekdayLabels,
2426
setStartValue,
2527
setEndValue,
2628
setHoverValue,
@@ -94,6 +96,11 @@ function RangepicerMonth({
9496

9597
return (
9698
<div className={`${NAME_SPACE}__month-view`}>
99+
{weekdayLabels.map((day, index) => (
100+
<div className={`${NAME_SPACE}__weekday`} data-day={index} key={day}>
101+
{day}
102+
</div>
103+
))}
97104
{Array.apply(0, Array(firstDay)).map((x, i) => {
98105
const date = prevLastDate - (firstDay - i - 1);
99106
const thisValue = new Date(-1, monthPage + 22, date);

test/src/App.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ function App() {
2121
<Rangepicker />
2222
<Rangepicker showsMultipleCalendar />
2323
<Rangepicker closesAfterChange={false} />
24+
<Rangepicker
25+
weekdayLabels={['일', '월', '화', '수', '목', '금', '토']}
26+
showsMultipleCalendar
27+
closesAfterChange={false}
28+
/>
2429
</div>
2530
);
2631
}

0 commit comments

Comments
 (0)