@epam/ai-dial-chat-hooks 1.3.0-dev.326 → 1.3.0-dev.331
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/catalog/resource-folder.d.ts +8 -0
- package/catalog/resource-folder.d.ts.map +1 -0
- package/catalog/resource-folder.js +13 -0
- package/catalog/resource-save-adapter.d.ts +36 -0
- package/catalog/resource-save-adapter.d.ts.map +1 -0
- package/catalog/resource-save-adapter.js +4 -0
- package/catalog/resource-save-adapters.d.ts +93 -0
- package/catalog/resource-save-adapters.d.ts.map +1 -0
- package/catalog/resource-save-adapters.js +116 -0
- package/catalog/resource-save.d.ts +76 -0
- package/catalog/resource-save.d.ts.map +1 -0
- package/catalog/resource-save.js +52 -0
- package/catalog/useApplicationCredentialActions/useApplicationCredentialActions.d.ts +57 -0
- package/catalog/useApplicationCredentialActions/useApplicationCredentialActions.d.ts.map +1 -0
- package/catalog/useApplicationCredentialActions/useApplicationCredentialActions.js +67 -0
- package/catalog/useResourceFolders/useResourceFolders.d.ts +33 -0
- package/catalog/useResourceFolders/useResourceFolders.d.ts.map +1 -0
- package/catalog/useResourceFolders/useResourceFolders.js +58 -0
- package/catalog/useResourceSavePanel/useResourceSavePanel.d.ts +64 -0
- package/catalog/useResourceSavePanel/useResourceSavePanel.d.ts.map +1 -0
- package/catalog/useResourceSavePanel/useResourceSavePanel.js +173 -0
- package/catalog.js +11 -4
- package/entry-points/catalog.d.ts +6 -0
- package/entry-points/catalog.d.ts.map +1 -1
- package/entry-points/external-services.d.ts +4 -0
- package/entry-points/external-services.d.ts.map +1 -1
- package/entry-points/oauth.d.ts +1 -0
- package/entry-points/oauth.d.ts.map +1 -1
- package/entry-points/sharing.d.ts +4 -0
- package/entry-points/sharing.d.ts.map +1 -1
- package/external-services.js +5 -1
- package/index.d.ts +15 -0
- package/index.d.ts.map +1 -1
- package/index.js +183 -169
- package/oauth/callback-exchange.d.ts +49 -0
- package/oauth/callback-exchange.d.ts.map +1 -0
- package/oauth/callback-exchange.js +29 -0
- package/oauth.js +3 -2
- package/package.json +17 -17
- package/scheduled-task/scheduled-task-description.d.ts +2 -3
- package/scheduled-task/scheduled-task-description.d.ts.map +1 -1
- package/scheduled-task/scheduled-task-description.js +26 -26
- package/scheduled-task/scheduled-task-display.d.ts +1 -3
- package/scheduled-task/scheduled-task-display.d.ts.map +1 -1
- package/scheduled-task/scheduled-task-display.js +16 -17
- package/scheduled-task/scheduled-task-next-occurrence.d.ts +3 -3
- package/scheduled-task/scheduled-task-next-occurrence.d.ts.map +1 -1
- package/scheduled-task/scheduled-task-next-occurrence.js +2 -2
- package/scheduled-task/scheduled-task-trigger.d.ts.map +1 -1
- package/scheduled-task/scheduled-task-trigger.js +67 -70
- package/share-invitation/models.d.ts +46 -0
- package/share-invitation/models.d.ts.map +1 -0
- package/share-invitation/share-invitation-error.d.ts +6 -0
- package/share-invitation/share-invitation-error.d.ts.map +1 -0
- package/share-invitation/share-invitation-error.js +37 -0
- package/share-invitation/types.d.ts +10 -0
- package/share-invitation/types.d.ts.map +1 -0
- package/share-invitation/types.js +6 -0
- package/share-invitation/useAcceptShareInvitation/useAcceptShareInvitation.d.ts +9 -0
- package/share-invitation/useAcceptShareInvitation/useAcceptShareInvitation.d.ts.map +1 -0
- package/share-invitation/useAcceptShareInvitation/useAcceptShareInvitation.js +26 -0
- package/sharing.js +5 -2
- package/signin-interrupt/models.d.ts +48 -0
- package/signin-interrupt/models.d.ts.map +1 -0
- package/signin-interrupt/signin-row-info.d.ts +10 -0
- package/signin-interrupt/signin-row-info.d.ts.map +1 -0
- package/signin-interrupt/signin-row-info.js +21 -0
- package/signin-interrupt/types.d.ts +28 -0
- package/signin-interrupt/types.d.ts.map +1 -0
- package/signin-interrupt/types.js +10 -0
- package/signin-interrupt/useSigninInterrupt/useSigninInterrupt.d.ts +52 -0
- package/signin-interrupt/useSigninInterrupt/useSigninInterrupt.d.ts.map +1 -0
- package/signin-interrupt/useSigninInterrupt/useSigninInterrupt.js +270 -0
- package/skill/useSkillEditorSubmit.d.ts +13 -1
- package/skill/useSkillEditorSubmit.d.ts.map +1 -1
- package/skill/useSkillEditorSubmit.js +158 -79
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SkillUploadResponseDto } from '@epam/ai-dial-chat-api-client';
|
|
2
2
|
import { SkillEditorErrors, SkillEditorValues, SkillFileTreeNode } from '@epam/ai-dial-skill-editor';
|
|
3
3
|
import { NotificationVariant } from '@epam/ai-dial-ui-kit';
|
|
4
|
+
import { ResourceSaveAdapter } from '../catalog/resource-save-adapter';
|
|
4
5
|
import { SkillFileContent } from './skill-file-preview';
|
|
5
6
|
type SubmitPhase = 'idle' | 'submitting' | 'success' | 'failure';
|
|
6
7
|
/** Already-configured DIAL Core write operations `useSkillEditorSubmit` needs. */
|
|
@@ -9,6 +10,10 @@ export interface SkillEditorSubmitClient {
|
|
|
9
10
|
createSkill: (bucket: string, path: string, skillManifest: string, filePaths: string[], files: Blob[]) => Promise<SkillUploadResponseDto>;
|
|
10
11
|
/** Updates an existing skill, sending `ifMatch` as the concurrency guard. */
|
|
11
12
|
updateSkill: (bucket: string, path: string, skillManifest: string, filePaths: string[], files: Blob[], ifMatch: string) => Promise<SkillUploadResponseDto>;
|
|
13
|
+
/** Moves one of the caller's skills into `folderPath` (plain text, `''` for the root); needed by the Save panel flow. */
|
|
14
|
+
moveSkill?: (path: string, folderPath: string) => Promise<{
|
|
15
|
+
id: string;
|
|
16
|
+
}>;
|
|
12
17
|
}
|
|
13
18
|
/** Localized messages `useSkillEditorSubmit` needs. */
|
|
14
19
|
export interface SkillEditorSubmitMessages {
|
|
@@ -88,6 +93,13 @@ export interface UseSkillEditorSubmitParams {
|
|
|
88
93
|
onNavigate: (url: string) => void;
|
|
89
94
|
/** Called to surface a host notification (success toast or unexpected-error toast). */
|
|
90
95
|
onNotify: (notification: SkillEditorSubmitNotification) => void;
|
|
96
|
+
/**
|
|
97
|
+
* Hands a validated submit to the host's Save panel instead of writing it:
|
|
98
|
+
* the adapter creates the skill in the chosen folder, or saves it in place
|
|
99
|
+
* and moves it. Its failures carry already-translated messages. The hook
|
|
100
|
+
* then shows no notification and does not navigate; the panel owns both.
|
|
101
|
+
*/
|
|
102
|
+
onSaveRequest?: (adapter: ResourceSaveAdapter, values: SkillEditorValues) => void;
|
|
91
103
|
}
|
|
92
104
|
/** Return value of {@link useSkillEditorSubmit}. */
|
|
93
105
|
export interface UseSkillEditorSubmitResult {
|
|
@@ -122,6 +134,6 @@ export interface UseSkillEditorSubmitResult {
|
|
|
122
134
|
* `client.createSkill`/`client.updateSkill`, and mapping the resulting
|
|
123
135
|
* success/error/conflict outcomes to presentable state.
|
|
124
136
|
*/
|
|
125
|
-
export declare const useSkillEditorSubmit: ({ bucket, isEditMode, files, filesContentRef, contentRevisions, frontmatterRef, loadedPathRef, etagRef, returnUrl, getCreateReturnUrl, refetchSkills, client, messages, onNavigate, onNotify, }: UseSkillEditorSubmitParams) => UseSkillEditorSubmitResult;
|
|
137
|
+
export declare const useSkillEditorSubmit: ({ bucket, isEditMode, files, filesContentRef, contentRevisions, frontmatterRef, loadedPathRef, etagRef, returnUrl, getCreateReturnUrl, refetchSkills, client, messages, onNavigate, onNotify, onSaveRequest, }: UseSkillEditorSubmitParams) => UseSkillEditorSubmitResult;
|
|
126
138
|
export {};
|
|
127
139
|
//# sourceMappingURL=useSkillEditorSubmit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSkillEditorSubmit.d.ts","sourceRoot":"","sources":["../../src/skill/useSkillEditorSubmit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"useSkillEditorSubmit.d.ts","sourceRoot":"","sources":["../../src/skill/useSkillEditorSubmit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,157 +1,236 @@
|
|
|
1
1
|
import { getApiErrorDetails as e, getApiErrorStatus as t } from "../api-error/api-error.js";
|
|
2
2
|
import { SKILL_TEXT_FIELD_MAX_LENGTHS as n, buildSkillFilesPayload as r, buildSkillManifestForSubmit as i, getSkillFieldLengthViolations as a, isValidSkillRelativePath as o, normalizeSkillName as s, startsWithFrontmatterBlock as c } from "./skill.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { ResourceSaveError as l } from "../catalog/resource-save-adapter.js";
|
|
4
|
+
import { useCallback as u, useRef as d, useState as f } from "react";
|
|
5
|
+
import { NotificationVariant as p } from "@epam/ai-dial-ui-kit";
|
|
5
6
|
//#region src/skill/useSkillEditorSubmit.ts
|
|
6
|
-
var
|
|
7
|
+
var m = (e, t, n) => JSON.stringify({
|
|
7
8
|
values: e,
|
|
8
9
|
files: [...t].sort((e, t) => e.path.localeCompare(t.path)),
|
|
9
10
|
contentRevisions: Object.entries(n).sort(([e], [t]) => e.localeCompare(t))
|
|
10
|
-
}),
|
|
11
|
-
let [
|
|
11
|
+
}), h = {}, g = ({ bucket: g, isEditMode: _, files: v, filesContentRef: y, contentRevisions: b = h, frontmatterRef: x, loadedPathRef: S, etagRef: C, returnUrl: w, getCreateReturnUrl: T, refetchSkills: E, client: D, messages: O, onNavigate: k, onNotify: A, onSaveRequest: j }) => {
|
|
12
|
+
let [M, N] = f({}), [P, F] = f(), [I, L] = f(!1), [R, z] = f(), [B, V] = f("idle"), H = d(null), U = d(null), W = u(async (n) => {
|
|
12
13
|
switch (t(n)) {
|
|
13
14
|
case 409:
|
|
14
|
-
|
|
15
|
+
N({ name: O.nameConflict });
|
|
15
16
|
return;
|
|
16
17
|
case 412:
|
|
17
|
-
|
|
18
|
+
N({ name: O.nameConflict });
|
|
18
19
|
return;
|
|
19
20
|
case 413:
|
|
20
|
-
|
|
21
|
+
F(O.archiveTooLarge);
|
|
21
22
|
return;
|
|
22
23
|
case 503:
|
|
23
|
-
|
|
24
|
+
F(O.serviceUnavailable), L(!0);
|
|
24
25
|
return;
|
|
25
26
|
case 400: {
|
|
26
27
|
let { message: t } = await e(n);
|
|
27
|
-
|
|
28
|
+
F(t ?? O.pathInvalid);
|
|
28
29
|
return;
|
|
29
30
|
}
|
|
30
31
|
default: {
|
|
31
32
|
let { traceId: t } = await e(n);
|
|
32
|
-
|
|
33
|
-
variant:
|
|
34
|
-
message:
|
|
33
|
+
F(O.saveError), A({
|
|
34
|
+
variant: p.Error,
|
|
35
|
+
message: O.saveError,
|
|
35
36
|
requestId: t
|
|
36
37
|
});
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
|
-
}, [
|
|
40
|
+
}, [O, A]), G = u(async (e) => {
|
|
40
41
|
let t = s(e.name);
|
|
41
42
|
if (!t || !o(t)) {
|
|
42
|
-
|
|
43
|
+
N({ name: O.nameInvalid });
|
|
43
44
|
return;
|
|
44
45
|
}
|
|
45
|
-
let n =
|
|
46
|
-
c ? {skillManifest: u, filePaths: d, files:
|
|
46
|
+
let n = m(e, v, b), a = H.current, c = a != null && a.fingerprint === n, l = t, u, d, f;
|
|
47
|
+
c ? {skillManifest: u, filePaths: d, files: f} = a : (u = i(x.current, t, e.description, e.instructions), {filePaths: d, files: f} = r(v, y.current)), V("submitting"), H.current = {
|
|
47
48
|
fingerprint: n,
|
|
48
|
-
bucket:
|
|
49
|
+
bucket: g,
|
|
49
50
|
path: l,
|
|
50
51
|
skillManifest: u,
|
|
51
52
|
filePaths: d,
|
|
52
|
-
files:
|
|
53
|
+
files: f
|
|
53
54
|
};
|
|
54
55
|
try {
|
|
55
|
-
await
|
|
56
|
-
variant:
|
|
57
|
-
title:
|
|
58
|
-
message:
|
|
59
|
-
}),
|
|
56
|
+
await D.createSkill(g, l, u, d, f), await E(), V("success"), A({
|
|
57
|
+
variant: p.Success,
|
|
58
|
+
title: O.saveSuccessTitle,
|
|
59
|
+
message: O.createSuccess(t)
|
|
60
|
+
}), k(T?.(l) ?? w);
|
|
60
61
|
} catch (e) {
|
|
61
|
-
|
|
62
|
+
V("failure"), await W(e);
|
|
62
63
|
}
|
|
63
64
|
}, [
|
|
64
|
-
|
|
65
|
-
_,
|
|
65
|
+
g,
|
|
66
66
|
v,
|
|
67
67
|
y,
|
|
68
68
|
b,
|
|
69
|
+
x,
|
|
70
|
+
O,
|
|
69
71
|
D,
|
|
70
|
-
|
|
72
|
+
A,
|
|
71
73
|
k,
|
|
72
|
-
O,
|
|
73
|
-
C,
|
|
74
74
|
w,
|
|
75
75
|
T,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
E,
|
|
77
|
+
W
|
|
78
|
+
]), K = u(async (e) => {
|
|
79
|
+
let n = S.current, a = C.current;
|
|
79
80
|
if (!n || !a) {
|
|
80
|
-
|
|
81
|
+
F(O.saveError);
|
|
81
82
|
return;
|
|
82
83
|
}
|
|
83
|
-
let o = i(
|
|
84
|
-
|
|
84
|
+
let o = i(x.current, e.name, e.description, e.instructions), { filePaths: s, files: c } = r(v, y.current);
|
|
85
|
+
V("submitting");
|
|
85
86
|
try {
|
|
86
|
-
|
|
87
|
-
variant:
|
|
88
|
-
title:
|
|
89
|
-
message:
|
|
90
|
-
}),
|
|
87
|
+
C.current = (await D.updateSkill(g, n, o, s, c, a)).etag ?? a, await E(), V("success"), A({
|
|
88
|
+
variant: p.Success,
|
|
89
|
+
title: O.updateSuccessTitle,
|
|
90
|
+
message: O.updateSuccess(e.name)
|
|
91
|
+
}), k(w);
|
|
91
92
|
} catch (e) {
|
|
92
|
-
if (
|
|
93
|
-
|
|
93
|
+
if (V("failure"), t(e) === 412) {
|
|
94
|
+
z({ message: O.conflictMessage });
|
|
94
95
|
return;
|
|
95
96
|
}
|
|
96
|
-
await
|
|
97
|
+
await W(e);
|
|
97
98
|
}
|
|
98
99
|
}, [
|
|
99
|
-
|
|
100
|
-
_,
|
|
100
|
+
g,
|
|
101
101
|
v,
|
|
102
|
-
|
|
102
|
+
y,
|
|
103
103
|
x,
|
|
104
104
|
S,
|
|
105
|
+
C,
|
|
106
|
+
O,
|
|
105
107
|
D,
|
|
106
|
-
|
|
108
|
+
A,
|
|
107
109
|
k,
|
|
108
|
-
|
|
110
|
+
w,
|
|
111
|
+
E,
|
|
112
|
+
W
|
|
113
|
+
]), q = u(async (n, r) => {
|
|
114
|
+
let i = t(n);
|
|
115
|
+
if (i === 412 && r) return z({ message: O.conflictMessage }), new l(O.conflictMessage);
|
|
116
|
+
if (i === 409 || i === 412) return new l(O.nameConflict);
|
|
117
|
+
if (i === 413) return new l(O.archiveTooLarge);
|
|
118
|
+
if (i === 503) return new l(O.serviceUnavailable);
|
|
119
|
+
if (i === 400) {
|
|
120
|
+
let { message: t } = await e(n);
|
|
121
|
+
return new l(t ?? O.pathInvalid);
|
|
122
|
+
}
|
|
123
|
+
return new l(O.saveError);
|
|
124
|
+
}, [O]), J = u((e) => {
|
|
125
|
+
let t = g, { filePaths: n, files: a } = r(v, y.current);
|
|
126
|
+
if (!_) {
|
|
127
|
+
let r = s(e.name);
|
|
128
|
+
if (!r || !o(r)) {
|
|
129
|
+
N({ name: O.nameInvalid });
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
let c = i(x.current, r, e.description, e.instructions);
|
|
133
|
+
return {
|
|
134
|
+
publishEntityType: "skill",
|
|
135
|
+
isVersioned: !1,
|
|
136
|
+
createIn: async (e) => {
|
|
137
|
+
let i = [...e, r].join("/");
|
|
138
|
+
try {
|
|
139
|
+
await D.createSkill(t, i, c, n, a);
|
|
140
|
+
} catch (e) {
|
|
141
|
+
throw await q(e, !1);
|
|
142
|
+
}
|
|
143
|
+
return await E().catch(() => void 0), { id: `skills/${t}/${i}` };
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
let c = S.current, u = C.current;
|
|
148
|
+
if (!c || !u) {
|
|
149
|
+
F(O.saveError);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
let d = i(x.current, e.name, e.description, e.instructions);
|
|
153
|
+
return {
|
|
154
|
+
publishEntityType: "skill",
|
|
155
|
+
isVersioned: !1,
|
|
156
|
+
saveInPlace: async () => {
|
|
157
|
+
try {
|
|
158
|
+
C.current = (await D.updateSkill(t, c, d, n, a, C.current ?? u)).etag ?? u;
|
|
159
|
+
} catch (e) {
|
|
160
|
+
throw await q(e, !0);
|
|
161
|
+
}
|
|
162
|
+
return await E().catch(() => void 0), { id: `skills/${t}/${c}` };
|
|
163
|
+
},
|
|
164
|
+
move: async (e, t) => {
|
|
165
|
+
if (!D.moveSkill) throw new l(O.saveError);
|
|
166
|
+
try {
|
|
167
|
+
return await D.moveSkill(c, t.join("/"));
|
|
168
|
+
} catch (e) {
|
|
169
|
+
throw await q(e, !1);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
}, [
|
|
174
|
+
g,
|
|
175
|
+
D,
|
|
109
176
|
C,
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
177
|
+
v,
|
|
178
|
+
y,
|
|
179
|
+
x,
|
|
180
|
+
_,
|
|
181
|
+
S,
|
|
182
|
+
O,
|
|
183
|
+
E,
|
|
184
|
+
q
|
|
185
|
+
]), Y = u((e) => {
|
|
113
186
|
let t = c(e.instructions), r = a(e);
|
|
114
|
-
|
|
187
|
+
N((e) => {
|
|
115
188
|
let i = { ...e };
|
|
116
189
|
for (let e of Object.keys(n)) {
|
|
117
|
-
let t =
|
|
190
|
+
let t = O.tooLong(n[e]);
|
|
118
191
|
r[e] ? i[e] = t : i[e] === t && delete i[e];
|
|
119
192
|
}
|
|
120
193
|
if (!r.instructions) {
|
|
121
|
-
let e = i.instructions ===
|
|
122
|
-
t && !e ? i.instructions =
|
|
194
|
+
let e = i.instructions === O.instructionsFrontmatter;
|
|
195
|
+
t && !e ? i.instructions = O.instructionsFrontmatter : !t && e && delete i.instructions;
|
|
123
196
|
}
|
|
124
197
|
return Object.keys(i).length === Object.keys(e).length && Object.keys(i).every((t) => i[t] === e[t]) ? e : i;
|
|
125
198
|
});
|
|
126
|
-
}, [
|
|
127
|
-
if (
|
|
199
|
+
}, [O]), X = u(async (e) => {
|
|
200
|
+
if (B === "submitting" || !g) return;
|
|
128
201
|
let t = {};
|
|
129
|
-
e.name.trim() || (t.name =
|
|
202
|
+
e.name.trim() || (t.name = O.required), e.description.trim() || (t.description = O.required), e.instructions.trim() ? c(e.instructions) && (t.instructions = O.instructionsFrontmatter) : t.instructions = O.required;
|
|
130
203
|
let r = a(e);
|
|
131
|
-
for (let e of Object.keys(r)) t[e] ??=
|
|
132
|
-
Object.keys(t).length > 0
|
|
204
|
+
for (let e of Object.keys(r)) t[e] ??= O.tooLong(n[e]);
|
|
205
|
+
if (Object.keys(t).length > 0) N(t);
|
|
206
|
+
else if (N({}), F(void 0), L(!1), z(void 0), U.current = e, j) {
|
|
207
|
+
let t = J(e);
|
|
208
|
+
t && j(t, e);
|
|
209
|
+
} else _ ? await K(e) : await G(e);
|
|
133
210
|
}, [
|
|
134
|
-
|
|
135
|
-
h,
|
|
136
|
-
D,
|
|
211
|
+
B,
|
|
137
212
|
g,
|
|
138
|
-
|
|
139
|
-
|
|
213
|
+
O,
|
|
214
|
+
_,
|
|
215
|
+
j,
|
|
216
|
+
J,
|
|
217
|
+
K,
|
|
218
|
+
G
|
|
140
219
|
]);
|
|
141
220
|
return {
|
|
142
|
-
phase:
|
|
143
|
-
errors:
|
|
144
|
-
submitError:
|
|
145
|
-
isSubmitErrorRetryable:
|
|
146
|
-
retrySubmit:
|
|
147
|
-
let e =
|
|
148
|
-
e != null &&
|
|
149
|
-
}, [
|
|
150
|
-
conflict:
|
|
151
|
-
clearConflict: () =>
|
|
152
|
-
handleSubmit:
|
|
153
|
-
handleValuesChange:
|
|
221
|
+
phase: B,
|
|
222
|
+
errors: M,
|
|
223
|
+
submitError: P,
|
|
224
|
+
isSubmitErrorRetryable: I,
|
|
225
|
+
retrySubmit: u(() => {
|
|
226
|
+
let e = U.current;
|
|
227
|
+
e != null && X(e);
|
|
228
|
+
}, [X]),
|
|
229
|
+
conflict: R,
|
|
230
|
+
clearConflict: () => z(void 0),
|
|
231
|
+
handleSubmit: X,
|
|
232
|
+
handleValuesChange: Y
|
|
154
233
|
};
|
|
155
234
|
};
|
|
156
235
|
//#endregion
|
|
157
|
-
export {
|
|
236
|
+
export { g as useSkillEditorSubmit };
|