@molecule/app-react 3.0.2 → 3.1.0
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/README.md +105 -52
- package/dist/hooks/useAuth.d.ts +10 -4
- package/dist/hooks/useAuth.d.ts.map +1 -1
- package/dist/hooks/useAuth.js +10 -4
- package/dist/hooks/useAuth.js.map +1 -1
- package/dist/hooks/useChat.d.ts.map +1 -1
- package/dist/hooks/useChat.js +1 -0
- package/dist/hooks/useChat.js.map +1 -1
- package/dist/hooks/useForm.d.ts +6 -3
- package/dist/hooks/useForm.d.ts.map +1 -1
- package/dist/hooks/useForm.js +36 -5
- package/dist/hooks/useForm.js.map +1 -1
- package/dist/hooks/useProfileForm.d.ts.map +1 -1
- package/dist/hooks/useProfileForm.js +48 -11
- package/dist/hooks/useProfileForm.js.map +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +7 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -4,20 +4,21 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
import { useCallback, useInsertionEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
7
|
+
import { formValuesEqual, snapshotFormValue } from '@molecule/app-forms';
|
|
7
8
|
import { useAuth, useAuthClient } from './useAuth.js';
|
|
8
9
|
import { useForm } from './useForm.js';
|
|
9
10
|
/**
|
|
10
|
-
*
|
|
11
|
+
* Detaches the value snapshot the hook keeps as its baseline.
|
|
11
12
|
*
|
|
12
13
|
* Form values are a plain string-keyed object at runtime; the caller's values
|
|
13
14
|
* TYPE may be an `interface`, which has no index signature to spread from, so
|
|
14
15
|
* the copy goes through the record view and comes back as `TValues`.
|
|
15
16
|
*
|
|
16
17
|
* @param values - The values object to snapshot.
|
|
17
|
-
* @returns A
|
|
18
|
+
* @returns A detached form-value snapshot.
|
|
18
19
|
*/
|
|
19
20
|
function copyValues(values) {
|
|
20
|
-
return
|
|
21
|
+
return snapshotFormValue(values);
|
|
21
22
|
}
|
|
22
23
|
/**
|
|
23
24
|
* Owns load → edit → submit → publish for the signed-in user's profile.
|
|
@@ -44,6 +45,9 @@ export function useProfileForm(options) {
|
|
|
44
45
|
const optionsRef = useRef(options);
|
|
45
46
|
const committedClient = useRef(client);
|
|
46
47
|
const baseline = useRef(copyValues(defaultValues));
|
|
48
|
+
// A late same-account record must not undo fields the person edited, even
|
|
49
|
+
// after those edits became the clean baseline of a completed save.
|
|
50
|
+
const editedFields = useRef(new Set());
|
|
47
51
|
const owner = useRef(null);
|
|
48
52
|
const activeSave = useRef(null);
|
|
49
53
|
const pendingPropagation = useRef(undefined);
|
|
@@ -68,20 +72,26 @@ export function useProfileForm(options) {
|
|
|
68
72
|
const rebase = useCallback((next, preserveAgainst) => {
|
|
69
73
|
const current = readValues();
|
|
70
74
|
baseline.current = copyValues(next);
|
|
71
|
-
form.reset(next);
|
|
72
75
|
if (preserveAgainst) {
|
|
76
|
+
form.updateValues(next, { keepDirtyValues: true });
|
|
73
77
|
for (const key of Object.keys(current)) {
|
|
74
|
-
if (
|
|
78
|
+
if (editedFields.current.has(key) ||
|
|
79
|
+
!formValuesEqual(current[key], preserveAgainst[key])) {
|
|
75
80
|
form.setValue(key, current[key]);
|
|
81
|
+
}
|
|
76
82
|
}
|
|
77
83
|
}
|
|
78
|
-
|
|
84
|
+
else {
|
|
85
|
+
form.reset(next);
|
|
86
|
+
}
|
|
87
|
+
}, [readValues, form.reset, form.updateValues, form.setValue]);
|
|
79
88
|
useLayoutEffect(() => {
|
|
80
89
|
const config = optionsRef.current;
|
|
81
90
|
if (!user) {
|
|
82
91
|
if (owner.current) {
|
|
83
92
|
owner.current = null;
|
|
84
93
|
pendingPropagation.current = undefined;
|
|
94
|
+
editedFields.current.clear();
|
|
85
95
|
rebase(copyValues(config.defaultValues));
|
|
86
96
|
setError(undefined);
|
|
87
97
|
}
|
|
@@ -100,8 +110,10 @@ export function useProfileForm(options) {
|
|
|
100
110
|
const previousBaseline = baseline.current;
|
|
101
111
|
// Keep this token across same-account hydration, but replace it when the
|
|
102
112
|
// account/client changes. A pending validation belongs to that exact owner.
|
|
103
|
-
if (!previous || !sameAccount)
|
|
113
|
+
if (!previous || !sameAccount) {
|
|
104
114
|
owner.current = { client, revision, identity };
|
|
115
|
+
editedFields.current.clear();
|
|
116
|
+
}
|
|
105
117
|
rebase(config.toValues(user), sameAccount ? previousBaseline : undefined);
|
|
106
118
|
if (!sameAccount) {
|
|
107
119
|
pendingPropagation.current = undefined;
|
|
@@ -131,7 +143,7 @@ export function useProfileForm(options) {
|
|
|
131
143
|
const before = copyValues(baseline.current);
|
|
132
144
|
const changes = {};
|
|
133
145
|
for (const key of Object.keys(snapshot)) {
|
|
134
|
-
if (!
|
|
146
|
+
if (!formValuesEqual(snapshot[key], before[key]))
|
|
135
147
|
changes[key] = snapshot[key];
|
|
136
148
|
}
|
|
137
149
|
setError(undefined);
|
|
@@ -154,8 +166,20 @@ export function useProfileForm(options) {
|
|
|
154
166
|
saved = undefined;
|
|
155
167
|
return;
|
|
156
168
|
}
|
|
157
|
-
if (mounted.current)
|
|
158
|
-
|
|
169
|
+
if (mounted.current) {
|
|
170
|
+
const savedValues = config.toValues(saved);
|
|
171
|
+
const current = readValues();
|
|
172
|
+
for (const key of editedFields.current) {
|
|
173
|
+
if (formValuesEqual(current[key], snapshot[key]) &&
|
|
174
|
+
!formValuesEqual(savedValues[key], snapshot[key])) {
|
|
175
|
+
// The accepted response intentionally transformed or cleared
|
|
176
|
+
// this field (for example, a write-only password).
|
|
177
|
+
editedFields.current.delete(key);
|
|
178
|
+
form.setValue(key, savedValues[key]);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
rebase(savedValues, snapshot);
|
|
182
|
+
}
|
|
159
183
|
pendingPropagation.current = saved;
|
|
160
184
|
}
|
|
161
185
|
if (pendingPropagation.current !== undefined) {
|
|
@@ -186,9 +210,21 @@ export function useProfileForm(options) {
|
|
|
186
210
|
return activeSave.current;
|
|
187
211
|
}, [client, readValues, form.handleSubmit, rebase]);
|
|
188
212
|
const register = useCallback((name, registerOptions) => {
|
|
189
|
-
|
|
213
|
+
const registration = form.register(name, registerOptions);
|
|
214
|
+
return {
|
|
215
|
+
...registration,
|
|
216
|
+
onChange: (event) => {
|
|
217
|
+
editedFields.current.add(name);
|
|
218
|
+
registration.onChange(event);
|
|
219
|
+
},
|
|
220
|
+
};
|
|
190
221
|
}, [form.register]);
|
|
222
|
+
const setValue = useCallback((name, value) => {
|
|
223
|
+
editedFields.current.add(name);
|
|
224
|
+
form.setValue(name, value);
|
|
225
|
+
}, [form.setValue]);
|
|
191
226
|
const reset = useCallback(() => {
|
|
227
|
+
editedFields.current.clear();
|
|
192
228
|
form.reset(baseline.current);
|
|
193
229
|
setError(undefined);
|
|
194
230
|
}, [form.reset]);
|
|
@@ -204,6 +240,7 @@ export function useProfileForm(options) {
|
|
|
204
240
|
ready: user !== null,
|
|
205
241
|
error,
|
|
206
242
|
register,
|
|
243
|
+
setValue,
|
|
207
244
|
reset,
|
|
208
245
|
submit,
|
|
209
246
|
formProps: { onSubmit },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProfileForm.js","sourceRoot":"","sources":["../../src/hooks/useProfileForm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"useProfileForm.js","sourceRoot":"","sources":["../../src/hooks/useProfileForm.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +15,11 @@
|
|
|
15
15
|
* from that response before navigating. Configure the endpoint, method and JSON
|
|
16
16
|
* envelope once in `AuthClientConfig`; no page-local session store is needed.
|
|
17
17
|
*
|
|
18
|
+
* **Session restore:** `useAuth().status === 'loading'` is undecided: wait for
|
|
19
|
+
* it and redirect only on `status === 'unauthenticated'`. `'unavailable'` keeps
|
|
20
|
+
* the session candidate for retry, but `isAuthenticated` can be false and `user`
|
|
21
|
+
* can be null. A restore failure other than 401/403 never signs out.
|
|
22
|
+
*
|
|
18
23
|
* @example
|
|
19
24
|
* ```tsx
|
|
20
25
|
* const profile = useProfileForm<User, { name: string; email: string }>({
|
|
@@ -44,16 +49,19 @@
|
|
|
44
49
|
* const authClient = createJWTAuthClient({ baseURL: '/api' })
|
|
45
50
|
*
|
|
46
51
|
* function Dashboard() {
|
|
47
|
-
* const { user,
|
|
52
|
+
* const { user, status, logout } = useAuth<{ name?: string }>()
|
|
48
53
|
* const { t } = useTranslation()
|
|
49
54
|
* const { theme, toggleTheme } = useTheme()
|
|
50
55
|
*
|
|
51
|
-
* if (
|
|
56
|
+
* if (status === 'loading') {
|
|
57
|
+
* return <p>{t('auth.restoring', undefined, { defaultValue: 'Restoring session...' })}</p>
|
|
58
|
+
* }
|
|
59
|
+
* if (status === 'unauthenticated') {
|
|
52
60
|
* return <p>{t('auth.required', undefined, { defaultValue: 'Please log in.' })}</p>
|
|
53
61
|
* }
|
|
54
62
|
* return (
|
|
55
63
|
* <div style={{ background: theme.colors.background }}>
|
|
56
|
-
* <h1>{t('greeting.welcome', { name: user?.name }, { defaultValue: 'Welcome, {{name}}!' })}</h1>
|
|
64
|
+
* <h1>{t('greeting.welcome', { name: user?.name ?? '' }, { defaultValue: 'Welcome, {{name}}!' })}</h1>
|
|
57
65
|
* <button onClick={toggleTheme}>{t('theme.toggle', undefined, { defaultValue: 'Toggle theme' })}</button>
|
|
58
66
|
* <button onClick={() => logout()}>{t('auth.logout', undefined, { defaultValue: 'Log out' })}</button>
|
|
59
67
|
* </div>
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsKG;AAEH,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,2BAA2B,CAAA;AACzC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,11 @@
|
|
|
15
15
|
* from that response before navigating. Configure the endpoint, method and JSON
|
|
16
16
|
* envelope once in `AuthClientConfig`; no page-local session store is needed.
|
|
17
17
|
*
|
|
18
|
+
* **Session restore:** `useAuth().status === 'loading'` is undecided: wait for
|
|
19
|
+
* it and redirect only on `status === 'unauthenticated'`. `'unavailable'` keeps
|
|
20
|
+
* the session candidate for retry, but `isAuthenticated` can be false and `user`
|
|
21
|
+
* can be null. A restore failure other than 401/403 never signs out.
|
|
22
|
+
*
|
|
18
23
|
* @example
|
|
19
24
|
* ```tsx
|
|
20
25
|
* const profile = useProfileForm<User, { name: string; email: string }>({
|
|
@@ -44,16 +49,19 @@
|
|
|
44
49
|
* const authClient = createJWTAuthClient({ baseURL: '/api' })
|
|
45
50
|
*
|
|
46
51
|
* function Dashboard() {
|
|
47
|
-
* const { user,
|
|
52
|
+
* const { user, status, logout } = useAuth<{ name?: string }>()
|
|
48
53
|
* const { t } = useTranslation()
|
|
49
54
|
* const { theme, toggleTheme } = useTheme()
|
|
50
55
|
*
|
|
51
|
-
* if (
|
|
56
|
+
* if (status === 'loading') {
|
|
57
|
+
* return <p>{t('auth.restoring', undefined, { defaultValue: 'Restoring session...' })}</p>
|
|
58
|
+
* }
|
|
59
|
+
* if (status === 'unauthenticated') {
|
|
52
60
|
* return <p>{t('auth.required', undefined, { defaultValue: 'Please log in.' })}</p>
|
|
53
61
|
* }
|
|
54
62
|
* return (
|
|
55
63
|
* <div style={{ background: theme.colors.background }}>
|
|
56
|
-
* <h1>{t('greeting.welcome', { name: user?.name }, { defaultValue: 'Welcome, {{name}}!' })}</h1>
|
|
64
|
+
* <h1>{t('greeting.welcome', { name: user?.name ?? '' }, { defaultValue: 'Welcome, {{name}}!' })}</h1>
|
|
57
65
|
* <button onClick={toggleTheme}>{t('theme.toggle', undefined, { defaultValue: 'Toggle theme' })}</button>
|
|
58
66
|
* <button onClick={() => logout()}>{t('auth.logout', undefined, { defaultValue: 'Log out' })}</button>
|
|
59
67
|
* </div>
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsKG;AAEH,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,2BAA2B,CAAA;AACzC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA"}
|
package/dist/types.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { ReactNode } from 'react';
|
|
|
7
7
|
import type { BackgroundTaskState, ChatAttachment, ChatMessage, ChatProvider, ChatStreamEvent } from '@molecule/app-ai-chat';
|
|
8
8
|
import type { AuthClient, AuthState, RegisterExtraShape } from '@molecule/app-auth';
|
|
9
9
|
import type { DiffFile, EditorFile, EditorProvider, EditorTab, FixWithAIRequest } from '@molecule/app-code-editor';
|
|
10
|
-
import type { FormController, FormOptions } from '@molecule/app-forms';
|
|
10
|
+
import type { FormController, FormOptions, FormResetOptions } from '@molecule/app-forms';
|
|
11
11
|
import type { HttpClient } from '@molecule/app-http';
|
|
12
12
|
import type { I18nProvider, TranslateOptions } from '@molecule/app-i18n';
|
|
13
13
|
import type { PanelId, WorkspaceLayout, WorkspaceProvider } from '@molecule/app-ide';
|
|
@@ -144,7 +144,9 @@ export interface UseAuthResult<T = unknown, TRegister extends RegisterExtraShape
|
|
|
144
144
|
* The session state as one value — render from this instead of combining
|
|
145
145
|
* `initialized`/`authenticated`/`loading`. A stored token AND user make it
|
|
146
146
|
* `'authenticated'` on the first render; only `'loading'` means "no decision
|
|
147
|
-
* yet", so a route guard waits on that and nothing else.
|
|
147
|
+
* yet", so a route guard waits on that and nothing else. `'unavailable'` keeps
|
|
148
|
+
* a session candidate for retry and can have a null profile; redirect only on
|
|
149
|
+
* `'unauthenticated'`.
|
|
148
150
|
*/
|
|
149
151
|
status: AuthState<T>['status'];
|
|
150
152
|
state: AuthState<T>;
|
|
@@ -164,8 +166,10 @@ export interface UseAuthResult<T = unknown, TRegister extends RegisterExtraShape
|
|
|
164
166
|
* `authenticated` read signed out.
|
|
165
167
|
*/
|
|
166
168
|
setSession: AuthClient<T>['setSession'];
|
|
169
|
+
/** Whether a session is authenticated locally; this can be false while unavailable. */
|
|
167
170
|
isAuthenticated: boolean;
|
|
168
171
|
isLoading: boolean;
|
|
172
|
+
/** The cached profile, which can be null while an unavailable candidate is retained. */
|
|
169
173
|
user: T | null;
|
|
170
174
|
}
|
|
171
175
|
/**
|
|
@@ -495,5 +499,5 @@ export interface UsePreviewResult {
|
|
|
495
499
|
/** Navigates the preview to the next navigation-history entry (Forward). */
|
|
496
500
|
forward: () => void;
|
|
497
501
|
}
|
|
498
|
-
export type { AuthClient, AuthState, FormController, FormOptions, HttpClient, Router, RouterConfig, Store, StoreConfig, Theme, };
|
|
502
|
+
export type { AuthClient, AuthState, FormController, FormOptions, FormResetOptions, HttpClient, Router, RouterConfig, Store, StoreConfig, Theme, };
|
|
499
503
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACnF,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,cAAc,EACd,SAAS,EACT,gBAAgB,EACjB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@molecule/app-react",
|
|
3
|
-
"version": "3.0
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "React framework bindings for molecule.dev",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"peerDependencies": {
|
|
26
26
|
"@molecule/app-auth": "^3.0.0",
|
|
27
27
|
"@molecule/app-ai-models": "^1.0.1",
|
|
28
|
-
"@molecule/app-forms": "^2.
|
|
28
|
+
"@molecule/app-forms": "^2.2.0",
|
|
29
29
|
"@molecule/app-utilities": "^1.0.1",
|
|
30
30
|
"@molecule/app-http": "^1.0.1",
|
|
31
31
|
"@molecule/app-i18n": "^1.0.1",
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@molecule/app-ai-models": "1.4.3",
|
|
64
|
-
"@molecule/app-bonds-default-react": "3.0.
|
|
65
|
-
"@molecule/app-i18n": "1.1.
|
|
64
|
+
"@molecule/app-bonds-default-react": "3.0.1",
|
|
65
|
+
"@molecule/app-i18n": "1.1.2",
|
|
66
66
|
"@testing-library/dom": "10.4.2",
|
|
67
67
|
"@testing-library/react": "16.3.3",
|
|
68
68
|
"@types/node": "26.6.5",
|