dynim-react 1.0.11 → 1.0.13
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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"}
|
|
@@ -20,6 +20,8 @@ export function BuilderProvider({ children, config = {}, onBuilderReady, }) {
|
|
|
20
20
|
const builderClientRef = useRef(null);
|
|
21
21
|
const builderRef = useRef(null);
|
|
22
22
|
const codeClientRef = useRef(null);
|
|
23
|
+
// Track when we're exiting to prevent auto-load from re-triggering
|
|
24
|
+
const isExitingRef = useRef(false);
|
|
23
25
|
const [isBuilderActive, setIsBuilderActive] = useState(false);
|
|
24
26
|
const [isBundleLoaded, setIsBundleLoaded] = useState(false);
|
|
25
27
|
const [isBundleLoading, setIsBundleLoading] = useState(false);
|
|
@@ -86,6 +88,8 @@ export function BuilderProvider({ children, config = {}, onBuilderReady, }) {
|
|
|
86
88
|
});
|
|
87
89
|
}, [config]);
|
|
88
90
|
// Initialize visual builder (createBuilder from core) - AFTER codeClient
|
|
91
|
+
// We need loadBundle to be stable, so we use a ref
|
|
92
|
+
const loadBundleRef = useRef(null);
|
|
89
93
|
useEffect(() => {
|
|
90
94
|
const { apiBase = 'http://localhost:8080', pageId = window.location.pathname, logo = 'Builder', contentRoot = document.body, sessionToken, refreshToken, getSession, } = config;
|
|
91
95
|
// Create the visual builder instance, sharing our CodeClient
|
|
@@ -98,13 +102,26 @@ export function BuilderProvider({ children, config = {}, onBuilderReady, }) {
|
|
|
98
102
|
refreshToken,
|
|
99
103
|
getSession,
|
|
100
104
|
codeClient: codeClientRef.current ?? undefined,
|
|
105
|
+
// Pass loadBundle so exit() can restore permanent bundle
|
|
106
|
+
loadBundle: (bundleUrl) => {
|
|
107
|
+
// Mark as exiting to prevent auto-load from re-triggering
|
|
108
|
+
isExitingRef.current = true;
|
|
109
|
+
console.log('[BuilderProvider] Exit loadBundle called, isExiting=true');
|
|
110
|
+
if (loadBundleRef.current) {
|
|
111
|
+
return loadBundleRef.current(bundleUrl);
|
|
112
|
+
}
|
|
113
|
+
return Promise.resolve();
|
|
114
|
+
},
|
|
101
115
|
onEnter: () => {
|
|
102
116
|
console.log('[BuilderProvider] Visual builder entered');
|
|
117
|
+
isExitingRef.current = false;
|
|
103
118
|
setIsBuilderActive(true);
|
|
104
119
|
},
|
|
105
120
|
onExit: () => {
|
|
106
121
|
console.log('[BuilderProvider] Visual builder exited');
|
|
107
122
|
setIsBuilderActive(false);
|
|
123
|
+
// Reset exiting flag after exit completes
|
|
124
|
+
isExitingRef.current = false;
|
|
108
125
|
},
|
|
109
126
|
});
|
|
110
127
|
return () => {
|
|
@@ -225,6 +242,10 @@ export function BuilderProvider({ children, config = {}, onBuilderReady, }) {
|
|
|
225
242
|
setIsBundleLoading(false);
|
|
226
243
|
}
|
|
227
244
|
}, [config, getAuthToken]);
|
|
245
|
+
// Keep the ref updated so the builder can call loadBundle
|
|
246
|
+
useEffect(() => {
|
|
247
|
+
loadBundleRef.current = loadBundle;
|
|
248
|
+
}, [loadBundle]);
|
|
228
249
|
const loadProjectBundle = useCallback(async (projectId, forceReload = false) => {
|
|
229
250
|
const { getBundleUrl, apiBase = 'http://localhost:8080' } = config;
|
|
230
251
|
let bundleUrl;
|
|
@@ -257,17 +278,21 @@ export function BuilderProvider({ children, config = {}, onBuilderReady, }) {
|
|
|
257
278
|
console.log('[BuilderProvider] Loading temp bundle via:', bundleUrl);
|
|
258
279
|
await loadBundle(bundleUrl);
|
|
259
280
|
}, [config, loadBundle]);
|
|
260
|
-
// Auto-load temp bundle when bundle is ready
|
|
281
|
+
// Auto-load temp bundle when bundle is ready (only while builder is active and not exiting)
|
|
261
282
|
useEffect(() => {
|
|
262
283
|
console.log('[BuilderProvider] Auto-load check:', {
|
|
263
284
|
bundleReady: codeMessage.bundleReady,
|
|
264
285
|
projectId: codeMessage.projectId,
|
|
286
|
+
isBuilderActive,
|
|
287
|
+
isExiting: isExitingRef.current,
|
|
265
288
|
});
|
|
266
|
-
if
|
|
289
|
+
// Only auto-load if builder is active AND not in the process of exiting
|
|
290
|
+
// The isExitingRef prevents race condition where permanent bundle loads then temp bundle reloads
|
|
291
|
+
if (isBuilderActive && !isExitingRef.current && codeMessage.bundleReady && codeMessage.projectId) {
|
|
267
292
|
console.log('[BuilderProvider] Bundle ready - loading temp bundle:', codeMessage.projectId);
|
|
268
293
|
loadTempBundle(codeMessage.projectId);
|
|
269
294
|
}
|
|
270
|
-
}, [codeMessage.bundleReady, codeMessage.projectId, loadTempBundle]);
|
|
295
|
+
}, [codeMessage.bundleReady, codeMessage.projectId, isBuilderActive, loadTempBundle]);
|
|
271
296
|
// Unload bundle - show children again
|
|
272
297
|
const unloadBundle = useCallback(() => {
|
|
273
298
|
setTenantApp(null);
|