@djangocfg/layouts 1.2.19 → 1.2.20

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@djangocfg/layouts",
3
- "version": "1.2.19",
3
+ "version": "1.2.20",
4
4
  "description": "Layout system and components for Unrealon applications",
5
5
  "author": {
6
6
  "name": "DjangoCFG",
@@ -53,9 +53,9 @@
53
53
  "check": "tsc --noEmit"
54
54
  },
55
55
  "peerDependencies": {
56
- "@djangocfg/api": "^1.2.19",
57
- "@djangocfg/og-image": "^1.2.19",
58
- "@djangocfg/ui": "^1.2.19",
56
+ "@djangocfg/api": "^1.2.20",
57
+ "@djangocfg/og-image": "^1.2.20",
58
+ "@djangocfg/ui": "^1.2.20",
59
59
  "@hookform/resolvers": "^5.2.0",
60
60
  "consola": "^3.4.2",
61
61
  "lucide-react": "^0.468.0",
@@ -76,7 +76,7 @@
76
76
  "vidstack": "0.6.15"
77
77
  },
78
78
  "devDependencies": {
79
- "@djangocfg/typescript-config": "^1.2.19",
79
+ "@djangocfg/typescript-config": "^1.2.20",
80
80
  "@types/node": "^24.7.2",
81
81
  "@types/react": "19.2.2",
82
82
  "@types/react-dom": "19.2.1",
@@ -16,36 +16,36 @@ export interface PackageInfo {
16
16
  /**
17
17
  * Package versions registry
18
18
  * Auto-synced from package.json files
19
- * Last updated: 2025-11-02T05:58:03.758Z
19
+ * Last updated: 2025-11-02T09:59:18.371Z
20
20
  */
21
21
  const PACKAGE_VERSIONS: PackageInfo[] = [
22
22
  {
23
23
  "name": "@djangocfg/ui",
24
- "version": "1.2.19"
24
+ "version": "1.2.20"
25
25
  },
26
26
  {
27
27
  "name": "@djangocfg/api",
28
- "version": "1.2.19"
28
+ "version": "1.2.20"
29
29
  },
30
30
  {
31
31
  "name": "@djangocfg/layouts",
32
- "version": "1.2.19"
32
+ "version": "1.2.20"
33
33
  },
34
34
  {
35
35
  "name": "@djangocfg/markdown",
36
- "version": "1.2.19"
36
+ "version": "1.2.20"
37
37
  },
38
38
  {
39
39
  "name": "@djangocfg/og-image",
40
- "version": "1.2.19"
40
+ "version": "1.2.20"
41
41
  },
42
42
  {
43
43
  "name": "@djangocfg/eslint-config",
44
- "version": "1.2.19"
44
+ "version": "1.2.20"
45
45
  },
46
46
  {
47
47
  "name": "@djangocfg/typescript-config",
48
- "version": "1.2.19"
48
+ "version": "1.2.20"
49
49
  }
50
50
  ];
51
51
 
@@ -94,13 +94,10 @@ export function useCfgApp(options?: UseCfgAppOptions): UseCfgAppReturn {
94
94
  const [parentThemeMode, setParentThemeMode] = useState<string | null>(null);
95
95
 
96
96
  useEffect(() => {
97
- // Debug logging (uncomment for debugging)
98
- // console.log('[useCfgApp] Hook initializing...');
99
97
  setIsMounted(true);
100
98
 
101
99
  // Check if running in iframe
102
100
  const inIframe = window.self !== window.top;
103
- // console.log('[useCfgApp] Iframe detection:', { inIframe });
104
101
  setIsEmbedded(inIframe);
105
102
 
106
103
  // Check if running as standalone PWA
@@ -109,85 +106,19 @@ export function useCfgApp(options?: UseCfgAppOptions): UseCfgAppReturn {
109
106
 
110
107
  // Get referrer if embedded
111
108
  if (inIframe && document.referrer) {
112
- // console.log('[useCfgApp] Referrer:', document.referrer);
113
109
  setReferrer(document.referrer);
114
110
  }
115
111
 
116
- // Setup resize observer and interval for iframe height updates
117
- let resizeObserver: ResizeObserver | null = null;
118
- let checkHeightInterval: NodeJS.Timeout | null = null;
119
-
120
- // Notify parent window that iframe is ready
121
- if (inIframe) {
122
- try {
123
- // console.log('[useCfgApp] Sending iframe-ready message to parent');
124
- window.parent.postMessage({
125
- type: 'iframe-ready',
126
- data: {
127
- url: window.location.href,
128
- referrer: document.referrer
129
- }
130
- }, '*'); // Use '*' or specific origin for security
131
- // console.log('[useCfgApp] iframe-ready message sent');
132
- } catch (e) {
133
- console.error('[useCfgApp] Failed to notify parent:', e);
134
- }
135
-
136
- // Send current content height (both increases and decreases)
137
- const sendHeight = () => {
138
- try {
139
- // Use body.scrollHeight to avoid iframe height feedback loop
140
- // document.documentElement.scrollHeight includes iframe's own height!
141
- const bodyScrollHeight = document.body.scrollHeight;
142
- const bodyOffsetHeight = document.body.offsetHeight;
143
- const height = Math.max(bodyScrollHeight, bodyOffsetHeight);
144
-
145
- window.parent.postMessage({
146
- type: 'iframe-resize',
147
- data: { height }
148
- }, '*');
149
- } catch (e) {
150
- console.error('[useCfgApp] Failed to send height:', e);
151
- }
152
- };
153
-
154
- // Send height immediately after mount
155
- setTimeout(sendHeight, 100);
156
-
157
- // Watch for content size changes using ResizeObserver
158
- resizeObserver = new ResizeObserver(() => {
159
- sendHeight();
160
- });
161
-
162
- // Observe document body for size changes
163
- resizeObserver.observe(document.body);
164
-
165
- // Also observe on route changes and after data loads
166
- checkHeightInterval = setInterval(sendHeight, 1000);
167
- }
168
-
169
112
  // Listen for messages from parent window
170
113
  const handleMessage = (event: MessageEvent) => {
171
- // console.log('[useCfgApp] Message received:', {
172
- // origin: event.origin,
173
- // type: event.data?.type,
174
- // data: event.data?.data
175
- // });
176
-
177
- // Verify origin for security (optional - adjust for your needs)
178
- // if (event.origin !== window.location.origin) return;
179
-
180
114
  const { type, data } = event.data || {};
181
115
 
182
116
  switch (type) {
183
117
  case 'parent-auth':
184
- // console.log('[useCfgApp] Processing parent-auth message');
185
118
  // Receive authentication tokens from parent
186
119
  if (data?.authToken && options?.onAuthTokenReceived) {
187
120
  try {
188
- // console.log('[useCfgApp] Calling onAuthTokenReceived');
189
121
  options.onAuthTokenReceived(data.authToken, data.refreshToken);
190
- // console.log('[useCfgApp] Auth tokens received from parent');
191
122
  } catch (e) {
192
123
  console.error('[useCfgApp] Failed to process auth tokens:', e);
193
124
  }
@@ -195,19 +126,13 @@ export function useCfgApp(options?: UseCfgAppOptions): UseCfgAppReturn {
195
126
  break;
196
127
 
197
128
  case 'parent-theme':
198
- // console.log('[useCfgApp] Processing parent-theme message');
199
129
  // Receive theme from parent
200
130
  if (data?.theme) {
201
131
  try {
202
- // console.log('[useCfgApp] Setting theme:', {
203
- // theme: data.theme,
204
- // themeMode: data.themeMode
205
- // });
206
132
  setParentTheme(data.theme);
207
133
  if (data.themeMode) {
208
134
  setParentThemeMode(data.themeMode);
209
135
  }
210
- // console.log('[useCfgApp] Theme received from parent:', data.theme, 'mode:', data.themeMode);
211
136
  } catch (e) {
212
137
  console.error('[useCfgApp] Failed to process theme:', e);
213
138
  }
@@ -216,31 +141,32 @@ export function useCfgApp(options?: UseCfgAppOptions): UseCfgAppReturn {
216
141
 
217
142
  case 'parent-resize':
218
143
  // Handle parent window resize (optional)
219
- // console.log('[useCfgApp] Parent resized:', data);
220
144
  break;
221
145
 
222
146
  default:
223
- // if (type) {
224
- // console.log('[useCfgApp] Unknown message type:', type);
225
- // }
226
147
  break;
227
148
  }
228
149
  };
229
150
 
230
- // console.log('[useCfgApp] Adding message event listener');
231
151
  window.addEventListener('message', handleMessage);
232
152
 
153
+ // Send iframe-ready since listener is registered
154
+ if (inIframe) {
155
+ try {
156
+ window.parent.postMessage({
157
+ type: 'iframe-ready',
158
+ data: {
159
+ url: window.location.href,
160
+ referrer: document.referrer
161
+ }
162
+ }, '*');
163
+ } catch (e) {
164
+ console.error('[useCfgApp] Failed to notify parent about ready state:', e);
165
+ }
166
+ }
167
+
233
168
  return () => {
234
- // console.log('[useCfgApp] Cleaning up message event listener');
235
169
  window.removeEventListener('message', handleMessage);
236
-
237
- // Cleanup resize observer and interval
238
- if (resizeObserver) {
239
- resizeObserver.disconnect();
240
- }
241
- if (checkHeightInterval) {
242
- clearInterval(checkHeightInterval);
243
- }
244
170
  };
245
171
  }, [options]);
246
172