@ehfuse/forma 1.4.0 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +0 -21
- package/README.md +26 -49
- package/dist/esm/hooks/useFormaState.d.ts +2 -1
- package/dist/esm/hooks/useFormaState.d.ts.map +1 -1
- package/dist/esm/hooks/useFormaState.js +16 -7
- package/dist/esm/hooks/useFormaState.js.map +1 -1
- package/dist/hooks/useFormaState.d.ts +2 -1
- package/dist/hooks/useFormaState.d.ts.map +1 -1
- package/dist/hooks/useFormaState.js +16 -7
- package/dist/hooks/useFormaState.js.map +1 -1
- package/package.json +1 -1
package/LICENSE
CHANGED
|
@@ -19,24 +19,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
SOFTWARE.
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
MIT 라이선스
|
|
26
|
-
|
|
27
|
-
Copyright (c) 2025 김영진 (ehfuse@gmail.com)
|
|
28
|
-
|
|
29
|
-
이 소프트웨어와 관련 문서 파일(이하 "소프트웨어")의 사본을 얻는 모든 사람에게
|
|
30
|
-
무료로 허가를 부여합니다. 이 허가에는 소프트웨어를 제한 없이 다루는 권리가
|
|
31
|
-
포함되며, 여기에는 사용, 복사, 수정, 병합, 게시, 배포, 서브라이선스 및/또는
|
|
32
|
-
소프트웨어 사본의 판매 권리와 소프트웨어가 제공된 사람들에게 그렇게 할 수 있는
|
|
33
|
-
권한을 부여하는 권리가 포함됩니다. 단, 다음 조건을 따라야 합니다:
|
|
34
|
-
|
|
35
|
-
위의 저작권 고지와 이 허가 고지는 소프트웨어의 모든 사본 또는 상당 부분에
|
|
36
|
-
포함되어야 합니다.
|
|
37
|
-
|
|
38
|
-
소프트웨어는 "있는 그대로" 제공되며, 상품성, 특정 목적에의 적합성 및
|
|
39
|
-
비침해에 대한 보증을 포함하되 이에 국한되지 않는 명시적 또는 묵시적 보증 없이
|
|
40
|
-
제공됩니다. 어떠한 경우에도 작성자 또는 저작권 보유자는 계약, 불법 행위 또는
|
|
41
|
-
기타 행위에서 발생하거나, 소프트웨어나 소프트웨어의 사용 또는 기타 거래와
|
|
42
|
-
관련하여 발생하는 청구, 손해 또는 기타 책임에 대해 책임지지 않습니다.
|
package/README.md
CHANGED
|
@@ -1,41 +1,36 @@
|
|
|
1
|
-
<!-- slide -->
|
|
2
|
-
|
|
3
1
|
# Forma
|
|
4
2
|
|
|
5
|
-
**
|
|
6
|
-
|
|
3
|
+
**High-performance and developer-friendly React form state management library**
|
|
4
|
+
고성능이며 개발자 친화적인 React 폼 상태 관리 라이브러리
|
|
7
5
|
|
|
8
|
-
|
|
6
|
+
[](https://www.npmjs.com/package/@ehfuse/forma)
|
|
7
|
+
[](https://www.npmjs.com/package/@ehfuse/forma)
|
|
8
|
+
[](https://github.com/ehfuse/forma/blob/main/LICENSE)
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Forma는 React 애플리케이션에서 폼과 상태를 **간편하면서도 강력하게** 관리할 수 있는 고성능 라이브러리입니다. **Zero-Config로 바로 시작**할 수 있으며, 개별 필드 구독을 통한 **선택적 리렌더링**으로 최적의 성능을 제공합니다. 복잡한 설정 없이도 **글로벌 폼 상태 공유**, **Dot Notation 중첩 객체 접근**, **MUI 완전 호환** 등 프로덕션 레벨의 고급 기능들을 손쉽게 사용할 수 있습니다.
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
_Forma is a high-performance library that makes form and state management in React applications **simple yet powerful**. **Start immediately with Zero-Config**, and achieve optimal performance through **selective re-rendering** via individual field subscriptions. Easily access production-level advanced features like **global form state sharing**, **Dot Notation nested object access**, and **full MUI compatibility** without complex setup._
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
## 📚 Documentation | 문서
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
### 한국어 (Korean)
|
|
17
17
|
|
|
18
|
-
- 🚀 **[시작 가이드](
|
|
19
|
-
- 📖 **[완전한 문서](
|
|
20
|
-
- 📋 **[API 레퍼런스](
|
|
21
|
-
-
|
|
22
|
-
- ⚖️ **[라이브러리 비교 가이드](./docs/library-comparison-ko.md)** - Forma vs 다른 상태 관리 라이브러리 비교
|
|
23
|
-
- ⚡ **[성능 최적화 가이드](./docs/best-practices-ko.md)** - 최고 성능을 위한 모범 사례
|
|
24
|
-
- 🏠 **[GitHub](https://github.com/ehfuse/forma)**
|
|
18
|
+
- 🚀 **[시작 가이드](https://github.com/ehfuse/forma/blob/main/docs/getting-started-ko.md)** - 단계별 튜토리얼과 예제
|
|
19
|
+
- 📖 **[완전한 문서](https://github.com/ehfuse/forma/blob/main/docs/README-ko.md)** - API 레퍼런스, 사용 사례, 고급 기능
|
|
20
|
+
- 📋 **[API 레퍼런스](https://github.com/ehfuse/forma/blob/main/docs/API-ko.md)** - 모든 메서드, 타입, 마이그레이션 가이드
|
|
21
|
+
- ⚡ **[성능 최적화 가이드](https://github.com/ehfuse/forma/blob/main/docs/best-practices-ko.md)** - 최고 성능을 위한 모범 사례
|
|
25
22
|
|
|
26
23
|
### English
|
|
27
24
|
|
|
28
|
-
- 🚀 **[Getting Started Guide](
|
|
29
|
-
- 📖 **[Complete Documentation](
|
|
30
|
-
- 📋 **[API Reference](
|
|
31
|
-
-
|
|
32
|
-
- ⚖️ **[Library Comparison Guide](./docs/library-comparison-en.md)** - Forma vs other state management libraries
|
|
33
|
-
- ⚡ **[Performance Optimization Guide](./docs/best-practices-en.md)** - Best practices for optimal performance
|
|
34
|
-
- 🏠 **[GitHub](https://github.com/ehfuse/forma)**
|
|
25
|
+
- 🚀 **[Getting Started Guide](https://github.com/ehfuse/forma/blob/main/docs/getting-started-en.md)** - Step-by-step tutorial and examples
|
|
26
|
+
- 📖 **[Complete Documentation](https://github.com/ehfuse/forma/blob/main/docs/README-en.md)** - API reference, use cases, advanced features
|
|
27
|
+
- 📋 **[API Reference](https://github.com/ehfuse/forma/blob/main/docs/API-en.md)** - All methods, types, migration guide
|
|
28
|
+
- ⚡ **[Performance Optimization Guide](https://github.com/ehfuse/forma/blob/main/docs/best-practices-en.md)** - Best practices for optimal performance
|
|
35
29
|
|
|
36
|
-
|
|
30
|
+
### Links | 링크
|
|
37
31
|
|
|
38
|
-
|
|
32
|
+
- 🏠 **[GitHub Repository](https://github.com/ehfuse/forma)**
|
|
33
|
+
- 📦 **[NPM Package](https://www.npmjs.com/package/@ehfuse/forma)**
|
|
39
34
|
|
|
40
35
|
---
|
|
41
36
|
|
|
@@ -57,7 +52,7 @@ _Forma is a high-performance library for efficiently managing form state in Reac
|
|
|
57
52
|
|
|
58
53
|
```bash
|
|
59
54
|
npm install @ehfuse/forma
|
|
60
|
-
|
|
55
|
+
```
|
|
61
56
|
|
|
62
57
|
```bash
|
|
63
58
|
yarn add @ehfuse/forma
|
|
@@ -192,37 +187,19 @@ function UserDashboard() {
|
|
|
192
187
|
}
|
|
193
188
|
```
|
|
194
189
|
|
|
195
|
-
## � 문서 | Documentation
|
|
196
|
-
|
|
197
|
-
### 한국어 | Korean
|
|
198
|
-
|
|
199
|
-
- 📖 **[완전한 문서](./docs/README-ko.md)** - API 레퍼런스, 사용 사례, 고급 기능
|
|
200
|
-
- 🌐 **[useGlobalForm 사용법](./docs/useGlobalForm-guide-ko.md)** - 글로벌 폼 상태 관리 가이드
|
|
201
|
-
- 🔄 **[글로벌 훅 비교 가이드](./docs/global-hooks-comparison-ko.md)** - useGlobalForm vs useGlobalFormaState 비교
|
|
202
|
-
- ⚖️ **[라이브러리 비교 가이드](./docs/library-comparison-ko.md)** - Forma vs 다른 상태 관리 라이브러리 비교
|
|
203
|
-
- ⚡ **[성능 최적화 가이드](./docs/best-practices-ko.md)** - 최고 성능을 위한 모범 사례
|
|
204
|
-
|
|
205
|
-
### English
|
|
206
|
-
|
|
207
|
-
- 📖 **[Complete Documentation](./docs/README-en.md)** - API reference, use cases, advanced features
|
|
208
|
-
- 🌐 **[useGlobalForm Usage Guide](./docs/useGlobalForm-guide-en.md)** - Global form state management guide
|
|
209
|
-
- 🔄 **[Global Hooks Comparison Guide](./docs/global-hooks-comparison-en.md)** - useGlobalForm vs useGlobalFormaState comparison
|
|
210
|
-
- ⚖️ **[Library Comparison Guide](./docs/library-comparison-en.md)** - Forma vs other state management libraries
|
|
211
|
-
- ⚡ **[Performance Optimization Guide](./docs/best-practices-en.md)** - Best practices for optimal performance
|
|
212
|
-
|
|
213
190
|
---
|
|
214
191
|
|
|
215
192
|
## 🎯 When to choose Forma?
|
|
216
193
|
|
|
217
|
-
|
|
194
|
+
**언제 Forma를 선택해야 할까요?**
|
|
218
195
|
|
|
219
196
|
Forma is **specialized for form state management** and shines in specific scenarios. Here's when Forma is the perfect choice for your project.
|
|
220
197
|
|
|
221
|
-
|
|
198
|
+
_Forma는 **폼 상태 관리에 특화**된 라이브러리로 특정 시나리오에서 빛을 발합니다. 다음은 Forma가 프로젝트에 완벽한 선택이 되는 경우입니다._
|
|
222
199
|
|
|
223
200
|
### ✨ Perfect for these use cases:
|
|
224
201
|
|
|
225
|
-
|
|
202
|
+
**이런 경우에 완벽합니다:**
|
|
226
203
|
|
|
227
204
|
**🎨 MUI (Material-UI) Projects**
|
|
228
205
|
**MUI (Material-UI) 프로젝트**
|
|
@@ -286,7 +263,7 @@ const userEmail = form.useFormValue("user.email");
|
|
|
286
263
|
// user.name 변경 시 → userName 필드만 리렌더링 | Only userName field re-renders
|
|
287
264
|
```
|
|
288
265
|
|
|
289
|
-
**[성능 최적화 상세 가이드 보기 | View Detailed Performance Guide](
|
|
266
|
+
**[성능 최적화 상세 가이드 보기 | View Detailed Performance Guide](https://github.com/ehfuse/forma/blob/main/docs/best-practices-ko.md)**
|
|
290
267
|
|
|
291
268
|
---
|
|
292
269
|
|
|
@@ -294,7 +271,7 @@ const userEmail = form.useFormValue("user.email");
|
|
|
294
271
|
|
|
295
272
|
- **📦 NPM**: [https://www.npmjs.com/package/@ehfuse/forma](https://www.npmjs.com/package/@ehfuse/forma)
|
|
296
273
|
- **🐙 GitHub**: [https://github.com/ehfuse/forma](https://github.com/ehfuse/forma)
|
|
297
|
-
- **📄 라이선스 | License**: [MIT](
|
|
274
|
+
- **📄 라이선스 | License**: [MIT](https://github.com/ehfuse/forma/blob/main/LICENSE)
|
|
298
275
|
|
|
299
276
|
---
|
|
300
277
|
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* @license MIT License
|
|
9
9
|
*/
|
|
10
10
|
import { FieldStore } from "../core/FieldStore";
|
|
11
|
+
import { FormChangeEvent } from "../types/form";
|
|
11
12
|
/**
|
|
12
13
|
* Options for configuring useFormaState hook
|
|
13
14
|
* useFormaState 훅 설정을 위한 옵션
|
|
@@ -42,7 +43,7 @@ export interface UseFormaStateReturn<T extends Record<string, any>> {
|
|
|
42
43
|
/** Reset to initial values | 초기값으로 재설정 */
|
|
43
44
|
reset: () => void;
|
|
44
45
|
/** Handle standard input change events | 표준 입력 변경 이벤트 처리 */
|
|
45
|
-
handleChange: (event:
|
|
46
|
+
handleChange: (event: FormChangeEvent) => void;
|
|
46
47
|
/** Check if a field exists | 필드 존재 여부 확인 */
|
|
47
48
|
hasField: (path: string) => boolean;
|
|
48
49
|
/** Remove a field from state | 상태에서 필드 제거 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormaState.d.ts","sourceRoot":"","sources":["../../../hooks/useFormaState.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"useFormaState.d.ts","sourceRoot":"","sources":["../../../hooks/useFormaState.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC/D,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAE/B,qFAAqF;IACrF,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,mFAAmF;IACnF,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAE/B,4DAA4D;IAC5D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC9D,gFAAgF;IAChF,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC;IAE7C,+EAA+E;IAC/E,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAE1D,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC,CAAC;IAEnB,6CAA6C;IAC7C,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAExC,0CAA0C;IAC1C,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB,4DAA4D;IAC5D,YAAY,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAE/C,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAEpC,6CAA6C;IAC7C,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC,sEAAsE;IACtE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;IAEhC,oDAAoD;IACpD,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAEzD,sFAAsF;IACtF,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACzB;AA0BD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,GAAG,GAAG,EACxC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EACtB,IAAI,EAAE,MAAM,GACb,CAAC,CAEH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,wBAAgB,aAAa,CACzB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,aAAa,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAGhF,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvD,aAAa,EAAE,CAAC,EAChB,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAClC,mBAAmB,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -107,19 +107,28 @@ export function useFormaState(initialValues = {}, options = {}) {
|
|
|
107
107
|
// Handle standard input change events
|
|
108
108
|
// 표준 입력 변경 이벤트 처리
|
|
109
109
|
const handleChange = useCallback((event) => {
|
|
110
|
-
const
|
|
111
|
-
if (!name) {
|
|
110
|
+
const target = event.target;
|
|
111
|
+
if (!target || !target.name) {
|
|
112
112
|
devWarn('useFormaState.handleChange: input element must have a "name" attribute');
|
|
113
113
|
return;
|
|
114
114
|
}
|
|
115
|
+
const { name, type, value, checked } = target;
|
|
115
116
|
let processedValue = value;
|
|
116
|
-
//
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
processedValue = event.target.checked;
|
|
117
|
+
// DatePicker 처리 (Dayjs 객체) / DatePicker handling (Dayjs object)
|
|
118
|
+
if (value && typeof value === "object" && value.format) {
|
|
119
|
+
processedValue = value.format("YYYY-MM-DD");
|
|
120
120
|
}
|
|
121
|
+
// 체크박스 처리 / Checkbox handling
|
|
122
|
+
else if (type === "checkbox") {
|
|
123
|
+
processedValue = checked;
|
|
124
|
+
}
|
|
125
|
+
// 숫자 타입 처리 / Number type handling
|
|
121
126
|
else if (type === "number") {
|
|
122
|
-
processedValue =
|
|
127
|
+
processedValue = Number(value);
|
|
128
|
+
}
|
|
129
|
+
// null 값 처리 / Null value handling
|
|
130
|
+
else if (value === null) {
|
|
131
|
+
processedValue = undefined;
|
|
123
132
|
}
|
|
124
133
|
setValue(name, processedValue);
|
|
125
134
|
}, [setValue]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormaState.js","sourceRoot":"","sources":["../../../hooks/useFormaState.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAW,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAkC,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"useFormaState.js","sourceRoot":"","sources":["../../../hooks/useFormaState.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* @license MIT License
|
|
9
9
|
*/
|
|
10
10
|
import { FieldStore } from "../core/FieldStore";
|
|
11
|
+
import { FormChangeEvent } from "../types/form";
|
|
11
12
|
/**
|
|
12
13
|
* Options for configuring useFormaState hook
|
|
13
14
|
* useFormaState 훅 설정을 위한 옵션
|
|
@@ -42,7 +43,7 @@ export interface UseFormaStateReturn<T extends Record<string, any>> {
|
|
|
42
43
|
/** Reset to initial values | 초기값으로 재설정 */
|
|
43
44
|
reset: () => void;
|
|
44
45
|
/** Handle standard input change events | 표준 입력 변경 이벤트 처리 */
|
|
45
|
-
handleChange: (event:
|
|
46
|
+
handleChange: (event: FormChangeEvent) => void;
|
|
46
47
|
/** Check if a field exists | 필드 존재 여부 확인 */
|
|
47
48
|
hasField: (path: string) => boolean;
|
|
48
49
|
/** Remove a field from state | 상태에서 필드 제거 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormaState.d.ts","sourceRoot":"","sources":["../../hooks/useFormaState.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"useFormaState.d.ts","sourceRoot":"","sources":["../../hooks/useFormaState.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC/D,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAE/B,qFAAqF;IACrF,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,mFAAmF;IACnF,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAE/B,4DAA4D;IAC5D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC9D,gFAAgF;IAChF,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC;IAE7C,+EAA+E;IAC/E,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAE1D,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC,CAAC;IAEnB,6CAA6C;IAC7C,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAExC,0CAA0C;IAC1C,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB,4DAA4D;IAC5D,YAAY,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAE/C,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAEpC,6CAA6C;IAC7C,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC,sEAAsE;IACtE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;IAEhC,oDAAoD;IACpD,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAEzD,sFAAsF;IACtF,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACzB;AA0BD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,GAAG,GAAG,EACxC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EACtB,IAAI,EAAE,MAAM,GACb,CAAC,CAEH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,wBAAgB,aAAa,CACzB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,aAAa,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAGhF,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvD,aAAa,EAAE,CAAC,EAChB,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAClC,mBAAmB,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -111,19 +111,28 @@ function useFormaState(initialValues = {}, options = {}) {
|
|
|
111
111
|
// Handle standard input change events
|
|
112
112
|
// 표준 입력 변경 이벤트 처리
|
|
113
113
|
const handleChange = (0, react_1.useCallback)((event) => {
|
|
114
|
-
const
|
|
115
|
-
if (!name) {
|
|
114
|
+
const target = event.target;
|
|
115
|
+
if (!target || !target.name) {
|
|
116
116
|
(0, utils_1.devWarn)('useFormaState.handleChange: input element must have a "name" attribute');
|
|
117
117
|
return;
|
|
118
118
|
}
|
|
119
|
+
const { name, type, value, checked } = target;
|
|
119
120
|
let processedValue = value;
|
|
120
|
-
//
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
processedValue = event.target.checked;
|
|
121
|
+
// DatePicker 처리 (Dayjs 객체) / DatePicker handling (Dayjs object)
|
|
122
|
+
if (value && typeof value === "object" && value.format) {
|
|
123
|
+
processedValue = value.format("YYYY-MM-DD");
|
|
124
124
|
}
|
|
125
|
+
// 체크박스 처리 / Checkbox handling
|
|
126
|
+
else if (type === "checkbox") {
|
|
127
|
+
processedValue = checked;
|
|
128
|
+
}
|
|
129
|
+
// 숫자 타입 처리 / Number type handling
|
|
125
130
|
else if (type === "number") {
|
|
126
|
-
processedValue =
|
|
131
|
+
processedValue = Number(value);
|
|
132
|
+
}
|
|
133
|
+
// null 값 처리 / Null value handling
|
|
134
|
+
else if (value === null) {
|
|
135
|
+
processedValue = undefined;
|
|
127
136
|
}
|
|
128
137
|
setValue(name, processedValue);
|
|
129
138
|
}, [setValue]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormaState.js","sourceRoot":"","sources":["../../hooks/useFormaState.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;
|
|
1
|
+
{"version":3,"file":"useFormaState.js","sourceRoot":"","sources":["../../hooks/useFormaState.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ehfuse/forma",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.2",
|
|
4
4
|
"description": "Advanced React state management library with individual field subscriptions - supports both forms and general state management with useFormaState",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|