@ehfuse/forma 2.1.3 → 2.1.4
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/dist/esm/hooks/useGlobalForm.d.ts.map +1 -1
- package/dist/esm/hooks/useGlobalForm.js +48 -20
- package/dist/esm/hooks/useGlobalForm.js.map +1 -1
- package/dist/esm/hooks/useGlobalFormaState.js +34 -1
- package/dist/esm/hooks/useGlobalFormaState.js.map +1 -1
- package/dist/hooks/useGlobalForm.d.ts.map +1 -1
- package/dist/hooks/useGlobalForm.js +47 -19
- package/dist/hooks/useGlobalForm.js.map +1 -1
- package/dist/hooks/useGlobalFormaState.js +33 -0
- package/dist/hooks/useGlobalFormaState.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGlobalForm.d.ts","sourceRoot":"","sources":["../../../hooks/useGlobalForm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useGlobalForm.d.ts","sourceRoot":"","sources":["../../../hooks/useGlobalForm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI9E;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvD,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAE1B;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvD,MAAM,EAAE,MAAM,GACf,mBAAmB,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
28
28
|
* SOFTWARE.
|
|
29
29
|
*/
|
|
30
|
-
import { useContext, useEffect } from "react";
|
|
30
|
+
import { useContext, useEffect, useMemo } from "react";
|
|
31
31
|
import { useForm } from "./useForm";
|
|
32
32
|
import { GlobalFormaContext } from "../contexts/GlobalFormaContext";
|
|
33
33
|
import { mergeActions } from "../utils";
|
|
@@ -76,26 +76,21 @@ Details: GlobalFormaContext must be used within GlobalFormaProvider (formId: ${f
|
|
|
76
76
|
validateAndStoreAutoCleanupSetting(formId, autoCleanup);
|
|
77
77
|
// 글로벌 스토어 가져오기 또는 생성 / Get or create global store
|
|
78
78
|
const store = getOrCreateStore(formId);
|
|
79
|
-
// 핸들러가 제공되면 글로벌에 등록 / Register handlers to global if provided
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
// 배열이면 병합해서 등록
|
|
93
|
-
const mergedActions = mergeActions(actions);
|
|
94
|
-
if (mergedActions) {
|
|
95
|
-
registerActions(formId, mergedActions);
|
|
96
|
-
}
|
|
79
|
+
// 핸들러가 제공되면 글로벌에 동기적으로 등록 / Register handlers to global synchronously if provided
|
|
80
|
+
if (onSubmit || onValidate || onComplete) {
|
|
81
|
+
registerHandlers(formId, {
|
|
82
|
+
onSubmit,
|
|
83
|
+
onValidate,
|
|
84
|
+
onComplete,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
// actions가 제공되면 글로벌에 동기적으로 등록 / Register actions to global synchronously if provided
|
|
88
|
+
if (actions) {
|
|
89
|
+
const mergedActions = mergeActions(actions);
|
|
90
|
+
if (mergedActions) {
|
|
91
|
+
registerActions(formId, mergedActions);
|
|
97
92
|
}
|
|
98
|
-
}
|
|
93
|
+
}
|
|
99
94
|
// 글로벌 핸들러 가져오기 / Get global handlers
|
|
100
95
|
const globalHandlers = getHandlers(formId);
|
|
101
96
|
// 글로벌 actions 가져오기 / Get global actions
|
|
@@ -166,8 +161,41 @@ Details: GlobalFormaContext must be used within GlobalFormaProvider (formId: ${f
|
|
|
166
161
|
unsubscribers.forEach((unsub) => unsub());
|
|
167
162
|
};
|
|
168
163
|
}, [formId, watch, store, globalActions, getActions, form.submit]);
|
|
164
|
+
// actions를 동적으로 가져오는 getter 생성 / Create getter to dynamically fetch actions
|
|
165
|
+
const actionsGetter = useMemo(() => {
|
|
166
|
+
return new Proxy({}, {
|
|
167
|
+
get: (_target, prop) => {
|
|
168
|
+
// 항상 최신 글로벌 actions를 가져옴 / Always get the latest global actions
|
|
169
|
+
const currentGlobalActions = getActions(formId);
|
|
170
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
171
|
+
return currentEffectiveActions[prop];
|
|
172
|
+
},
|
|
173
|
+
has: (_target, prop) => {
|
|
174
|
+
const currentGlobalActions = getActions(formId);
|
|
175
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
176
|
+
return prop in currentEffectiveActions;
|
|
177
|
+
},
|
|
178
|
+
ownKeys: (_target) => {
|
|
179
|
+
const currentGlobalActions = getActions(formId);
|
|
180
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
181
|
+
return Reflect.ownKeys(currentEffectiveActions);
|
|
182
|
+
},
|
|
183
|
+
getOwnPropertyDescriptor: (_target, prop) => {
|
|
184
|
+
const currentGlobalActions = getActions(formId);
|
|
185
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
186
|
+
if (prop in currentEffectiveActions) {
|
|
187
|
+
return {
|
|
188
|
+
enumerable: true,
|
|
189
|
+
configurable: true,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
return undefined;
|
|
193
|
+
},
|
|
194
|
+
});
|
|
195
|
+
}, [formId, actions, getActions]);
|
|
169
196
|
return {
|
|
170
197
|
...form,
|
|
198
|
+
actions: actionsGetter, // 동적 actions getter로 교체 / Replace with dynamic actions getter
|
|
171
199
|
formId, // 글로벌 폼 ID 추가 제공 / Provide additional global form ID
|
|
172
200
|
_store: store, // 글로벌 스토어 직접 접근용 / Direct access to global store
|
|
173
201
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGlobalForm.js","sourceRoot":"","sources":["../../../hooks/useGlobalForm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"useGlobalForm.js","sourceRoot":"","sources":["../../../hooks/useGlobalForm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAkBxC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CACzB,aAA6C;IAE7C,2BAA2B;IAC3B,MAAM,KAAK,GACP,OAAO,aAAa,KAAK,QAAQ;QAC7B,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE;QAC3B,CAAC,CAAC,aAAa,CAAC;IAExB,MAAM,EACF,MAAM,EACN,aAAa,EACb,WAAW,GAAG,IAAI,EAClB,QAAQ,EACR,UAAU,EACV,UAAU,EACV,OAAO,EACP,KAAK,GACR,GAAG,KAAK,CAAC;IACV,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAE/C,oCAAoC;IACpC,2DAA2D;IAC3D,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACxC,uCAAuC;QACvC,uEAAuE;QACvE,MAAM,YAAY,GAAG;;;;;;;;;;;+EAWkD,MAAM;SAC5E,CAAC,IAAI,EAAE,CAAC;QAET,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,EACF,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,kCAAkC,EAClC,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,UAAU,GACb,GAAG,OAAO,CAAC;IAEZ,wBAAwB;IACxB,kCAAkC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAExD,kDAAkD;IAClD,MAAM,KAAK,GAAG,gBAAgB,CAAI,MAAM,CAAC,CAAC;IAE1C,kFAAkF;IAClF,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;QACvC,gBAAgB,CAAI,MAAM,EAAE;YACxB,QAAQ;YACR,UAAU;YACV,UAAU;SACb,CAAC,CAAC;IACP,CAAC;IAED,qFAAqF;IACrF,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,aAAa,EAAE,CAAC;YAChB,eAAe,CAAI,MAAM,EAAE,aAAa,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,MAAM,cAAc,GAAG,WAAW,CAAI,MAAM,CAAC,CAAC;IAE9C,wCAAwC;IACxC,MAAM,aAAa,GAAG,UAAU,CAAI,MAAM,CAAC,CAAC;IAE5C,kFAAkF;IAClF,MAAM,iBAAiB,GAAG,QAAQ,IAAI,cAAc,EAAE,QAAQ,CAAC;IAC/D,MAAM,mBAAmB,GAAG,UAAU,IAAI,cAAc,EAAE,UAAU,CAAC;IACrE,MAAM,mBAAmB,GAAG,UAAU,IAAI,cAAc,EAAE,UAAU,CAAC;IAErE,wFAAwF;IACxF,MAAM,gBAAgB,GAAG,OAAO,IAAI,aAAa,CAAC;IAElD,yEAAyE;IACzE,MAAM,IAAI,GAAG,OAAO,CAAI;QACpB,aAAa,EAAG,aAAmB,IAAK,EAAQ;QAChD,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE,iBAAiB;QAC3B,UAAU,EAAE,mBAAmB;QAC/B,UAAU,EAAE,mBAAmB;QAC/B,OAAO,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IAEH,uCAAuC;IACvC,0EAA0E;IAC1E,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,oBAAoB,CAAC,aAAkB,CAAC,CAAC;QAClD,CAAC;IACL,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,yCAAyC;IAExG,sBAAsB;IACtB,qDAAqD;IACrD,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,WAAW,EAAE,CAAC;YACd,uBAAuB;YACvB,+CAA+C;YAC/C,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAElC,OAAO,GAAG,EAAE;gBACR,yCAAyC;gBACzC,wEAAwE;gBACxE,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACtC,CAAC,CAAC;QACN,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;IAEtD,+BAA+B;IAC/B,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,aAAa,GAAsB,EAAE,CAAC;QAE5C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;YAC9C,MAAM,aAAa,GAAG;gBAClB,QAAQ,EAAE,CAAC,CAAmB,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAW,CAAC;gBAC9D,QAAQ,EAAE,CAAC,CAAmB,EAAE,KAAU,EAAE,EAAE,CAC1C,KAAK,CAAC,QAAQ,CAAC,CAAW,EAAE,KAAK,CAAC;gBACtC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE;gBAClC,SAAS,EAAE,CAAC,MAAkB,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC1D,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE;gBACzB,OAAO,EAAE,aAAa,IAAI,EAAE;aAC/B,CAAC;YAEF,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;gBACvD,0DAA0D;gBAC1D,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBACzC,aAAa,CAAC,OAAO,GAAG,UAAU,CAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAEpD,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YAEH,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,UAAU;QACV,OAAO,GAAG,EAAE;YACR,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnE,4EAA4E;IAC5E,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,OAAO,IAAI,KAAK,CAAC,EAAS,EAAE;YACxB,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBACnB,gEAAgE;gBAChE,MAAM,oBAAoB,GAAG,UAAU,CAAI,MAAM,CAAC,CAAC;gBACnD,MAAM,uBAAuB,GACzB,OAAO,IAAI,oBAAoB,IAAI,EAAE,CAAC;gBAC1C,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YACD,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBACnB,MAAM,oBAAoB,GAAG,UAAU,CAAI,MAAM,CAAC,CAAC;gBACnD,MAAM,uBAAuB,GACzB,OAAO,IAAI,oBAAoB,IAAI,EAAE,CAAC;gBAC1C,OAAO,IAAI,IAAI,uBAAuB,CAAC;YAC3C,CAAC;YACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;gBACjB,MAAM,oBAAoB,GAAG,UAAU,CAAI,MAAM,CAAC,CAAC;gBACnD,MAAM,uBAAuB,GACzB,OAAO,IAAI,oBAAoB,IAAI,EAAE,CAAC;gBAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YACpD,CAAC;YACD,wBAAwB,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBACxC,MAAM,oBAAoB,GAAG,UAAU,CAAI,MAAM,CAAC,CAAC;gBACnD,MAAM,uBAAuB,GACzB,OAAO,IAAI,oBAAoB,IAAI,EAAE,CAAC;gBAC1C,IAAI,IAAI,IAAI,uBAAuB,EAAE,CAAC;oBAClC,OAAO;wBACH,UAAU,EAAE,IAAI;wBAChB,YAAY,EAAE,IAAI;qBACrB,CAAC;gBACN,CAAC;gBACD,OAAO,SAAS,CAAC;YACrB,CAAC;SACJ,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAElC,OAAO;QACH,GAAG,IAAI;QACP,OAAO,EAAE,aAAa,EAAE,8DAA8D;QACtF,MAAM,EAAE,qDAAqD;QAC7D,MAAM,EAAE,KAAK,EAAE,iDAAiD;KACzC,CAAC;AAChC,CAAC"}
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
28
28
|
* SOFTWARE.
|
|
29
29
|
*/
|
|
30
|
-
import { useContext, useEffect, useRef } from "react";
|
|
30
|
+
import { useContext, useEffect, useRef, useMemo } from "react";
|
|
31
31
|
import { useFormaState } from "./useFormaState";
|
|
32
32
|
import { GlobalFormaContext } from "../contexts/GlobalFormaContext";
|
|
33
33
|
import { mergeActions } from "../utils";
|
|
@@ -185,8 +185,41 @@ Details: GlobalFormaContext must be used within GlobalFormaProvider (stateId: ${
|
|
|
185
185
|
};
|
|
186
186
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
187
187
|
}, []); // 완전히 빈 의존성 배열로 마운트 시 한 번만 실행
|
|
188
|
+
// actions를 동적으로 가져오는 getter 생성 / Create getter to dynamically fetch actions
|
|
189
|
+
const actionsGetter = useMemo(() => {
|
|
190
|
+
return new Proxy({}, {
|
|
191
|
+
get: (_target, prop) => {
|
|
192
|
+
// 항상 최신 글로벌 actions를 가져옴 / Always get the latest global actions
|
|
193
|
+
const currentGlobalActions = getActions(stateId);
|
|
194
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
195
|
+
return currentEffectiveActions[prop];
|
|
196
|
+
},
|
|
197
|
+
has: (_target, prop) => {
|
|
198
|
+
const currentGlobalActions = getActions(stateId);
|
|
199
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
200
|
+
return prop in currentEffectiveActions;
|
|
201
|
+
},
|
|
202
|
+
ownKeys: (_target) => {
|
|
203
|
+
const currentGlobalActions = getActions(stateId);
|
|
204
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
205
|
+
return Reflect.ownKeys(currentEffectiveActions);
|
|
206
|
+
},
|
|
207
|
+
getOwnPropertyDescriptor: (_target, prop) => {
|
|
208
|
+
const currentGlobalActions = getActions(stateId);
|
|
209
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
210
|
+
if (prop in currentEffectiveActions) {
|
|
211
|
+
return {
|
|
212
|
+
enumerable: true,
|
|
213
|
+
configurable: true,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
return undefined;
|
|
217
|
+
},
|
|
218
|
+
});
|
|
219
|
+
}, [stateId, actions, getActions]);
|
|
188
220
|
return {
|
|
189
221
|
...formaState,
|
|
222
|
+
actions: actionsGetter, // 동적 actions getter로 교체 / Replace with dynamic actions getter
|
|
190
223
|
stateId, // 글로벌 FormaState ID 추가 제공 / Provide additional global FormaState ID
|
|
191
224
|
_store: store, // 글로벌 스토어 직접 접근용 (이미 formaState에 있지만 명시적으로 재정의) / Direct access to global store
|
|
192
225
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGlobalFormaState.js","sourceRoot":"","sources":["../../../hooks/useGlobalFormaState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useGlobalFormaState.js","sourceRoot":"","sources":["../../../hooks/useGlobalFormaState.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGlobalForm.d.ts","sourceRoot":"","sources":["../../hooks/useGlobalForm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useGlobalForm.d.ts","sourceRoot":"","sources":["../../hooks/useGlobalForm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI9E;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvD,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAE1B;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvD,MAAM,EAAE,MAAM,GACf,mBAAmB,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -79,26 +79,21 @@ Details: GlobalFormaContext must be used within GlobalFormaProvider (formId: ${f
|
|
|
79
79
|
validateAndStoreAutoCleanupSetting(formId, autoCleanup);
|
|
80
80
|
// 글로벌 스토어 가져오기 또는 생성 / Get or create global store
|
|
81
81
|
const store = getOrCreateStore(formId);
|
|
82
|
-
// 핸들러가 제공되면 글로벌에 등록 / Register handlers to global if provided
|
|
83
|
-
(
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
// 배열이면 병합해서 등록
|
|
96
|
-
const mergedActions = (0, utils_1.mergeActions)(actions);
|
|
97
|
-
if (mergedActions) {
|
|
98
|
-
registerActions(formId, mergedActions);
|
|
99
|
-
}
|
|
82
|
+
// 핸들러가 제공되면 글로벌에 동기적으로 등록 / Register handlers to global synchronously if provided
|
|
83
|
+
if (onSubmit || onValidate || onComplete) {
|
|
84
|
+
registerHandlers(formId, {
|
|
85
|
+
onSubmit,
|
|
86
|
+
onValidate,
|
|
87
|
+
onComplete,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
// actions가 제공되면 글로벌에 동기적으로 등록 / Register actions to global synchronously if provided
|
|
91
|
+
if (actions) {
|
|
92
|
+
const mergedActions = (0, utils_1.mergeActions)(actions);
|
|
93
|
+
if (mergedActions) {
|
|
94
|
+
registerActions(formId, mergedActions);
|
|
100
95
|
}
|
|
101
|
-
}
|
|
96
|
+
}
|
|
102
97
|
// 글로벌 핸들러 가져오기 / Get global handlers
|
|
103
98
|
const globalHandlers = getHandlers(formId);
|
|
104
99
|
// 글로벌 actions 가져오기 / Get global actions
|
|
@@ -169,8 +164,41 @@ Details: GlobalFormaContext must be used within GlobalFormaProvider (formId: ${f
|
|
|
169
164
|
unsubscribers.forEach((unsub) => unsub());
|
|
170
165
|
};
|
|
171
166
|
}, [formId, watch, store, globalActions, getActions, form.submit]);
|
|
167
|
+
// actions를 동적으로 가져오는 getter 생성 / Create getter to dynamically fetch actions
|
|
168
|
+
const actionsGetter = (0, react_1.useMemo)(() => {
|
|
169
|
+
return new Proxy({}, {
|
|
170
|
+
get: (_target, prop) => {
|
|
171
|
+
// 항상 최신 글로벌 actions를 가져옴 / Always get the latest global actions
|
|
172
|
+
const currentGlobalActions = getActions(formId);
|
|
173
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
174
|
+
return currentEffectiveActions[prop];
|
|
175
|
+
},
|
|
176
|
+
has: (_target, prop) => {
|
|
177
|
+
const currentGlobalActions = getActions(formId);
|
|
178
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
179
|
+
return prop in currentEffectiveActions;
|
|
180
|
+
},
|
|
181
|
+
ownKeys: (_target) => {
|
|
182
|
+
const currentGlobalActions = getActions(formId);
|
|
183
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
184
|
+
return Reflect.ownKeys(currentEffectiveActions);
|
|
185
|
+
},
|
|
186
|
+
getOwnPropertyDescriptor: (_target, prop) => {
|
|
187
|
+
const currentGlobalActions = getActions(formId);
|
|
188
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
189
|
+
if (prop in currentEffectiveActions) {
|
|
190
|
+
return {
|
|
191
|
+
enumerable: true,
|
|
192
|
+
configurable: true,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
return undefined;
|
|
196
|
+
},
|
|
197
|
+
});
|
|
198
|
+
}, [formId, actions, getActions]);
|
|
172
199
|
return {
|
|
173
200
|
...form,
|
|
201
|
+
actions: actionsGetter, // 동적 actions getter로 교체 / Replace with dynamic actions getter
|
|
174
202
|
formId, // 글로벌 폼 ID 추가 제공 / Provide additional global form ID
|
|
175
203
|
_store: store, // 글로벌 스토어 직접 접근용 / Direct access to global store
|
|
176
204
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGlobalForm.js","sourceRoot":"","sources":["../../hooks/useGlobalForm.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;
|
|
1
|
+
{"version":3,"file":"useGlobalForm.js","sourceRoot":"","sources":["../../hooks/useGlobalForm.ts"],"names":[],"mappings":"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"}
|
|
@@ -188,8 +188,41 @@ Details: GlobalFormaContext must be used within GlobalFormaProvider (stateId: ${
|
|
|
188
188
|
};
|
|
189
189
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
190
190
|
}, []); // 완전히 빈 의존성 배열로 마운트 시 한 번만 실행
|
|
191
|
+
// actions를 동적으로 가져오는 getter 생성 / Create getter to dynamically fetch actions
|
|
192
|
+
const actionsGetter = (0, react_1.useMemo)(() => {
|
|
193
|
+
return new Proxy({}, {
|
|
194
|
+
get: (_target, prop) => {
|
|
195
|
+
// 항상 최신 글로벌 actions를 가져옴 / Always get the latest global actions
|
|
196
|
+
const currentGlobalActions = getActions(stateId);
|
|
197
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
198
|
+
return currentEffectiveActions[prop];
|
|
199
|
+
},
|
|
200
|
+
has: (_target, prop) => {
|
|
201
|
+
const currentGlobalActions = getActions(stateId);
|
|
202
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
203
|
+
return prop in currentEffectiveActions;
|
|
204
|
+
},
|
|
205
|
+
ownKeys: (_target) => {
|
|
206
|
+
const currentGlobalActions = getActions(stateId);
|
|
207
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
208
|
+
return Reflect.ownKeys(currentEffectiveActions);
|
|
209
|
+
},
|
|
210
|
+
getOwnPropertyDescriptor: (_target, prop) => {
|
|
211
|
+
const currentGlobalActions = getActions(stateId);
|
|
212
|
+
const currentEffectiveActions = actions || currentGlobalActions || {};
|
|
213
|
+
if (prop in currentEffectiveActions) {
|
|
214
|
+
return {
|
|
215
|
+
enumerable: true,
|
|
216
|
+
configurable: true,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
return undefined;
|
|
220
|
+
},
|
|
221
|
+
});
|
|
222
|
+
}, [stateId, actions, getActions]);
|
|
191
223
|
return {
|
|
192
224
|
...formaState,
|
|
225
|
+
actions: actionsGetter, // 동적 actions getter로 교체 / Replace with dynamic actions getter
|
|
193
226
|
stateId, // 글로벌 FormaState ID 추가 제공 / Provide additional global FormaState ID
|
|
194
227
|
_store: store, // 글로벌 스토어 직접 접근용 (이미 formaState에 있지만 명시적으로 재정의) / Direct access to global store
|
|
195
228
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGlobalFormaState.js","sourceRoot":"","sources":["../../hooks/useGlobalFormaState.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;AA6GH,
|
|
1
|
+
{"version":3,"file":"useGlobalFormaState.js","sourceRoot":"","sources":["../../hooks/useGlobalFormaState.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ehfuse/forma",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.4",
|
|
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",
|