Skip to content

Commit 165fef0

Browse files
committed
v1.1.0
1 parent 92d13bb commit 165fef0

File tree

6 files changed

+38
-24
lines changed

6 files changed

+38
-24
lines changed

package/CHANGE.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## 1.1.0
2+
3+
### What's New?
4+
5+
- Add Props - initValue : Datepicker component allows you to declare the initial value.
6+
- Add Props - onChange : Triggered whenever the value of the Datepicker changes.

package/devops/copyStyles.js

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
/* eslint-disable @typescript-eslint/no-var-requires */
2-
const fs = require("fs-extra");
3-
const chokidar = require("chokidar");
2+
const fs = require('fs-extra');
3+
const chokidar = require('chokidar');
44

5-
const srcDir = "src"; // 소스 디렉토리
6-
const distDir = "dist"; // 목적지 디렉토리
5+
const srcDir = 'src'; // 소스 디렉토리
6+
const distDir = 'dist'; // 목적지 디렉토리
77

88
// srcDir 내의 모든 CSS 파일 감시
99
const watcher = chokidar.watch(`${srcDir}/**/*.css`, {
1010
persistent: true,
1111
});
1212

1313
// 파일이 추가, 변경 또는 삭제될 때 호출되는 콜백 함수
14-
watcher.on("all", (event, path) => {
14+
watcher.on('all', (event, path) => {
1515
console.log(`File ${event}: ${path}`);
1616

1717
// 파일을 목적지로 복사
18-
const relativePath = path.replace(srcDir, ""); // 상대 경로 추출
18+
const relativePath = path.replace(srcDir, ''); // 상대 경로 추출
1919

2020
console.log(relativePath);
2121
const destPath = `${distDir}${relativePath}`; // 목적지 경로 생성
2222
fs.copyFile(path, destPath, (err) => {
2323
if (err) {
24-
console.error("Error copying file:", err);
24+
console.error('Error copying file:', err);
2525
} else {
2626
console.log(`File ${path} copied to ${destPath}`);
2727
}
@@ -31,7 +31,7 @@ watcher.on("all", (event, path) => {
3131
console.log(`Watching CSS files in ${srcDir} and copying to ${distDir}`);
3232

3333
// 프로그램 종료 시 감시 중지
34-
process.on("SIGINT", () => {
34+
process.on('SIGINT', () => {
3535
watcher.close();
3636
process.exit(0);
3737
});

package/package.json

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

package/src/components/Container.tsx

+14-13
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,7 @@ import '../../assets/ReactDatepicker.css';
44
import * as React from 'react';
55
import { useState, useMemo, useRef, useEffect } from 'react';
66
import { getFormatDatetime } from '../utils/datetime';
7-
import {
8-
setCenturyPage,
9-
setDecadePage,
10-
setYearPage,
11-
setMonthPage,
12-
} from '../utils/page';
7+
import { setCenturyPage, setDecadePage, setMonthPage } from '../utils/page';
138
import ViewCentury from './view/Century';
149
import { NAME_SPACE } from './constants/core';
1510
import Controller from './Controller';
@@ -19,12 +14,16 @@ import ViewMonth from './view/Month';
1914
import { addLeadingZero } from '../utils/string';
2015
import useOutsideClick from '../hooks/useOutsideClick';
2116

22-
function Container() {
17+
interface Iprops {
18+
initValue?: Date;
19+
onChange?: (activeDate: Date) => void;
20+
}
21+
22+
function Container({ initValue = new Date(), onChange }: Iprops) {
2323
// 인수가 없을 땐 LOCAL 기준 현재 시간을 반환한다.
24-
const NEW_DATE = new Date();
25-
const [activeDate, setActiveDate] = useState<Date>(NEW_DATE);
24+
const [activeDate, setActiveDate] = useState<Date>(initValue);
2625
const [viewDate, setViewDate] = useState<string>(
27-
getFormatDatetime(NEW_DATE, 'YYYY-MM-DD')
26+
getFormatDatetime(initValue, 'YYYY-MM-DD')
2827
);
2928
const [viewType, setViewType] = useState<
3029
'century' | 'decade' | 'year' | 'month'
@@ -33,7 +32,7 @@ function Container() {
3332

3433
const centuryPage = useMemo(() => setCenturyPage(viewDate), [viewDate]);
3534
const decadePage = useMemo(() => setDecadePage(viewDate), [viewDate]);
36-
const yearPage = useMemo(() => setYearPage(viewDate), [viewDate]);
35+
// const yearPage = useMemo(() => setYearPage(viewDate), [viewDate]);
3736
const monthPage = useMemo(() => setMonthPage(viewDate), [viewDate]);
3837
const container = useRef(null);
3938

@@ -76,13 +75,15 @@ function Container() {
7675
};
7776

7877
const handleFocus = () => {
79-
console.log('handleFocus');
8078
setIsVisible(true);
8179
};
8280

8381
useEffect(() => {
8482
setIsVisible(false);
85-
}, [activeDate]);
83+
if (onChange) {
84+
onChange(activeDate);
85+
}
86+
}, [activeDate, onChange]);
8687

8788
// const [centuryPage, setCenturyPage] = useState<number>(0);
8889
// const [decadePage, setDecadePage] = useState<number>(0);

package/src/hooks/useOutsideClick.ts

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ const useOutsideClick = (
88
const handleClickOutside = (e: MouseEvent) => {
99
const target = e.target as HTMLDivElement;
1010
if (targetRef.current && !targetRef.current.contains(target)) {
11-
console.log('click outside');
1211
callback();
1312
}
1413
};

test/src/App.tsx

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
import * as React from 'react';
22
import { Datepicker } from '@shinyongjun/react-datepicker';
3+
import { useState } from 'react';
34

45
function App() {
6+
const [dateValue, setDateValue] = useState<Date>(new Date('2001-11-11'));
7+
58
return (
69
<div>
7-
<Datepicker />
10+
<Datepicker
11+
initValue={dateValue}
12+
onChange={(activeDate) => {
13+
console.log('activeDate', activeDate);
14+
}}
15+
/>
816
</div>
917
);
1018
}

0 commit comments

Comments
 (0)