@pexelize/react-editor 1.0.5 → 2.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/dist/index.esm.js CHANGED
@@ -1,351 +1,158 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { forwardRef, useRef, useState, useEffect, useImperativeHandle } from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef, useRef, useEffect, useState, useCallback, useImperativeHandle } from 'react';
3
3
 
4
- // ============================================================================
5
- // SDK CDN Configuration
6
- // ============================================================================
7
- /**
8
- * Use Cloudflare CDN for SDK.
9
- * You can use https://sdk.pexelize.com/latest/pexelize-sdk.min.js directly.
10
- * No need to add a trailing slash or extra path—just use as shown.
11
- */
12
- const SDK_CDN_URL = 'https://sdk.pexelize.com/latest/pexelize-sdk.min.js';
13
- // Global SDK reference (loaded from CDN)
4
+ const SDK_CDN_URL = "https://sdk.pexelize.com/latest/pexelize-sdk.min.js";
14
5
  let sdkLoadPromise = null;
15
- /**
16
- * Load SDK from CDN (singleton pattern - loads only once)
17
- */
18
- /**
19
- * Check if SDK is available at the global scope
20
- * UMD build creates window.PexelizeSDK namespace with:
21
- * - PexelizeSDK: the class constructor
22
- * - pexelize: the singleton instance
23
- */
24
- function isSDKAvailable() {
25
- const win = window;
26
- // Check for UMD namespace (window.PexelizeSDK.pexelize)
27
- if (win.PexelizeSDK && win.PexelizeSDK.pexelize) {
28
- return true;
29
- }
30
- // Fallback: check for direct pexelize global (legacy)
31
- if (win.pexelize) {
32
- return true;
33
- }
34
- return false;
35
- }
36
- function loadSDKFromCDN(url) {
37
- if (sdkLoadPromise && isSDKAvailable()) {
6
+ function loadSDK() {
7
+ if (sdkLoadPromise)
38
8
  return sdkLoadPromise;
39
- }
40
- // Check if already loaded
41
- if (isSDKAvailable()) {
42
- return Promise.resolve();
9
+ if (typeof window !== "undefined" && window.pexelize) {
10
+ return Promise.resolve(window.pexelize);
43
11
  }
44
12
  sdkLoadPromise = new Promise((resolve, reject) => {
45
- const script = document.createElement('script');
46
- script.src = url;
13
+ const script = document.createElement("script");
14
+ script.src = SDK_CDN_URL;
47
15
  script.async = true;
48
16
  script.onload = () => {
49
- // Check multiple possible locations for the SDK
50
- if (isSDKAvailable()) {
51
- console.log('[Pexelize React] SDK loaded from CDN');
52
- resolve();
17
+ if (window.pexelize) {
18
+ resolve(window.pexelize);
53
19
  }
54
20
  else {
55
- // Log what we found for debugging
56
- console.error('[Pexelize React] SDK loaded but globals not found');
57
- console.error('[Pexelize React] window.PexelizeSDK:', window.PexelizeSDK);
58
- console.error('[Pexelize React] window.pexelize:', window.pexelize);
59
- reject(new Error('SDK loaded but pexelize global not found. Check CDN URL and SDK build.'));
21
+ sdkLoadPromise = null;
22
+ reject(new Error("Failed to load Pexelize SDK"));
60
23
  }
61
24
  };
62
25
  script.onerror = () => {
63
26
  sdkLoadPromise = null;
64
- reject(new Error(`Failed to load Pexelize SDK from ${url}`));
27
+ reject(new Error("Failed to load Pexelize SDK"));
65
28
  };
66
29
  document.head.appendChild(script);
67
30
  });
68
31
  return sdkLoadPromise;
69
32
  }
70
- /**
71
- * Get SDK singleton instance from global
72
- * Handles both UMD namespace (window.PexelizeSDK.pexelize) and legacy (window.pexelize)
73
- */
74
- function getSDK() {
75
- const win = window;
76
- // UMD namespace: window.PexelizeSDK.pexelize (preferred)
77
- if (win.PexelizeSDK && win.PexelizeSDK.pexelize) {
78
- return win.PexelizeSDK.pexelize;
79
- }
80
- // Fallback: direct pexelize global (legacy)
81
- if (win.pexelize) {
82
- return win.pexelize;
83
- }
84
- return null;
85
- }
86
- // ============================================================================
87
- // Component
88
- // ============================================================================
89
- /**
90
- * PexelizeEditor React Component
91
- *
92
- * @example
93
- * ```tsx
94
- * import { PexelizeEditor, PexelizeEditorRef } from '@pexelize/react-editor';
95
- *
96
- * function MyEditor() {
97
- * const editorRef = useRef<PexelizeEditorRef>(null);
98
- *
99
- * const handleSave = () => {
100
- * editorRef.current?.saveDesign((design) => {
101
- * console.log('Design:', design);
102
- * });
103
- * };
104
- *
105
- * return (
106
- * <div>
107
- * <button onClick={handleSave}>Save</button>
108
- * <PexelizeEditor
109
- * ref={editorRef}
110
- * editorMode="email"
111
- * onReady={() => console.log('Ready!')}
112
- * onChange={({ design }) => console.log('Changed:', design)}
113
- * />
114
- * </div>
115
- * );
116
- * }
117
- * ```
118
- */
119
33
  const PexelizeEditor = forwardRef((props, ref) => {
120
- const { design, mergeTags, displayConditions, className, style, height = '600px', displayMode, editorMode, onReady, onLoad, onChange, onContentModified, onSelect, onDeselect, onImage, onLinkClick, onSave, ...config } = props;
34
+ const { editorId, apiKey, templateId, design, editorMode, contentType, ai, height, options = {}, className, style, minHeight = "600px", onReady, onLoad, onChange, onError, } = props;
121
35
  const containerRef = useRef(null);
122
- const sdkRef = useRef(null);
36
+ const editorInstanceRef = useRef(null);
123
37
  const containerId = useRef(`pexelize-editor-${Math.random().toString(36).substr(2, 9)}`);
124
- const [isEditorReady, setIsEditorReady] = useState(false);
125
- const [sdkLoaded, setSdkLoaded] = useState(false);
126
- const [error, setError] = useState(null);
127
- // Load SDK from CDN
38
+ const eventUnsubscribersRef = useRef([]);
39
+ const onReadyRef = useRef(onReady);
40
+ const onLoadRef = useRef(onLoad);
41
+ const onChangeRef = useRef(onChange);
42
+ const onErrorRef = useRef(onError);
128
43
  useEffect(() => {
129
- // Use prop if provided, else default
130
- const url = props.sdkUrl || SDK_CDN_URL;
131
- loadSDKFromCDN(url)
132
- .then(() => setSdkLoaded(true))
133
- .catch((err) => setError(err.message));
134
- }, [props.sdkUrl]);
135
- // Initialize SDK once loaded
44
+ onReadyRef.current = onReady;
45
+ }, [onReady]);
136
46
  useEffect(() => {
137
- if (!sdkLoaded || !containerRef.current)
138
- return;
139
- const pexelize = getSDK();
140
- if (!pexelize) {
141
- setError('Pexelize SDK not found after loading');
142
- return;
47
+ onLoadRef.current = onLoad;
48
+ }, [onLoad]);
49
+ useEffect(() => {
50
+ onChangeRef.current = onChange;
51
+ }, [onChange]);
52
+ useEffect(() => {
53
+ onErrorRef.current = onError;
54
+ }, [onError]);
55
+ const [isEditorReady, setIsEditorReady] = useState(false);
56
+ const handleReady = useCallback(() => {
57
+ setIsEditorReady(true);
58
+ if (editorInstanceRef.current) {
59
+ onReadyRef.current?.(editorInstanceRef.current);
143
60
  }
144
- // Store SDK reference
145
- sdkRef.current = pexelize;
146
- // Initialize
147
- pexelize.init({
148
- id: containerId.current,
149
- editorMode: editorMode || displayMode || 'email',
150
- ...config,
151
- });
152
- // Clean up on unmount
153
- return () => {
154
- pexelize.destroy();
155
- sdkRef.current = null;
156
- setIsEditorReady(false);
157
- };
158
- }, [sdkLoaded]);
159
- // Handle ready event
61
+ }, []);
160
62
  useEffect(() => {
161
- const sdk = sdkRef.current;
162
- if (!sdk)
63
+ if (!containerRef.current)
163
64
  return;
164
- const handleReady = () => {
165
- setIsEditorReady(true);
166
- // Set merge tags if provided
167
- if (mergeTags) {
168
- sdk.setMergeTags(mergeTags);
65
+ let mounted = true;
66
+ const initEditor = async () => {
67
+ try {
68
+ const pexelize = await loadSDK();
69
+ if (!mounted)
70
+ return;
71
+ const editorConfig = contentType === "module"
72
+ ? { ...options.editor, contentType, minRows: 1, maxRows: 1 }
73
+ : options.editor;
74
+ const config = {
75
+ containerId: containerId.current,
76
+ editorId,
77
+ apiKey,
78
+ ...options,
79
+ ...(templateId !== undefined && { templateId }),
80
+ ...(design !== undefined && { design }),
81
+ ...(editorMode !== undefined && { editorMode }),
82
+ ...(ai !== undefined && { ai }),
83
+ ...(editorConfig && { editor: editorConfig }),
84
+ };
85
+ pexelize.init(config);
86
+ editorInstanceRef.current = pexelize;
87
+ const unsubscribeReady = pexelize.addEventListener("editor:ready", handleReady);
88
+ eventUnsubscribersRef.current.push(unsubscribeReady);
89
+ const unsubscribeLoad = pexelize.addEventListener("design:loaded", () => onLoadRef.current?.());
90
+ eventUnsubscribersRef.current.push(unsubscribeLoad);
91
+ const unsubscribeChange = pexelize.addEventListener("design:updated", (data) => onChangeRef.current?.(data));
92
+ eventUnsubscribersRef.current.push(unsubscribeChange);
169
93
  }
170
- // Set display conditions if provided
171
- if (displayConditions) {
172
- sdk.setDisplayConditions(displayConditions);
94
+ catch (err) {
95
+ if (!mounted)
96
+ return;
97
+ const error = err instanceof Error ? err : new Error(String(err));
98
+ onErrorRef.current?.(error);
173
99
  }
174
- // Load initial design if provided
175
- if (design) {
176
- sdk.loadDesign(design);
177
- }
178
- // Call onReady callback
179
- onReady?.();
180
100
  };
181
- const unsubscribe = sdk.addEventListener('editor:ready', handleReady);
182
- return unsubscribe;
183
- }, [sdkLoaded, design, mergeTags, displayConditions, onReady]);
184
- // Handle design loaded event
185
- useEffect(() => {
186
- const sdk = sdkRef.current;
187
- if (!sdk || !onLoad)
188
- return;
189
- const unsubscribe = sdk.addEventListener('design:loaded', onLoad);
190
- return unsubscribe;
191
- }, [sdkLoaded, onLoad]);
192
- // Handle design updated event
193
- useEffect(() => {
194
- const sdk = sdkRef.current;
195
- if (!sdk || !onChange)
196
- return;
197
- const unsubscribe = sdk.addEventListener('design:updated', onChange);
198
- return unsubscribe;
199
- }, [sdkLoaded, onChange]);
200
- // Handle content modified event
201
- useEffect(() => {
202
- const sdk = sdkRef.current;
203
- if (!sdk || !onContentModified)
204
- return;
205
- const unsubscribe = sdk.addEventListener('content:modified', onContentModified);
206
- return unsubscribe;
207
- }, [sdkLoaded, onContentModified]);
208
- // Handle element selected event
209
- useEffect(() => {
210
- const sdk = sdkRef.current;
211
- if (!sdk || !onSelect)
212
- return;
213
- const unsubscribe = sdk.addEventListener('element:selected', onSelect);
214
- return unsubscribe;
215
- }, [sdkLoaded, onSelect]);
216
- // Handle element deselected event
217
- useEffect(() => {
218
- const sdk = sdkRef.current;
219
- if (!sdk || !onDeselect)
220
- return;
221
- const unsubscribe = sdk.addEventListener('element:deselected', onDeselect);
222
- return unsubscribe;
223
- }, [sdkLoaded, onDeselect]);
224
- // Register callbacks
225
- useEffect(() => {
226
- const sdk = sdkRef.current;
227
- if (!sdk)
228
- return;
229
- if (onImage) {
230
- sdk.registerCallback('image', onImage);
231
- }
232
- if (onLinkClick) {
233
- sdk.registerCallback('linkClick', onLinkClick);
234
- }
235
- if (onSave) {
236
- sdk.registerCallback('save', onSave);
237
- }
101
+ initEditor();
238
102
  return () => {
239
- if (sdk.unregisterCallback) {
240
- sdk.unregisterCallback('image');
241
- sdk.unregisterCallback('linkClick');
242
- sdk.unregisterCallback('save');
103
+ mounted = false;
104
+ eventUnsubscribersRef.current.forEach((unsub) => {
105
+ try {
106
+ unsub();
107
+ }
108
+ catch {
109
+ // ignore
110
+ }
111
+ });
112
+ eventUnsubscribersRef.current = [];
113
+ try {
114
+ editorInstanceRef.current?.destroy();
243
115
  }
116
+ catch {
117
+ // ignore
118
+ }
119
+ editorInstanceRef.current = null;
120
+ setIsEditorReady(false);
244
121
  };
245
- }, [sdkLoaded, onImage, onLinkClick, onSave]);
246
- // Expose SDK methods via ref
122
+ }, [editorId, apiKey, handleReady]);
247
123
  useImperativeHandle(ref, () => ({
248
- loadDesign: (design) => sdkRef.current?.loadDesign(design),
249
- loadBlank: () => sdkRef.current?.loadBlank(),
250
- saveDesign: (callback) => sdkRef.current?.saveDesign(callback),
251
- getDesign: () => sdkRef.current?.getDesign(),
252
- exportHtml: (callback) => sdkRef.current?.exportHtml(callback),
253
- exportHtmlAsync: () => sdkRef.current?.exportHtmlAsync(),
254
- save: () => sdkRef.current?.save(),
255
- undo: () => sdkRef.current?.undo(),
256
- redo: () => sdkRef.current?.redo(),
257
- getState: () => sdkRef.current?.getState(),
124
+ editor: editorInstanceRef.current,
258
125
  isReady: () => isEditorReady,
259
- getSdk: () => sdkRef.current,
260
- }), [isEditorReady, sdkLoaded]);
261
- // Compute styles
126
+ }), [isEditorReady]);
127
+ const effectiveHeight = height ?? minHeight;
262
128
  const containerStyle = {
263
- width: '100%',
264
- height: typeof height === 'number' ? `${height}px` : height,
129
+ width: "100%",
130
+ height: typeof effectiveHeight === "number"
131
+ ? `${effectiveHeight}px`
132
+ : effectiveHeight,
265
133
  ...style,
266
134
  };
267
- // Show error state
268
- if (error) {
269
- return (jsx("div", { style: { ...containerStyle, display: 'flex', alignItems: 'center', justifyContent: 'center', backgroundColor: '#fee', color: '#c00' }, children: jsxs("div", { style: { textAlign: 'center' }, children: [jsx("div", { style: { fontSize: '24px', marginBottom: '8px' }, children: "\u26A0\uFE0F" }), jsx("div", { children: "Failed to load Pexelize Editor" }), jsx("div", { style: { fontSize: '12px', marginTop: '4px' }, children: error })] }) }));
270
- }
271
- // Show loading state
272
- if (!sdkLoaded) {
273
- return (jsx("div", { style: { ...containerStyle, display: 'flex', alignItems: 'center', justifyContent: 'center', backgroundColor: '#f5f5f5' }, children: jsxs("div", { style: { textAlign: 'center' }, children: [jsx("div", { style: { fontSize: '24px', marginBottom: '8px' }, children: "\u23F3" }), jsx("div", { children: "Loading Pexelize Editor..." })] }) }));
274
- }
275
- return (jsx("div", { id: containerId.current, ref: containerRef, className: className, style: containerStyle }));
135
+ return (jsx("div", { className: className, style: containerStyle, children: jsx("div", { id: containerId.current, ref: containerRef, style: { width: "100%", height: "100%" } }) }));
276
136
  });
277
- PexelizeEditor.displayName = 'PexelizeEditor';
278
- /**
279
- * Hook to use the Pexelize SDK directly
280
- *
281
- * @example
282
- * ```tsx
283
- * function MyComponent() {
284
- * const { sdk, isReady, error } = usePexelizeSDK({
285
- * containerId: 'my-editor',
286
- * editorMode: 'email',
287
- * });
288
- *
289
- * const handleExport = () => {
290
- * if (isReady && sdk) {
291
- * sdk.exportHtml((data) => console.log(data.html));
292
- * }
293
- * };
294
- *
295
- * return (
296
- * <div>
297
- * <div id="my-editor" style={{ height: '600px' }} />
298
- * <button onClick={handleExport} disabled={!isReady}>Export</button>
299
- * </div>
300
- * );
301
- * }
302
- * ```
303
- */
304
- function usePexelizeSDK(config) {
305
- const sdkRef = useRef(null);
137
+ PexelizeEditor.displayName = "PexelizeEditor";
138
+ function usePexelizeEditor() {
139
+ const ref = useRef(null);
306
140
  const [isReady, setIsReady] = useState(false);
307
- const [sdkLoaded, setSdkLoaded] = useState(false);
308
- const [error, setError] = useState(null);
309
- // Load SDK from CDN
310
- useEffect(() => {
311
- loadSDKFromCDN(SDK_CDN_URL)
312
- .then(() => setSdkLoaded(true))
313
- .catch((err) => setError(err.message));
314
- }, []);
315
- // Initialize SDK
316
141
  useEffect(() => {
317
- if (!sdkLoaded)
318
- return;
319
- const pexelize = getSDK();
320
- if (!pexelize) {
321
- setError('Pexelize SDK not found');
322
- return;
323
- }
324
- sdkRef.current = pexelize;
325
- pexelize.init({
326
- id: config.containerId,
327
- editorMode: config.editorMode || config.displayMode || 'email',
328
- ...config,
329
- });
330
- const unsubscribe = pexelize.addEventListener('editor:ready', () => {
331
- setIsReady(true);
332
- });
333
- return () => {
334
- unsubscribe();
335
- pexelize.destroy();
336
- sdkRef.current = null;
337
- setIsReady(false);
142
+ const checkReady = () => {
143
+ const ready = ref.current?.isReady() ?? false;
144
+ setIsReady(ready);
338
145
  };
339
- }, [sdkLoaded, config.containerId]);
146
+ checkReady();
147
+ const interval = setInterval(checkReady, 100);
148
+ return () => clearInterval(interval);
149
+ }, []);
340
150
  return {
341
- sdk: sdkRef.current,
151
+ ref,
152
+ editor: ref.current?.editor ?? null,
342
153
  isReady,
343
- isLoading: !sdkLoaded && !error,
344
- error,
345
154
  };
346
155
  }
347
- // Export SDK CDN URL for reference
348
- const PEXELIZE_SDK_CDN = SDK_CDN_URL;
349
156
 
350
- export { PEXELIZE_SDK_CDN, PexelizeEditor, PexelizeEditor as default, usePexelizeSDK };
157
+ export { PexelizeEditor, PexelizeEditor as default, usePexelizeEditor };
351
158
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/index.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}