dynim-react 1.0.23 → 1.0.25
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuilderProvider.d.ts","sourceRoot":"","sources":["../../src/builder/BuilderProvider.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"BuilderProvider.d.ts","sourceRoot":"","sources":["../../src/builder/BuilderProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,9 @@ export function BuilderProvider({ children, config = {}, onBuilderReady, }) {
|
|
|
27
27
|
// Track builder active state - use BOTH ref (for sync checks in callbacks) and state (for renders)
|
|
28
28
|
const isBuilderActiveRef = useRef(false);
|
|
29
29
|
const [isBuilderActive, setIsBuilderActive] = useState(false);
|
|
30
|
+
// Cached auth token and in-flight promise for fast subsequent loads
|
|
31
|
+
const cachedTokenRef = useRef(null);
|
|
32
|
+
const tokenPromiseRef = useRef(null);
|
|
30
33
|
// Signal counter for triggering bundle loads - ONLY incremented when we decide to load
|
|
31
34
|
// This avoids the dependency cascade problem with the old approach
|
|
32
35
|
const [bundleLoadSignal, setBundleLoadSignal] = useState(0);
|
|
@@ -178,21 +181,41 @@ export function BuilderProvider({ children, config = {}, onBuilderReady, }) {
|
|
|
178
181
|
}
|
|
179
182
|
}, []);
|
|
180
183
|
/**
|
|
181
|
-
* Get auth token for bundle requests
|
|
184
|
+
* Get auth token for bundle requests (with caching for performance)
|
|
185
|
+
* Returns cached token if available, otherwise fetches and caches.
|
|
186
|
+
* Reuses in-flight promise to avoid duplicate requests.
|
|
182
187
|
*/
|
|
183
188
|
const getAuthToken = useCallback(async () => {
|
|
184
189
|
const { sessionToken, getSession } = config;
|
|
190
|
+
// Fast path: static token from config
|
|
185
191
|
if (sessionToken) {
|
|
186
192
|
return sessionToken;
|
|
187
193
|
}
|
|
194
|
+
// Fast path: return cached token
|
|
195
|
+
if (cachedTokenRef.current) {
|
|
196
|
+
return cachedTokenRef.current;
|
|
197
|
+
}
|
|
198
|
+
// Reuse in-flight promise if one exists (prevents duplicate getSession calls)
|
|
199
|
+
if (tokenPromiseRef.current) {
|
|
200
|
+
return tokenPromiseRef.current;
|
|
201
|
+
}
|
|
188
202
|
if (getSession) {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
203
|
+
// Create and cache the promise
|
|
204
|
+
tokenPromiseRef.current = (async () => {
|
|
205
|
+
try {
|
|
206
|
+
const session = await getSession();
|
|
207
|
+
cachedTokenRef.current = session.token; // Cache for future use
|
|
208
|
+
return session.token;
|
|
209
|
+
}
|
|
210
|
+
catch (e) {
|
|
211
|
+
console.warn('[BuilderProvider] Failed to get session for bundle auth:', e);
|
|
212
|
+
return null;
|
|
213
|
+
}
|
|
214
|
+
finally {
|
|
215
|
+
tokenPromiseRef.current = null; // Clear in-flight promise
|
|
216
|
+
}
|
|
217
|
+
})();
|
|
218
|
+
return tokenPromiseRef.current;
|
|
196
219
|
}
|
|
197
220
|
return null;
|
|
198
221
|
}, [config]);
|
|
@@ -205,7 +228,6 @@ export function BuilderProvider({ children, config = {}, onBuilderReady, }) {
|
|
|
205
228
|
const loadBundle = useCallback(async (bundleUrl) => {
|
|
206
229
|
const { onBundleLoadStart, onBundleLoadComplete, onError } = config;
|
|
207
230
|
console.log('[BuilderProvider] loadBundle called:', bundleUrl, 'isExiting=', isExitingRef.current);
|
|
208
|
-
console.trace('[BuilderProvider] loadBundle caller stack');
|
|
209
231
|
if (isBundleLoadingRef.current) {
|
|
210
232
|
console.warn('[BuilderProvider] Already loading a bundle, skipping');
|
|
211
233
|
return;
|
|
@@ -279,6 +301,16 @@ export function BuilderProvider({ children, config = {}, onBuilderReady, }) {
|
|
|
279
301
|
useEffect(() => {
|
|
280
302
|
loadBundleRef.current = loadBundle;
|
|
281
303
|
}, [loadBundle]);
|
|
304
|
+
// PERF: Eagerly prefetch auth token on mount (runs in parallel with render)
|
|
305
|
+
// This ensures the token is ready by the time we need to fetch the bundle
|
|
306
|
+
useEffect(() => {
|
|
307
|
+
const { sessionToken, getSession } = config;
|
|
308
|
+
if (!sessionToken && getSession) {
|
|
309
|
+
// Start fetching token immediately - don't await, just fire and forget
|
|
310
|
+
// The result will be cached in cachedTokenRef for when loadBundle needs it
|
|
311
|
+
getAuthToken();
|
|
312
|
+
}
|
|
313
|
+
}, []); // Empty deps - only run once on mount
|
|
282
314
|
// Auto-load saved bundle on mount (if authenticated)
|
|
283
315
|
// This ensures the permanent bundle is displayed immediately when the app loads
|
|
284
316
|
useEffect(() => {
|
|
@@ -382,7 +414,6 @@ export function BuilderProvider({ children, config = {}, onBuilderReady, }) {
|
|
|
382
414
|
// temp=true requests temp bundle (falls back to perm if no temp exists)
|
|
383
415
|
const bundleUrl = `${apiBaseRef.current}/api/code/bundle?temp=true&_t=${Date.now()}`;
|
|
384
416
|
console.log('[BuilderProvider] >>> LOADING TEMP BUNDLE:', bundleUrl);
|
|
385
|
-
console.trace('[BuilderProvider] Stack trace for temp bundle load');
|
|
386
417
|
if (loadBundleRef.current) {
|
|
387
418
|
loadBundleRef.current(bundleUrl);
|
|
388
419
|
}
|