@deenruv/react-ui-devkit 1.0.5 → 1.0.9
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/components/atoms/chart.d.ts +31 -24
- package/dist/components/atoms/chart.js +7 -2
- package/dist/components/atoms/chart.js.map +1 -1
- package/dist/components/atoms/input.js +12 -12
- package/dist/components/atoms/input.js.map +1 -1
- package/dist/components/core/DeenruvForm.d.ts +23 -0
- package/dist/components/core/DeenruvForm.js +22 -0
- package/dist/components/core/DeenruvForm.js.map +1 -0
- package/dist/components/core/EntityCustomFields.js +46 -38
- package/dist/components/core/EntityCustomFields.js.map +1 -1
- package/dist/components/core/index.d.ts +1 -0
- package/dist/components/core/index.js +1 -0
- package/dist/components/core/index.js.map +1 -1
- package/dist/components/templates/DetailList/useDetailListHook/index.js +11 -14
- package/dist/components/templates/DetailList/useDetailListHook/index.js.map +1 -1
- package/dist/components/templates/DetailView/DetailView.d.ts +4 -9
- package/dist/components/templates/DetailView/DetailView.js +47 -4
- package/dist/components/templates/DetailView/DetailView.js.map +1 -1
- package/dist/components/templates/DetailView/formChangeDetection.d.ts +1 -2
- package/dist/components/templates/DetailView/formChangeDetection.js +3 -4
- package/dist/components/templates/DetailView/formChangeDetection.js.map +1 -1
- package/dist/components/templates/DetailView/types.d.ts +6 -5
- package/dist/components/templates/DetailView/useDetailView.d.ts +40 -32
- package/dist/components/templates/DetailView/useDetailView.js +58 -44
- package/dist/components/templates/DetailView/useDetailView.js.map +1 -1
- package/dist/hooks/createFormSchema.d.ts +16 -0
- package/dist/hooks/createFormSchema.js +19 -0
- package/dist/hooks/createFormSchema.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -1
- package/dist/hooks/index.js +3 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useAssets.d.ts +1 -1
- package/dist/hooks/useDeenruvForm.d.ts +56 -0
- package/dist/hooks/useDeenruvForm.js +66 -0
- package/dist/hooks/useDeenruvForm.js.map +1 -0
- package/dist/hooks/useValidators.js +3 -3
- package/dist/hooks/useValidators.js.map +1 -1
- package/dist/hooks/useZodValidators.d.ts +26 -0
- package/dist/hooks/useZodValidators.js +62 -0
- package/dist/hooks/useZodValidators.js.map +1 -0
- package/dist/lib/composition.js +11 -1
- package/dist/lib/composition.js.map +1 -1
- package/dist/notifications/state.js +5 -1
- package/dist/notifications/state.js.map +1 -1
- package/dist/plugins/plugin-context.d.ts +1 -0
- package/dist/plugins/plugin-context.js +9 -3
- package/dist/plugins/plugin-context.js.map +1 -1
- package/dist/plugins/plugin-store.d.ts +7 -0
- package/dist/plugins/plugin-store.js +19 -0
- package/dist/plugins/plugin-store.js.map +1 -1
- package/dist/plugins/types.d.ts +6 -0
- package/dist/plugins/types.js.map +1 -1
- package/dist/state/global.js +1 -1
- package/dist/universal_components/RichTextEditor/RichTextEditor.js +14 -1
- package/dist/universal_components/RichTextEditor/RichTextEditor.js.map +1 -1
- package/dist/utils/getMutation.d.ts +786 -786
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/setInArrayBy.d.ts +22 -0
- package/dist/utils/setInArrayBy.js +32 -0
- package/dist/utils/setInArrayBy.js.map +1 -0
- package/dist/version.js +1 -1
- package/dist/widgets/DashboardWidgets.js +6 -7
- package/dist/widgets/DashboardWidgets.js.map +1 -1
- package/package.json +61 -58
- package/dist/hooks/useGFFLP.d.ts +0 -48
- package/dist/hooks/useGFFLP.js +0 -156
- package/dist/hooks/useGFFLP.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __assign, __awaiter, __generator, __rest } from "tslib";
|
|
2
|
-
import React, { useCallback, useEffect, useState } from "react";
|
|
2
|
+
import React, { useCallback, useEffect, useRef, useState } from "react";
|
|
3
3
|
import { createContext, useContext } from "react";
|
|
4
4
|
import { DeletionResult } from "@deenruv/admin-types";
|
|
5
5
|
import { DetailLocations, } from "../../../types";
|
|
@@ -18,40 +18,10 @@ var handleError = function (resp) {
|
|
|
18
18
|
.replace(/^\w/, function (c) { return c.toUpperCase(); });
|
|
19
19
|
toast.error(message || "There was an error", { closeButton: false });
|
|
20
20
|
};
|
|
21
|
-
export var DetailViewStoreContext = createContext(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
tab: "",
|
|
26
|
-
tabs: [],
|
|
27
|
-
form: {
|
|
28
|
-
base: {
|
|
29
|
-
state: {},
|
|
30
|
-
setField: function () { },
|
|
31
|
-
checkIfAllFieldsAreValid: function () { return true; },
|
|
32
|
-
clearErrors: function () { },
|
|
33
|
-
haveValidFields: true,
|
|
34
|
-
setState: function () { },
|
|
35
|
-
clearAllForm: function () { },
|
|
36
|
-
},
|
|
37
|
-
onSubmitted: function () { return Promise.resolve({}); },
|
|
38
|
-
onDeleted: function () { return Promise.resolve({}); },
|
|
39
|
-
},
|
|
40
|
-
actionHandler: function () { },
|
|
41
|
-
fetchEntity: function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
42
|
-
return [2 /*return*/, null];
|
|
43
|
-
}); }); },
|
|
44
|
-
setEntity: function () { },
|
|
45
|
-
setSidebar: function () { },
|
|
46
|
-
setActiveTab: function () { },
|
|
47
|
-
getMarker: function () { return null; },
|
|
48
|
-
hasUnsavedChanges: false,
|
|
49
|
-
setAdditionalData: function () { return null; },
|
|
50
|
-
additionalData: {},
|
|
51
|
-
addToQueue: function () { },
|
|
52
|
-
markAsDirty: function () { },
|
|
53
|
-
setLoading: function () { return null; },
|
|
54
|
-
});
|
|
21
|
+
export var DetailViewStoreContext = createContext(
|
|
22
|
+
// Default value is never used — useDetailView() throws when missing Provider.
|
|
23
|
+
// Using null + non-null assertion to avoid polluting with placeholder objects.
|
|
24
|
+
null);
|
|
55
25
|
export var DetailViewStoreProvider = function (_a) {
|
|
56
26
|
var children = _a.children, props = __rest(_a, ["children"]);
|
|
57
27
|
var _b = useState({}), queue = _b[0], setQueue = _b[1];
|
|
@@ -101,15 +71,44 @@ export var DetailViewStoreProvider = function (_a) {
|
|
|
101
71
|
if (id !== undefined)
|
|
102
72
|
fetchEntity();
|
|
103
73
|
}, [tab, id]);
|
|
74
|
+
// Track the latest entity & markedAsDirty in refs so the watch callback
|
|
75
|
+
// (which must remain stable) always sees current values without being
|
|
76
|
+
// a dependency that restarts the subscription.
|
|
77
|
+
var entityRef = useRef(entity);
|
|
78
|
+
entityRef.current = entity;
|
|
79
|
+
var markedAsDirtyRef = useRef(markedAsDirty);
|
|
80
|
+
markedAsDirtyRef.current = markedAsDirty;
|
|
81
|
+
// Recompute unsaved-changes whenever the form values change via RHF's
|
|
82
|
+
// `watch()` subscription — this does NOT cause provider re-renders on
|
|
83
|
+
// every keystroke because `setHasUnsavedChanges` bails out when the
|
|
84
|
+
// boolean value is unchanged (React state identity check).
|
|
85
|
+
useEffect(function () {
|
|
86
|
+
var compute = function () {
|
|
87
|
+
if (markedAsDirtyRef.current) {
|
|
88
|
+
setHasUnsavedChanges(true);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
var formValues = form.base.getValues();
|
|
92
|
+
setHasUnsavedChanges(checkUnsavedChanges(formValues, entityRef.current));
|
|
93
|
+
};
|
|
94
|
+
// Initial computation
|
|
95
|
+
compute();
|
|
96
|
+
// Subscribe to all form value changes — watch() returns an unsubscribe fn
|
|
97
|
+
var subscription = form.base.watch(function () {
|
|
98
|
+
compute();
|
|
99
|
+
});
|
|
100
|
+
return function () { return subscription.unsubscribe(); };
|
|
101
|
+
}, [form.base]);
|
|
102
|
+
// Re-run when entity or markedAsDirty change (refs are updated above,
|
|
103
|
+
// but we still need to trigger a recompute for these external changes).
|
|
104
104
|
useEffect(function () {
|
|
105
|
-
var _hasUnsavedChanges = checkUnsavedChanges(form.base.state, entity);
|
|
106
105
|
if (markedAsDirty) {
|
|
107
106
|
setHasUnsavedChanges(true);
|
|
107
|
+
return;
|
|
108
108
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}, [form.base.state, entity, markedAsDirty]);
|
|
109
|
+
var formValues = form.base.getValues();
|
|
110
|
+
setHasUnsavedChanges(checkUnsavedChanges(formValues, entity));
|
|
111
|
+
}, [entity, markedAsDirty]);
|
|
113
112
|
var handleSuccess = useCallback(function (resp) {
|
|
114
113
|
var mutationName = Object.keys(resp)[0];
|
|
115
114
|
if (mutationName.startsWith("delete") && Array.isArray(resp)) {
|
|
@@ -139,15 +138,18 @@ export var DetailViewStoreProvider = function (_a) {
|
|
|
139
138
|
var key = _a[0], callback = _a[1].callback;
|
|
140
139
|
callback().then(function () { return removeFromQueue(key); });
|
|
141
140
|
});
|
|
141
|
+
var formValues = base === null || base === void 0 ? void 0 : base.getValues();
|
|
142
142
|
if (type === "submit")
|
|
143
|
-
(_a = onSubmitted === null || onSubmitted === void 0 ? void 0 : onSubmitted(
|
|
143
|
+
(_a = onSubmitted === null || onSubmitted === void 0 ? void 0 : onSubmitted(formValues, additionalData)) === null || _a === void 0 ? void 0 : _a.then(handleSuccess).catch(handleError);
|
|
144
144
|
if (type === "delete")
|
|
145
|
-
(_b = onDeleted === null || onDeleted === void 0 ? void 0 : onDeleted(
|
|
145
|
+
(_b = onDeleted === null || onDeleted === void 0 ? void 0 : onDeleted(formValues, additionalData)) === null || _b === void 0 ? void 0 : _b.then(handleSuccess).catch(handleError);
|
|
146
146
|
Object.keys(queue).forEach(removeFromQueue);
|
|
147
147
|
}, [props.form, handleSuccess]);
|
|
148
148
|
var setSidebar = useCallback(function (sidebar) {
|
|
149
149
|
if (typeof sidebar === "undefined") {
|
|
150
|
-
var tabWithSidebar = tabs.find(function (t) {
|
|
150
|
+
var tabWithSidebar = tabs.find(function (t) {
|
|
151
|
+
return "sidebar" in t && t.sidebar !== undefined;
|
|
152
|
+
});
|
|
151
153
|
_setSidebar(tabWithSidebar ? tabWithSidebar.sidebar : sidebar);
|
|
152
154
|
}
|
|
153
155
|
else if (sidebar === null) {
|
|
@@ -238,7 +240,19 @@ export function useDetailView(_type, _key) {
|
|
|
238
240
|
var ctx = useContext(DetailViewStoreContext);
|
|
239
241
|
if (!ctx)
|
|
240
242
|
throw new Error("Missing DetailViewStoreContext.Provider in the tree");
|
|
241
|
-
|
|
243
|
+
return ctx;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Like `useDetailView`, but returns `null` when there is no
|
|
247
|
+
* `DetailViewStoreProvider` in the component tree instead of throwing.
|
|
248
|
+
*
|
|
249
|
+
* Useful in components (e.g. list pages) that may or may not be rendered
|
|
250
|
+
* inside a detail-view context.
|
|
251
|
+
*/
|
|
252
|
+
export function useOptionalDetailView() {
|
|
253
|
+
var ctx = useContext(DetailViewStoreContext);
|
|
254
|
+
if (!ctx)
|
|
255
|
+
return null;
|
|
242
256
|
return ctx;
|
|
243
257
|
}
|
|
244
258
|
//# sourceMappingURL=useDetailView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDetailView.js","sourceRoot":"","sources":["../../../../src/components/templates/DetailView/useDetailView.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useDetailView.js","sourceRoot":"","sources":["../../../../src/components/templates/DetailView/useDetailView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ZodRawShape, type ZodObject } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a Zod schema for a Deenruv admin form.
|
|
4
|
+
* This is a convenience wrapper around z.object() for consistent schema creation.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* const schema = createFormSchema({
|
|
9
|
+
* name: z.string().min(1, 'Name is required'),
|
|
10
|
+
* code: z.string().min(1, 'Code is required'),
|
|
11
|
+
* price: z.number().min(0),
|
|
12
|
+
* customFields: z.record(z.unknown()).optional(),
|
|
13
|
+
* });
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare function createFormSchema<T extends ZodRawShape>(shape: T): ZodObject<T>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a Zod schema for a Deenruv admin form.
|
|
4
|
+
* This is a convenience wrapper around z.object() for consistent schema creation.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* const schema = createFormSchema({
|
|
9
|
+
* name: z.string().min(1, 'Name is required'),
|
|
10
|
+
* code: z.string().min(1, 'Code is required'),
|
|
11
|
+
* price: z.number().min(0),
|
|
12
|
+
* customFields: z.record(z.unknown()).optional(),
|
|
13
|
+
* });
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export function createFormSchema(shape) {
|
|
17
|
+
return z.object(shape);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=createFormSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createFormSchema.js","sourceRoot":"","sources":["../../src/hooks/createFormSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAoC,MAAM,KAAK,CAAC;AAE1D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAQ;IAER,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC"}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export * from "./useLocalStorage.js";
|
|
2
2
|
export * from "./useDebounce.js";
|
|
3
|
-
export * from "./useGFFLP.js";
|
|
4
3
|
export * from "./useRouteGuard.js";
|
|
5
4
|
export * from "./useAssets.js";
|
|
6
5
|
export * from "./useErrorHandler.js";
|
|
7
6
|
export * from "./useValidators.js";
|
|
8
7
|
export * from "./useList.js";
|
|
9
8
|
export * from "./useTranslation.js";
|
|
9
|
+
export * from "./useDeenruvForm.js";
|
|
10
|
+
export * from "./createFormSchema.js";
|
|
11
|
+
export * from "./useZodValidators.js";
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
export * from "./useLocalStorage.js";
|
|
2
2
|
export * from "./useDebounce.js";
|
|
3
|
-
export * from "./useGFFLP.js";
|
|
4
3
|
export * from "./useRouteGuard.js";
|
|
5
4
|
export * from "./useAssets.js";
|
|
6
5
|
export * from "./useErrorHandler.js";
|
|
7
6
|
export * from "./useValidators.js";
|
|
8
7
|
export * from "./useList.js";
|
|
9
8
|
export * from "./useTranslation.js";
|
|
9
|
+
export * from "./useDeenruvForm.js";
|
|
10
|
+
export * from "./createFormSchema.js";
|
|
11
|
+
export * from "./useZodValidators.js";
|
|
10
12
|
//# sourceMappingURL=index.js.map
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
|
|
@@ -7,6 +7,7 @@ type Config = {
|
|
|
7
7
|
export declare const useAssets: (config?: Config) => {
|
|
8
8
|
assets: {
|
|
9
9
|
id: string;
|
|
10
|
+
source: string;
|
|
10
11
|
createdAt: string;
|
|
11
12
|
name: string;
|
|
12
13
|
preview: string;
|
|
@@ -14,7 +15,6 @@ export declare const useAssets: (config?: Config) => {
|
|
|
14
15
|
mimeType: string;
|
|
15
16
|
width: number;
|
|
16
17
|
height: number;
|
|
17
|
-
source: string;
|
|
18
18
|
focalPoint?: {
|
|
19
19
|
x: number;
|
|
20
20
|
y: number;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type UseFormProps, type UseFormReturn, type FieldValues, type Path, type PathValue } from "react-hook-form";
|
|
2
|
+
import type { z } from "zod";
|
|
3
|
+
/**
|
|
4
|
+
* Schema type accepted by `useDeenruvForm`.
|
|
5
|
+
*
|
|
6
|
+
* Uses Zod v4's `z.ZodType` base class which all concrete schema types
|
|
7
|
+
* (`ZodObject`, `ZodEffects`, etc.) extend. The two generics correspond
|
|
8
|
+
* to the schema's `Output` and `Input` types respectively.
|
|
9
|
+
*
|
|
10
|
+
* We re-export this for consumers that need to type a schema variable
|
|
11
|
+
* destined for `useDeenruvForm`.
|
|
12
|
+
*/
|
|
13
|
+
export type ZodSchema<T extends FieldValues = FieldValues> = z.ZodType<T>;
|
|
14
|
+
export interface UseDeenruvFormOptions<T extends FieldValues> {
|
|
15
|
+
/** Zod schema for validation — pass `z.object({...})` or any concrete Zod type. */
|
|
16
|
+
schema: ZodSchema<T>;
|
|
17
|
+
defaultValues?: UseFormProps<T>["defaultValues"];
|
|
18
|
+
mode?: UseFormProps<T>["mode"];
|
|
19
|
+
}
|
|
20
|
+
export interface UseDeenruvFormReturn<T extends FieldValues> extends UseFormReturn<T> {
|
|
21
|
+
/** Convenience alias for setValue with auto-validate and dirty marking */
|
|
22
|
+
setField: <K extends Path<T>>(field: K, value: PathValue<T, K>) => void;
|
|
23
|
+
/** Whether the form currently has any validation errors */
|
|
24
|
+
hasErrors: boolean;
|
|
25
|
+
/** Whether the form is currently valid (no errors) */
|
|
26
|
+
isFormValid: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Core form hook for Deenruv admin panel.
|
|
30
|
+
*
|
|
31
|
+
* Uses React Hook Form + Zod for type-safe form management with
|
|
32
|
+
* schema-based validation.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* const schema = z.object({
|
|
37
|
+
* name: z.string().min(1, 'Name is required'),
|
|
38
|
+
* code: z.string().min(1, 'Code is required'),
|
|
39
|
+
* price: z.number().min(0),
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* const form = useDeenruvForm({
|
|
43
|
+
* schema,
|
|
44
|
+
* defaultValues: { name: '', code: '', price: 0 },
|
|
45
|
+
* });
|
|
46
|
+
*
|
|
47
|
+
* // Use setField for convenient value setting (auto-validates + marks dirty)
|
|
48
|
+
* form.setField('name', 'New Product');
|
|
49
|
+
*
|
|
50
|
+
* // Or use the full RHF API
|
|
51
|
+
* form.watch('name');
|
|
52
|
+
* form.handleSubmit(onSubmit);
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare function useDeenruvForm<T extends FieldValues>(options: UseDeenruvFormOptions<T>): UseDeenruvFormReturn<T>;
|
|
56
|
+
export { z } from "zod";
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { __assign } from "tslib";
|
|
2
|
+
import { useCallback, useMemo } from "react";
|
|
3
|
+
import { useForm, } from "react-hook-form";
|
|
4
|
+
import { zodResolver } from "@hookform/resolvers/zod";
|
|
5
|
+
/**
|
|
6
|
+
* Core form hook for Deenruv admin panel.
|
|
7
|
+
*
|
|
8
|
+
* Uses React Hook Form + Zod for type-safe form management with
|
|
9
|
+
* schema-based validation.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const schema = z.object({
|
|
14
|
+
* name: z.string().min(1, 'Name is required'),
|
|
15
|
+
* code: z.string().min(1, 'Code is required'),
|
|
16
|
+
* price: z.number().min(0),
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* const form = useDeenruvForm({
|
|
20
|
+
* schema,
|
|
21
|
+
* defaultValues: { name: '', code: '', price: 0 },
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* // Use setField for convenient value setting (auto-validates + marks dirty)
|
|
25
|
+
* form.setField('name', 'New Product');
|
|
26
|
+
*
|
|
27
|
+
* // Or use the full RHF API
|
|
28
|
+
* form.watch('name');
|
|
29
|
+
* form.handleSubmit(onSubmit);
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export function useDeenruvForm(options) {
|
|
33
|
+
var _a;
|
|
34
|
+
// @hookform/resolvers@5 exposes both Zod 3 and Zod 4 overloads.
|
|
35
|
+
// With zod@4 the Zod 4 overload should match, but the generic
|
|
36
|
+
// constraints can clash when `T` is loosely inferred (e.g. from
|
|
37
|
+
// `z.record(z.unknown())`). The cast is safe — zodResolver handles
|
|
38
|
+
// Zod 4 schemas natively at runtime.
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
|
+
var resolver = zodResolver(options.schema);
|
|
41
|
+
var form = useForm({
|
|
42
|
+
resolver: resolver,
|
|
43
|
+
defaultValues: options.defaultValues,
|
|
44
|
+
mode: (_a = options.mode) !== null && _a !== void 0 ? _a : "onTouched",
|
|
45
|
+
});
|
|
46
|
+
// RHF's setValue is already referentially stable across renders.
|
|
47
|
+
// Capture it once via ref-style to guarantee the useCallback never
|
|
48
|
+
// gets a new dep and thus never produces a new function identity.
|
|
49
|
+
var setValue = form.setValue;
|
|
50
|
+
var setField = useCallback(function (field, value) {
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
52
|
+
setValue(field, value, {
|
|
53
|
+
shouldValidate: true,
|
|
54
|
+
shouldDirty: true,
|
|
55
|
+
});
|
|
56
|
+
}, [setValue]);
|
|
57
|
+
// Memoize the return object so consumers that destructure or pass the
|
|
58
|
+
// whole form as a prop don't trigger unnecessary child re-renders.
|
|
59
|
+
// `formState` is read via proxy (RHF tracks accessed fields), so we
|
|
60
|
+
// derive hasErrors/isFormValid here — they update when formState does.
|
|
61
|
+
var hasErrors = Object.keys(form.formState.errors).length > 0;
|
|
62
|
+
var isFormValid = form.formState.isValid;
|
|
63
|
+
return useMemo(function () { return (__assign(__assign({}, form), { setField: setField, hasErrors: hasErrors, isFormValid: isFormValid })); }, [form, setField, hasErrors, isFormValid]);
|
|
64
|
+
}
|
|
65
|
+
export { z } from "zod";
|
|
66
|
+
//# sourceMappingURL=useDeenruvForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDeenruvForm.js","sourceRoot":"","sources":["../../src/hooks/useDeenruvForm.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EACL,OAAO,GAOR,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAiCtD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAiC;;IAEjC,gEAAgE;IAChE,8DAA8D;IAC9D,gEAAgE;IAChE,mEAAmE;IACnE,qCAAqC;IACrC,8DAA8D;IAC9D,IAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,MAAa,CAAgB,CAAC;IAEnE,IAAM,IAAI,GAAG,OAAO,CAAI;QACtB,QAAQ,UAAA;QACR,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,IAAI,EAAE,MAAA,OAAO,CAAC,IAAI,mCAAI,WAAW;KAClC,CAAC,CAAC;IAEH,iEAAiE;IACjE,mEAAmE;IACnE,kEAAkE;IAC1D,IAAA,QAAQ,GAAK,IAAI,SAAT,CAAU;IAE1B,IAAM,QAAQ,GAAG,WAAW,CAC1B,UAAoB,KAAQ,EAAE,KAAsB;QAClD,8DAA8D;QAC9D,QAAQ,CAAC,KAAK,EAAE,KAAY,EAAE;YAC5B,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,sEAAsE;IACtE,mEAAmE;IACnE,oEAAoE;IACpE,uEAAuE;IACvE,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAChE,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IAE3C,OAAO,OAAO,CACZ,cAAM,OAAA,uBACD,IAAI,KACP,QAAQ,UAAA,EACR,SAAS,WAAA,EACT,WAAW,aAAA,IACX,EALI,CAKJ,EACF,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CACzC,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC"}
|
|
@@ -31,10 +31,10 @@ export var useValidators = function () {
|
|
|
31
31
|
};
|
|
32
32
|
var translationsValidator = {
|
|
33
33
|
validate: function (v) {
|
|
34
|
-
if (!v)
|
|
34
|
+
if (!v || v.length === 0)
|
|
35
35
|
return [t("validation.nameRequired")];
|
|
36
|
-
var
|
|
37
|
-
if (!
|
|
36
|
+
var hasName = v.some(function (entry) { return entry && entry.name; });
|
|
37
|
+
if (!hasName)
|
|
38
38
|
return [t("validation.nameRequired")];
|
|
39
39
|
},
|
|
40
40
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useValidators.js","sourceRoot":"","sources":["../../src/hooks/useValidators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,CAAC,IAAM,aAAa,GAAG;IACnB,IAAA,CAAC,GAAK,cAAc,CAAC,QAAQ,CAAC,EAA7B,CAA8B;IAEvC,IAAM,aAAa,GAAG;QACpB,QAAQ,EAAE,UAAC,CAA4B;YACrC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC5D,CAAC;KACF,CAAC;IAEF,IAAM,eAAe,GAAG,UAAC,eAAwB,IAAK,OAAA,CAAC;QACrD,QAAQ,EAAE,UAAC,CAA4B;YACrC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;gBAChB,OAAO,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC,EALoD,CAKpD,CAAC;IAEH,IAAM,eAAe,GAAG,UAAC,eAAwB,IAAK,OAAA,CAAC;QACrD,QAAQ,EAAE,UAAC,CAA4B;YACrC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;gBAC/B,OAAO,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC,EALoD,CAKpD,CAAC;IAEH,IAAM,cAAc,GAAG;QACrB,QAAQ,EAAE,UAAC,CAA4B;YACrC,IAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;iBAC1D,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAE5C,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;IAEF,IAAM,qBAAqB,GAAG;QAC5B,QAAQ,EAAE,UACR,CASa;YAEb,IAAI,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"useValidators.js","sourceRoot":"","sources":["../../src/hooks/useValidators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Provides pre-built Zod schemas with localized error messages.
|
|
4
|
+
* These are the Zod equivalents of the old useValidators hook.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* const { requiredString, email, positiveNumber } = useZodValidators();
|
|
9
|
+
*
|
|
10
|
+
* const schema = createFormSchema({
|
|
11
|
+
* name: requiredString(),
|
|
12
|
+
* email: email(),
|
|
13
|
+
* price: positiveNumber(),
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function useZodValidators(): {
|
|
18
|
+
requiredString: (message?: string) => z.ZodString;
|
|
19
|
+
email: (message?: string) => z.ZodString;
|
|
20
|
+
positiveNumber: (message?: string) => z.ZodNumber;
|
|
21
|
+
nonEmptyArray: (message?: string) => z.ZodArray<z.ZodUnknown>;
|
|
22
|
+
translationsWithName: z.ZodArray<z.ZodObject<{
|
|
23
|
+
name: z.ZodString;
|
|
24
|
+
}, z.core.$loose>>;
|
|
25
|
+
customFields: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
26
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { useTranslation } from "./useTranslation.js";
|
|
3
|
+
/**
|
|
4
|
+
* Provides pre-built Zod schemas with localized error messages.
|
|
5
|
+
* These are the Zod equivalents of the old useValidators hook.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* const { requiredString, email, positiveNumber } = useZodValidators();
|
|
10
|
+
*
|
|
11
|
+
* const schema = createFormSchema({
|
|
12
|
+
* name: requiredString(),
|
|
13
|
+
* email: email(),
|
|
14
|
+
* price: positiveNumber(),
|
|
15
|
+
* });
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export function useZodValidators() {
|
|
19
|
+
var t = useTranslation("common").t;
|
|
20
|
+
/** Non-empty string validator */
|
|
21
|
+
var requiredString = function (message) {
|
|
22
|
+
return z.string().min(1, message !== null && message !== void 0 ? message : t("validation.required", "Required"));
|
|
23
|
+
};
|
|
24
|
+
/** Email validator */
|
|
25
|
+
var email = function (message) {
|
|
26
|
+
return z.string().email(message !== null && message !== void 0 ? message : t("validation.invalidEmail", "Invalid email"));
|
|
27
|
+
};
|
|
28
|
+
/** Positive number validator */
|
|
29
|
+
var positiveNumber = function (message) {
|
|
30
|
+
return z
|
|
31
|
+
.number()
|
|
32
|
+
.min(0, message !== null && message !== void 0 ? message : t("validation.mustBePositive", "Must be positive"));
|
|
33
|
+
};
|
|
34
|
+
/** Non-empty array validator */
|
|
35
|
+
var nonEmptyArray = function (message) {
|
|
36
|
+
return z
|
|
37
|
+
.array(z.unknown())
|
|
38
|
+
.min(1, message !== null && message !== void 0 ? message : t("validation.required", "Required"));
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Translations array validator — checks first translation has a name.
|
|
42
|
+
* For migration from translationsValidator.
|
|
43
|
+
*/
|
|
44
|
+
var translationsWithName = z
|
|
45
|
+
.array(z
|
|
46
|
+
.object({
|
|
47
|
+
name: z.string().min(1),
|
|
48
|
+
})
|
|
49
|
+
.passthrough())
|
|
50
|
+
.min(1);
|
|
51
|
+
/** Custom fields schema (permissive) */
|
|
52
|
+
var customFields = z.record(z.string(), z.unknown()).optional().default({});
|
|
53
|
+
return {
|
|
54
|
+
requiredString: requiredString,
|
|
55
|
+
email: email,
|
|
56
|
+
positiveNumber: positiveNumber,
|
|
57
|
+
nonEmptyArray: nonEmptyArray,
|
|
58
|
+
translationsWithName: translationsWithName,
|
|
59
|
+
customFields: customFields,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=useZodValidators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useZodValidators.js","sourceRoot":"","sources":["../../src/hooks/useZodValidators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB;IACtB,IAAA,CAAC,GAAK,cAAc,CAAC,QAAQ,CAAC,EAA7B,CAA8B;IAEvC,iCAAiC;IACjC,IAAM,cAAc,GAAG,UAAC,OAAgB;QACtC,OAAA,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;IAAlE,CAAkE,CAAC;IAErE,sBAAsB;IACtB,IAAM,KAAK,GAAG,UAAC,OAAgB;QAC7B,OAAA,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,CAAC,yBAAyB,EAAE,eAAe,CAAC,CAAC;IAA1E,CAA0E,CAAC;IAE7E,gCAAgC;IAChC,IAAM,cAAc,GAAG,UAAC,OAAgB;QACtC,OAAA,CAAC;aACE,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,CAAC;IAFxE,CAEwE,CAAC;IAE3E,gCAAgC;IAChC,IAAM,aAAa,GAAG,UAAC,OAAgB;QACrC,OAAA,CAAC;aACE,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;aAClB,GAAG,CAAC,CAAC,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;IAF1D,CAE0D,CAAC;IAE7D;;;OAGG;IACH,IAAM,oBAAoB,GAAG,CAAC;SAC3B,KAAK,CACJ,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACxB,CAAC;SACD,WAAW,EAAE,CACjB;SACA,GAAG,CAAC,CAAC,CAAC,CAAC;IAEV,wCAAwC;IACxC,IAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAE9E,OAAO;QACL,cAAc,gBAAA;QACd,KAAK,OAAA;QACL,cAAc,gBAAA;QACd,aAAa,eAAA;QACb,oBAAoB,sBAAA;QACpB,YAAY,cAAA;KACb,CAAC;AACJ,CAAC"}
|
package/dist/lib/composition.js
CHANGED
|
@@ -52,8 +52,18 @@ function useComposedRefs() {
|
|
|
52
52
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
53
53
|
refs[_i] = arguments[_i];
|
|
54
54
|
}
|
|
55
|
+
// Store refs in a mutable ref to avoid recreating the callback on every render.
|
|
56
|
+
// The rest parameter `refs` creates a new array each render, which would
|
|
57
|
+
// invalidate useCallback deps and cause React 19 ref cleanup loops.
|
|
58
|
+
var refsRef = React.useRef(refs);
|
|
59
|
+
refsRef.current = refs;
|
|
55
60
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
56
|
-
return React.useCallback(
|
|
61
|
+
return React.useCallback(function (node) {
|
|
62
|
+
for (var _i = 0, _a = refsRef.current; _i < _a.length; _i++) {
|
|
63
|
+
var ref = _a[_i];
|
|
64
|
+
setRef(ref, node);
|
|
65
|
+
}
|
|
66
|
+
}, []);
|
|
57
67
|
}
|
|
58
68
|
export { composeEventHandlers, composeRefs, useComposedRefs };
|
|
59
69
|
//# sourceMappingURL=composition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition.js","sourceRoot":"","sources":["../../src/lib/composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,oBAAyC,EACzC,eAAoC,EACpC,EAAwC;QAAxC,qBAAsC,EAAE,KAAA,EAAtC,gCAA+B,EAA/B,wBAAwB,mBAAG,IAAI,KAAA;IAEjC,OAAO,SAAS,WAAW,CAAC,KAAQ;QAClC,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAG,KAAK,CAAC,CAAC;QAE9B,IACE,wBAAwB,KAAK,KAAK;YAClC,CAAE,KAA0B,CAAC,gBAAgB,EAC7C,CAAC;YACD,OAAO,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAQD;;;GAGG;AACH,SAAS,MAAM,CAAI,GAAmB,EAAE,KAAQ;IAC9C,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;QAC9B,GAAG,CAAC,KAAK,CAAC,CAAC;IACb,CAAC;SAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QAC5C,GAAiC,CAAC,OAAO,GAAG,KAAK,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW;IAAI,cAAyB;SAAzB,UAAyB,EAAzB,qBAAyB,EAAzB,IAAyB;QAAzB,yBAAyB;;IAC/C,OAAO,UAAC,IAAO;QACb,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE,CAAC;YAApB,IAAM,GAAG,aAAA;YACZ,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe;IAAI,cAAyB;SAAzB,UAAyB,EAAzB,qBAAyB,EAAzB,IAAyB;QAAzB,yBAAyB;;IACnD,uDAAuD;IACvD,OAAO,KAAK,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"composition.js","sourceRoot":"","sources":["../../src/lib/composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,oBAAyC,EACzC,eAAoC,EACpC,EAAwC;QAAxC,qBAAsC,EAAE,KAAA,EAAtC,gCAA+B,EAA/B,wBAAwB,mBAAG,IAAI,KAAA;IAEjC,OAAO,SAAS,WAAW,CAAC,KAAQ;QAClC,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAG,KAAK,CAAC,CAAC;QAE9B,IACE,wBAAwB,KAAK,KAAK;YAClC,CAAE,KAA0B,CAAC,gBAAgB,EAC7C,CAAC;YACD,OAAO,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAQD;;;GAGG;AACH,SAAS,MAAM,CAAI,GAAmB,EAAE,KAAQ;IAC9C,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;QAC9B,GAAG,CAAC,KAAK,CAAC,CAAC;IACb,CAAC;SAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QAC5C,GAAiC,CAAC,OAAO,GAAG,KAAK,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW;IAAI,cAAyB;SAAzB,UAAyB,EAAzB,qBAAyB,EAAzB,IAAyB;QAAzB,yBAAyB;;IAC/C,OAAO,UAAC,IAAO;QACb,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE,CAAC;YAApB,IAAM,GAAG,aAAA;YACZ,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe;IAAI,cAAyB;SAAzB,UAAyB,EAAzB,qBAAyB,EAAzB,IAAyB;QAAzB,yBAAyB;;IACnD,gFAAgF;IAChF,yEAAyE;IACzE,oEAAoE;IACpE,IAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAEvB,uDAAuD;IACvD,OAAO,KAAK,CAAC,WAAW,CAAC,UAAC,IAAO;QAC/B,KAAkB,UAAe,EAAf,KAAA,OAAO,CAAC,OAAO,EAAf,cAAe,EAAf,IAAe,EAAE,CAAC;YAA/B,IAAM,GAAG,SAAA;YACZ,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { __assign, __spreadArray } from "tslib";
|
|
2
|
+
import React, { Fragment } from "react";
|
|
2
3
|
import { createStore } from "zustand";
|
|
3
4
|
export var createNotificationsStore = function (initProps) {
|
|
4
5
|
var DEFAULT_PROPS = {
|
|
@@ -33,7 +34,10 @@ export var createNotificationsStore = function (initProps) {
|
|
|
33
34
|
return (__assign(__assign({}, notification), { placement: (_b = (_a = notification.placements) === null || _a === void 0 ? void 0 : _a.navigation) === null || _b === void 0 ? void 0 : _b.find(function (placement) { return placement.id === id; }) }));
|
|
34
35
|
})
|
|
35
36
|
.filter(function (notification) { return notification.placement; })
|
|
36
|
-
.map(function (notification) {
|
|
37
|
+
.map(function (notification) {
|
|
38
|
+
var _a;
|
|
39
|
+
return (React.createElement(Fragment, { key: notification.id }, (_a = notification.placement) === null || _a === void 0 ? void 0 : _a.component(notification.data)));
|
|
40
|
+
});
|
|
37
41
|
},
|
|
38
42
|
getMainNotification: function (ids) {
|
|
39
43
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/notifications/state.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAOtC,MAAM,CAAC,IAAM,wBAAwB,GAAG,UACtC,SAAuE;IAEvE,IAAM,aAAa,GAAyB;QAC1C,aAAa,EAAE,EAAE;KAClB,CAAC;IACF,OAAO,WAAW,EAA+B,CAAC,UAAC,GAAG,EAAE,GAAG;QACzD,IAAM,aAAa,GAAG,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,aAAa;YAC7C,aAAa,CAAC,aAAa,CAA4B,CAAC;QAC1D,OAAO;YACL,aAAa,eAAA;YACb,eAAe,EAAE,UAAK,YAA2C;gBACvD,IAAA,aAAa,GAAK,GAAG,EAAE,cAAV,CAAW;gBAChC,IAAI,aAAa,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,EAAxB,CAAwB,CAAC;oBAAE,OAAO;gBAChE,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC;oBACd,aAAa,EAAE,gCACV,KAAK,CAAC,aAAa;wBACtB,YAAY;6BACc;iBAC7B,CAAC,EALa,CAKb,CAAC,CAAC;YACN,CAAC;YACD,OAAO,EAAE,UAAK,EAAU,EAAE,IAAO;gBAC/B,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC;oBACd,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,UAAC,YAAY;wBAClD,OAAA,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,uBAAM,YAAY,KAAE,IAAI,MAAA,IAAG,CAAC,CAAC,YAAY;oBAAjE,CAAiE,CAClE;iBACF,CAAC,EAJa,CAIb,CAAC,CAAC;YACN,CAAC;YACD,yBAAyB,EAAE,UAAC,EAAU;gBACpC,OAAO,GAAG,EAAE;qBACT,aAAa,CAAC,GAAG,CAAC,UAAC,YAAY;;oBAAK,OAAA,uBAChC,YAAY,KACf,SAAS,EAAE,MAAA,MAAA,YAAY,CAAC,UAAU,0CAAE,UAAU,0CAAE,IAAI,CAClD,UAAC,SAAS,IAAK,OAAA,SAAS,CAAC,EAAE,KAAK,EAAE,EAAnB,CAAmB,CACnC,IACD,CAAA;iBAAA,CAAC;qBACF,MAAM,CAAC,UAAC,YAAY,IAAK,OAAA,YAAY,CAAC,SAAS,EAAtB,CAAsB,CAAC;qBAChD,GAAG,CAAC,UAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/notifications/state.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAOtC,MAAM,CAAC,IAAM,wBAAwB,GAAG,UACtC,SAAuE;IAEvE,IAAM,aAAa,GAAyB;QAC1C,aAAa,EAAE,EAAE;KAClB,CAAC;IACF,OAAO,WAAW,EAA+B,CAAC,UAAC,GAAG,EAAE,GAAG;QACzD,IAAM,aAAa,GAAG,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,aAAa;YAC7C,aAAa,CAAC,aAAa,CAA4B,CAAC;QAC1D,OAAO;YACL,aAAa,eAAA;YACb,eAAe,EAAE,UAAK,YAA2C;gBACvD,IAAA,aAAa,GAAK,GAAG,EAAE,cAAV,CAAW;gBAChC,IAAI,aAAa,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,EAAxB,CAAwB,CAAC;oBAAE,OAAO;gBAChE,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC;oBACd,aAAa,EAAE,gCACV,KAAK,CAAC,aAAa;wBACtB,YAAY;6BACc;iBAC7B,CAAC,EALa,CAKb,CAAC,CAAC;YACN,CAAC;YACD,OAAO,EAAE,UAAK,EAAU,EAAE,IAAO;gBAC/B,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC;oBACd,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,UAAC,YAAY;wBAClD,OAAA,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,uBAAM,YAAY,KAAE,IAAI,MAAA,IAAG,CAAC,CAAC,YAAY;oBAAjE,CAAiE,CAClE;iBACF,CAAC,EAJa,CAIb,CAAC,CAAC;YACN,CAAC;YACD,yBAAyB,EAAE,UAAC,EAAU;gBACpC,OAAO,GAAG,EAAE;qBACT,aAAa,CAAC,GAAG,CAAC,UAAC,YAAY;;oBAAK,OAAA,uBAChC,YAAY,KACf,SAAS,EAAE,MAAA,MAAA,YAAY,CAAC,UAAU,0CAAE,UAAU,0CAAE,IAAI,CAClD,UAAC,SAAS,IAAK,OAAA,SAAS,CAAC,EAAE,KAAK,EAAE,EAAnB,CAAmB,CACnC,IACD,CAAA;iBAAA,CAAC;qBACF,MAAM,CAAC,UAAC,YAAY,IAAK,OAAA,YAAY,CAAC,SAAS,EAAtB,CAAsB,CAAC;qBAChD,GAAG,CAAC,UAAC,YAAY;;oBAAK,OAAA,CACrB,oBAAC,QAAQ,IAAC,GAAG,EAAE,YAAY,CAAC,EAAE,IAC3B,MAAA,YAAY,CAAC,SAAS,0CAAE,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAC5C,CACZ,CAAA;iBAAA,CAAC,CAAC;YACP,CAAC;YACD,mBAAmB,EAAE,UAAC,GAAa;gBACjC,OAAO,EAAE,CAAC;YACZ,CAAC;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAChC,YAA2C;IAE3C,OAAO,YAA+B,CAAC;AACzC,CAAC"}
|
|
@@ -37,6 +37,7 @@ type PluginStoreContextType = {
|
|
|
37
37
|
topNavigationActionsMenu: DeenruvUIPlugin["topNavigationActionsMenu"];
|
|
38
38
|
configs: Map<string, any>;
|
|
39
39
|
plugins: DeenruvPluginStored[];
|
|
40
|
+
allPlugins: DeenruvPluginStored[];
|
|
40
41
|
};
|
|
41
42
|
export declare function PluginProvider({ children, plugins, context, }: PropsWithChildren<{
|
|
42
43
|
plugins: PluginStore;
|