@translation-cms/sync 1.1.83 → 1.1.84
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/README.md +55 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/preview.d.ts +32 -0
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +62 -0
- package/dist/preview.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -247,6 +247,61 @@ import { cleanupPreviewListener } from '@translation-cms/sync';
|
|
|
247
247
|
cleanupPreviewListener();
|
|
248
248
|
```
|
|
249
249
|
|
|
250
|
+
### Triggering actions (dialogs, menus, etc.)
|
|
251
|
+
|
|
252
|
+
For translations inside dialogs or collapsed menus, register an action callback
|
|
253
|
+
that opens the UI when the CMS sends a trigger:
|
|
254
|
+
|
|
255
|
+
```tsx
|
|
256
|
+
'use client';
|
|
257
|
+
import { useState, useEffect } from 'react';
|
|
258
|
+
import {
|
|
259
|
+
initPreviewListener,
|
|
260
|
+
registerPreviewAction,
|
|
261
|
+
} from '@translation-cms/sync';
|
|
262
|
+
|
|
263
|
+
export function NavMenu() {
|
|
264
|
+
const [open, setOpen] = useState(false);
|
|
265
|
+
|
|
266
|
+
useEffect(() => {
|
|
267
|
+
if (process.env.NODE_ENV === 'development') {
|
|
268
|
+
// Register so the CMS can open the menu during preview
|
|
269
|
+
registerPreviewAction('nav.menu', () => {
|
|
270
|
+
setOpen(true);
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
}, []);
|
|
274
|
+
|
|
275
|
+
return (
|
|
276
|
+
<nav>
|
|
277
|
+
<button onClick={() => setOpen(!open)}>Menu</button>
|
|
278
|
+
{open && (
|
|
279
|
+
<div>
|
|
280
|
+
<a href="/">
|
|
281
|
+
<span data-cms-key="nav:home">{t('nav:home')}</span>
|
|
282
|
+
</a>
|
|
283
|
+
<a href="/about">
|
|
284
|
+
<span data-cms-key="nav:about">{t('nav:about')}</span>
|
|
285
|
+
</a>
|
|
286
|
+
</div>
|
|
287
|
+
)}
|
|
288
|
+
</nav>
|
|
289
|
+
);
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
When an editor in the CMS clicks "Show in app" for a translation key like
|
|
294
|
+
`nav:home`, the CMS:
|
|
295
|
+
|
|
296
|
+
1. Loads your app in an iframe
|
|
297
|
+
2. Sends a `CMS_TRIGGER_ACTION` message for `'nav.menu'`
|
|
298
|
+
3. Your app calls the registered callback (`setOpen(true)`)
|
|
299
|
+
4. The menu opens
|
|
300
|
+
5. The listener highlights the matching `data-cms-key` element
|
|
301
|
+
|
|
302
|
+
**Action IDs** are usually namespaced like keys: `'nav.menu'`, `'modal.signup'`,
|
|
303
|
+
etc. Choose IDs that make sense in context.
|
|
304
|
+
|
|
250
305
|
---
|
|
251
306
|
|
|
252
307
|
## Scanner
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { initPreviewListener, cleanupPreviewListener, type PreviewListenerOptions, } from './preview.js';
|
|
1
|
+
export { initPreviewListener, cleanupPreviewListener, registerPreviewAction, unregisterPreviewAction, type PreviewListenerOptions, } from './preview.js';
|
|
2
2
|
export { type TranslationsConfig } from './load-config.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,sBAAsB,GAC9B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,sBAAsB,GAC9B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EACH,mBAAmB,EACnB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,GAE1B,MAAM,cAAc,CAAC"}
|
package/dist/preview.d.ts
CHANGED
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
* <h1 data-cms-key="blog:post.title">{t('blog:post.title')}</h1>
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
|
+
/** Callback invoked when an action is triggered by the CMS. */
|
|
25
|
+
type PreviewActionCallback = () => void | Promise<void>;
|
|
24
26
|
export interface PreviewListenerOptions {
|
|
25
27
|
/**
|
|
26
28
|
* Custom CSS to apply to highlighted elements.
|
|
@@ -53,4 +55,34 @@ export interface PreviewListenerOptions {
|
|
|
53
55
|
export declare function initPreviewListener(options?: PreviewListenerOptions): void;
|
|
54
56
|
/** Remove the preview listener and clear all highlights. */
|
|
55
57
|
export declare function cleanupPreviewListener(): void;
|
|
58
|
+
/**
|
|
59
|
+
* Register an action that can be triggered by the CMS.
|
|
60
|
+
* Useful for opening dialogs, menus, or other UI interactions.
|
|
61
|
+
*
|
|
62
|
+
* Usage in your app:
|
|
63
|
+
* ```tsx
|
|
64
|
+
* import { registerPreviewAction } from '@translation-cms/sync';
|
|
65
|
+
*
|
|
66
|
+
* function MyDialog() {
|
|
67
|
+
* const [open, setOpen] = useState(false);
|
|
68
|
+
*
|
|
69
|
+
* useEffect(() => {
|
|
70
|
+
* if (process.env.NODE_ENV === 'development') {
|
|
71
|
+
* registerPreviewAction('nav.menu', () => setOpen(true));
|
|
72
|
+
* }
|
|
73
|
+
* }, []);
|
|
74
|
+
*
|
|
75
|
+
* return <Dialog open={open} onOpenChange={setOpen}>...</Dialog>;
|
|
76
|
+
* }
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
79
|
+
* When the editor clicks "Show in app" in the CMS for a key inside this menu,
|
|
80
|
+
* the CMS notifies the preview and this callback is triggered.
|
|
81
|
+
*/
|
|
82
|
+
export declare function registerPreviewAction(actionId: string, callback: PreviewActionCallback): void;
|
|
83
|
+
/**
|
|
84
|
+
* Unregister a previously registered action.
|
|
85
|
+
*/
|
|
86
|
+
export declare function unregisterPreviewAction(actionId: string): void;
|
|
87
|
+
export {};
|
|
56
88
|
//# sourceMappingURL=preview.d.ts.map
|
package/dist/preview.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;
|
|
1
|
+
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AA2CH,+DAA+D;AAC/D,KAAK,qBAAqB,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAExD,MAAM,WAAW,sBAAsB;IACnC;;;OAGG;IACH,eAAe,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAqBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAkC1E;AAED,4DAA4D;AAC5D,wBAAgB,sBAAsB,IAAI,IAAI,CAY7C;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,qBAAqB,GAChC,IAAI,CAGN;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAG9D"}
|
package/dist/preview.js
CHANGED
|
@@ -31,6 +31,8 @@ let currentLiveValue = null;
|
|
|
31
31
|
let currentSearchValue = null;
|
|
32
32
|
let activeLocale = null;
|
|
33
33
|
let interactionBlockerOverlay = null;
|
|
34
|
+
/** Registry of action IDs to callbacks. Used by triggerPreviewAction() and the CMS. */
|
|
35
|
+
const actionRegistry = new Map();
|
|
34
36
|
// ---------------------------------------------------------------------------
|
|
35
37
|
// Public functions
|
|
36
38
|
// ---------------------------------------------------------------------------
|
|
@@ -80,10 +82,46 @@ export function cleanupPreviewListener() {
|
|
|
80
82
|
interactionBlockerOverlay?.remove();
|
|
81
83
|
interactionBlockerOverlay = null;
|
|
82
84
|
clearHighlights();
|
|
85
|
+
actionRegistry.clear();
|
|
83
86
|
isInitialized = false;
|
|
84
87
|
activeLocale = null;
|
|
85
88
|
console.log('[CMS Preview] Listener cleaned up');
|
|
86
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Register an action that can be triggered by the CMS.
|
|
92
|
+
* Useful for opening dialogs, menus, or other UI interactions.
|
|
93
|
+
*
|
|
94
|
+
* Usage in your app:
|
|
95
|
+
* ```tsx
|
|
96
|
+
* import { registerPreviewAction } from '@translation-cms/sync';
|
|
97
|
+
*
|
|
98
|
+
* function MyDialog() {
|
|
99
|
+
* const [open, setOpen] = useState(false);
|
|
100
|
+
*
|
|
101
|
+
* useEffect(() => {
|
|
102
|
+
* if (process.env.NODE_ENV === 'development') {
|
|
103
|
+
* registerPreviewAction('nav.menu', () => setOpen(true));
|
|
104
|
+
* }
|
|
105
|
+
* }, []);
|
|
106
|
+
*
|
|
107
|
+
* return <Dialog open={open} onOpenChange={setOpen}>...</Dialog>;
|
|
108
|
+
* }
|
|
109
|
+
* ```
|
|
110
|
+
*
|
|
111
|
+
* When the editor clicks "Show in app" in the CMS for a key inside this menu,
|
|
112
|
+
* the CMS notifies the preview and this callback is triggered.
|
|
113
|
+
*/
|
|
114
|
+
export function registerPreviewAction(actionId, callback) {
|
|
115
|
+
actionRegistry.set(actionId, callback);
|
|
116
|
+
console.log(`[CMS Preview] Registered action: ${actionId}`);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Unregister a previously registered action.
|
|
120
|
+
*/
|
|
121
|
+
export function unregisterPreviewAction(actionId) {
|
|
122
|
+
actionRegistry.delete(actionId);
|
|
123
|
+
console.log(`[CMS Preview] Unregistered action: ${actionId}`);
|
|
124
|
+
}
|
|
87
125
|
// ---------------------------------------------------------------------------
|
|
88
126
|
// Message handler
|
|
89
127
|
// ---------------------------------------------------------------------------
|
|
@@ -111,6 +149,10 @@ function handleMessage(event) {
|
|
|
111
149
|
activeLocale = locale;
|
|
112
150
|
handleLocaleSwitch(locale);
|
|
113
151
|
}
|
|
152
|
+
else if (type === 'CMS_TRIGGER_ACTION') {
|
|
153
|
+
const { actionId } = event.data;
|
|
154
|
+
handleTriggerAction(actionId);
|
|
155
|
+
}
|
|
114
156
|
}
|
|
115
157
|
// ---------------------------------------------------------------------------
|
|
116
158
|
// Locale switching
|
|
@@ -131,6 +173,26 @@ function handleLocaleSwitch(locale) {
|
|
|
131
173
|
'Provide onLocaleSwitch option or expose window.__cmsSetLocale(locale).');
|
|
132
174
|
}
|
|
133
175
|
// ---------------------------------------------------------------------------
|
|
176
|
+
// Action triggering
|
|
177
|
+
// ---------------------------------------------------------------------------
|
|
178
|
+
function handleTriggerAction(actionId) {
|
|
179
|
+
const callback = actionRegistry.get(actionId);
|
|
180
|
+
if (!callback) {
|
|
181
|
+
console.warn(`[CMS Preview] No action registered for: "${actionId}". ` +
|
|
182
|
+
'Did you call registerPreviewAction?');
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
console.log(`[CMS Preview] Triggering action: ${actionId}`);
|
|
186
|
+
try {
|
|
187
|
+
Promise.resolve(callback()).catch(err => {
|
|
188
|
+
console.error(`[CMS Preview] Error in action callback for "${actionId}":`, err);
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
catch (err) {
|
|
192
|
+
console.error(`[CMS Preview] Error triggering action "${actionId}":`, err);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// ---------------------------------------------------------------------------
|
|
134
196
|
// Live text update
|
|
135
197
|
// ---------------------------------------------------------------------------
|
|
136
198
|
function updateLiveText(oldValue, newValue) {
|
package/dist/preview.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;
|
|
1
|
+
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"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"}
|