dynim-react 1.0.35 → 1.0.36
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/DynimProvider.d.ts.map +1 -1
- package/dist/DynimProvider.js +29 -58
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynimProvider.d.ts","sourceRoot":"","sources":["../src/DynimProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAc,EAQZ,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AAUf,OAAO,KAAK,EAKV,WAAW,EAEZ,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,WAAW;IAC1B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,kCAAkC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC;IACzC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,qBAAqB;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,0CAA0C;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,yBAAyB;IACzB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,oCAAoC;IACpC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,yDAAyD;IACzD,WAAW,EAAE,WAAW,CAAC;IACzB,2CAA2C;IAC3C,cAAc,EAAE,OAAO,CAAC;IACxB,gCAAgC;IAChC,eAAe,EAAE,OAAO,CAAC;CAC1B;AAID,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,MAAW,GACZ,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"DynimProvider.d.ts","sourceRoot":"","sources":["../src/DynimProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAc,EAQZ,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AAUf,OAAO,KAAK,EAKV,WAAW,EAEZ,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,WAAW;IAC1B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,kCAAkC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC;IACzC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,qBAAqB;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,0CAA0C;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,yBAAyB;IACzB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,oCAAoC;IACpC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,yDAAyD;IACzD,WAAW,EAAE,WAAW,CAAC;IACzB,2CAA2C;IAC3C,cAAc,EAAE,OAAO,CAAC;IACxB,gCAAgC;IAChC,eAAe,EAAE,OAAO,CAAC;CAC1B;AAID,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,MAAW,GACZ,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAiWlC;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C"}
|
package/dist/DynimProvider.js
CHANGED
|
@@ -198,74 +198,43 @@ export function DynimProvider({ children, config = {}, }) {
|
|
|
198
198
|
useEffect(() => {
|
|
199
199
|
loadBundleRef.current = loadBundle;
|
|
200
200
|
}, [loadBundle]);
|
|
201
|
-
//
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
getAuthToken();
|
|
205
|
-
}
|
|
206
|
-
}, [getAuthToken]);
|
|
207
|
-
// Fetch theme from API (per project, only once)
|
|
208
|
-
useEffect(() => {
|
|
201
|
+
// Theme is fetched lazily when entering builder mode
|
|
202
|
+
// This avoids making HTTP requests on mount that could trigger auth redirects
|
|
203
|
+
const fetchTheme = useCallback(async () => {
|
|
209
204
|
if (hasAttemptedThemeLoadRef.current)
|
|
210
205
|
return;
|
|
211
206
|
if (!configRef.current.getSession)
|
|
212
207
|
return;
|
|
213
208
|
hasAttemptedThemeLoadRef.current = true;
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
220
|
-
}
|
|
221
|
-
const response = await fetch('/api/code/theme', {
|
|
222
|
-
headers,
|
|
223
|
-
credentials: 'include',
|
|
224
|
-
});
|
|
225
|
-
if (response.ok) {
|
|
226
|
-
const data = await response.json();
|
|
227
|
-
setTheme(data);
|
|
228
|
-
}
|
|
209
|
+
try {
|
|
210
|
+
const token = await getAuthToken();
|
|
211
|
+
const headers = {};
|
|
212
|
+
if (token) {
|
|
213
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
229
214
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
215
|
+
const response = await fetch('/api/code/theme', {
|
|
216
|
+
headers,
|
|
217
|
+
credentials: 'include',
|
|
218
|
+
});
|
|
219
|
+
if (response.ok) {
|
|
220
|
+
const data = await response.json();
|
|
221
|
+
setTheme(data);
|
|
233
222
|
}
|
|
234
|
-
}
|
|
235
|
-
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
// Theme fetch failed - use defaults (non-critical)
|
|
226
|
+
console.warn('[DynimProvider] Failed to fetch theme:', error);
|
|
227
|
+
}
|
|
236
228
|
}, [getAuthToken]);
|
|
237
|
-
//
|
|
229
|
+
// Mark initial load complete immediately - no eager HTTP requests
|
|
230
|
+
// Bundle loading happens lazily when user enters builder or when
|
|
231
|
+
// the consuming app explicitly triggers it
|
|
238
232
|
useEffect(() => {
|
|
239
|
-
if (hasAttemptedInitialLoadRef.current)
|
|
240
|
-
|
|
241
|
-
if (!configRef.current.getSession) {
|
|
233
|
+
if (!hasAttemptedInitialLoadRef.current) {
|
|
234
|
+
hasAttemptedInitialLoadRef.current = true;
|
|
242
235
|
setIsInitialLoadComplete(true);
|
|
243
|
-
return;
|
|
244
236
|
}
|
|
245
|
-
|
|
246
|
-
const doInitialLoad = async () => {
|
|
247
|
-
// First check if we can get a valid auth token
|
|
248
|
-
const token = await getAuthToken();
|
|
249
|
-
if (!token) {
|
|
250
|
-
// No auth token = user not logged in, skip bundle load
|
|
251
|
-
setIsInitialLoadComplete(true);
|
|
252
|
-
return;
|
|
253
|
-
}
|
|
254
|
-
const bundleUrl = '/api/code/bundle';
|
|
255
|
-
if (loadBundleRef.current) {
|
|
256
|
-
try {
|
|
257
|
-
await loadBundleRef.current(bundleUrl);
|
|
258
|
-
}
|
|
259
|
-
finally {
|
|
260
|
-
setIsInitialLoadComplete(true);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
else {
|
|
264
|
-
setIsInitialLoadComplete(true);
|
|
265
|
-
}
|
|
266
|
-
};
|
|
267
|
-
doInitialLoad();
|
|
268
|
-
}, [getAuthToken]);
|
|
237
|
+
}, []);
|
|
269
238
|
// Load saved bundle
|
|
270
239
|
const loadSavedBundle = useCallback(async () => {
|
|
271
240
|
await loadBundle('/api/code/bundle');
|
|
@@ -296,8 +265,10 @@ export function DynimProvider({ children, config = {}, }) {
|
|
|
296
265
|
const enterBuilder = useCallback(() => {
|
|
297
266
|
if (builderRef.current && !builderRef.current.isActive()) {
|
|
298
267
|
builderRef.current.enter();
|
|
268
|
+
// Fetch theme lazily when entering builder
|
|
269
|
+
fetchTheme();
|
|
299
270
|
}
|
|
300
|
-
}, []);
|
|
271
|
+
}, [fetchTheme]);
|
|
301
272
|
const exitBuilder = useCallback(() => {
|
|
302
273
|
if (builderRef.current && builderRef.current.isActive()) {
|
|
303
274
|
builderRef.current.exit();
|