@podlite/editor-react 0.0.40 → 0.0.42
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/CHANGELOG.podlite +18 -0
- package/esm/Editor.d.ts +5 -0
- package/esm/Editor.js +175 -39
- package/esm/Editor.js.map +1 -1
- package/esm/Wrapper.d.ts +5 -3
- package/esm/Wrapper.js +55 -76
- package/esm/Wrapper.js.map +1 -1
- package/esm/foldPodlite.d.ts +2 -0
- package/esm/foldPodlite.js +108 -0
- package/esm/foldPodlite.js.map +1 -0
- package/esm/index.d.ts +2 -0
- package/esm/index.js.map +1 -1
- package/esm/listContinuation.d.ts +3 -0
- package/esm/listContinuation.js +124 -0
- package/esm/listContinuation.js.map +1 -0
- package/esm/types.d.ts +12 -0
- package/esm/types.js +2 -0
- package/esm/types.js.map +1 -0
- package/lib/Editor.d.ts +5 -0
- package/lib/Editor.js +175 -39
- package/lib/Editor.js.map +1 -1
- package/lib/Wrapper.d.ts +5 -3
- package/lib/Wrapper.js +54 -75
- package/lib/Wrapper.js.map +1 -1
- package/lib/foldPodlite.d.ts +2 -0
- package/lib/foldPodlite.js +111 -0
- package/lib/foldPodlite.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js.map +1 -1
- package/lib/listContinuation.d.ts +3 -0
- package/lib/listContinuation.js +127 -0
- package/lib/listContinuation.js.map +1 -0
- package/lib/types.d.ts +12 -0
- package/lib/types.js +3 -0
- package/lib/types.js.map +1 -0
- package/package.json +25 -2
package/CHANGELOG.podlite
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
=head1 Upcoming
|
|
4
4
|
|
|
5
|
+
=head1 0.0.42
|
|
6
|
+
|
|
7
|
+
=item fix performance: eliminate synchronous re-renders on keystroke (text state → ref, deferred onChange via rAF, 300ms debounced preview)
|
|
8
|
+
=item fix performance: cache verbatim ranges in fold service (O(N) per call → O(1) via document identity cache)
|
|
9
|
+
=item fix search panel closing after Enter on first result — memoize extensions and basicSetup to prevent CodeMirror reconfiguration on re-render
|
|
10
|
+
=item add C<enableCopyPng> prop to C<WindowWrapper> — copies content as PNG to clipboard via C<dom-to-image-more>
|
|
11
|
+
=item refactor C<WindowWrapper>: remove dead SVG foreignObject screenshot code, add TypeScript types
|
|
12
|
+
=item fix fold markers appearing inside verbatim blocks (C<=code>, C<=comment>, C<=data>, C<=input>, C<=output>)
|
|
13
|
+
=item fix cursor not visible on file open — add C<autoFocus> + reset C<initialStateApplied> on file change
|
|
14
|
+
|
|
15
|
+
=head1 0.0.41
|
|
16
|
+
|
|
17
|
+
=item add list continuation on Enter: auto-insert C<=itemN> with type prefix preserved (C<[ ]>, C<[x]>→C<[ ]>, C<#>)
|
|
18
|
+
=item pressing Enter on empty C<=itemN> (or prefix-only) exits the list
|
|
19
|
+
=item add Tab/Shift-Tab to increase/decrease C<=item> nesting level (2-space indent per level)
|
|
20
|
+
=item add code folding for C<=begin>/C<=end> blocks and C<=head> sections with fold gutter
|
|
21
|
+
=item add C<initialEditorState> and C<onEditorStateChange> props for session state persistence (cursor, scroll, folds)
|
|
22
|
+
|
|
5
23
|
=head1 0.0.40
|
|
6
24
|
|
|
7
25
|
=item add C<enableHighlighting> prop to toggle code highlighting in preview (podlite/podlite-desktop#42)
|
package/esm/Editor.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ViewUpdate, ReactCodeMirrorProps, ReactCodeMirrorRef } from '@uiw/react-codemirror';
|
|
3
|
+
import type { EditorSessionState } from './types';
|
|
3
4
|
export interface ConverterResult {
|
|
4
5
|
errors?: any;
|
|
5
6
|
result: JSX.Element | string;
|
|
@@ -27,6 +28,10 @@ export interface IPodliteEditor extends ReactCodeMirrorProps {
|
|
|
27
28
|
onOpenLink?: (url: string) => void;
|
|
28
29
|
/** Enable code highlighting */
|
|
29
30
|
enableHighlighting?: boolean;
|
|
31
|
+
/** Initial editor session state to restore (cursor, scroll, folds) */
|
|
32
|
+
initialEditorState?: EditorSessionState;
|
|
33
|
+
/** Called when editor state changes (cursor move, scroll, fold/unfold) */
|
|
34
|
+
onEditorStateChange?: (state: EditorSessionState) => void;
|
|
30
35
|
}
|
|
31
36
|
export interface PodliteEditorRef {
|
|
32
37
|
editor: React.RefObject<ReactCodeMirrorRef>;
|
package/esm/Editor.js
CHANGED
|
@@ -7,9 +7,12 @@ import { podliteLang } from './podlite';
|
|
|
7
7
|
import { defaultTheme } from './theme';
|
|
8
8
|
import { EditorView, keymap } from '@codemirror/view';
|
|
9
9
|
import { defaultKeymap } from '@codemirror/commands';
|
|
10
|
+
import { foldGutter, foldKeymap, foldedRanges, foldEffect, unfoldEffect } from '@codemirror/language';
|
|
10
11
|
import { isElement } from 'react-is';
|
|
11
12
|
import { autocompletion, snippet } from '@codemirror/autocomplete';
|
|
12
13
|
import dictionary from './dict';
|
|
14
|
+
import { listContinuationKeymap, itemLevelKeymap } from './listContinuation';
|
|
15
|
+
import { podliteFoldService } from './foldPodlite';
|
|
13
16
|
import HighlightedCode from './HighlightedCode';
|
|
14
17
|
function useDebouncedEffect(fn, deps, time) {
|
|
15
18
|
const dependencies = [...deps, time];
|
|
@@ -27,10 +30,10 @@ function PodliteEditorInternal(props, ref) {
|
|
|
27
30
|
if (!isBrowser)
|
|
28
31
|
return null;
|
|
29
32
|
const { onChange, enableScroll = true, enablePreview = true, extensions = [], previewWidth = '50%', onPreviewMode, isFullscreen, makePreviewComponent, startLinePreview = 1, // start line number
|
|
30
|
-
enableAutocompletion = false, onOpenLink, enableHighlighting = false, ...codemirrorProps } = props;
|
|
33
|
+
enableAutocompletion = false, onOpenLink, enableHighlighting = false, initialEditorState, onEditorStateChange, ...codemirrorProps } = props;
|
|
31
34
|
const full_preview = previewWidth === '100%';
|
|
32
35
|
const [value, setValue] = useState(props.value || '');
|
|
33
|
-
const
|
|
36
|
+
const pendingTextRef = useRef(props.value || '');
|
|
34
37
|
const codeMirror = useRef(null);
|
|
35
38
|
const container = useRef(null);
|
|
36
39
|
const containerEditor = useRef(null);
|
|
@@ -38,10 +41,93 @@ function PodliteEditorInternal(props, ref) {
|
|
|
38
41
|
const active = useRef(full_preview ? 'preview' : 'editor');
|
|
39
42
|
const topLine = useRef(startLinePreview);
|
|
40
43
|
const $viewHeight = useRef(0);
|
|
44
|
+
const initialStateApplied = useRef(false);
|
|
45
|
+
// Stable refs for callbacks used in memoized extensions
|
|
46
|
+
// Stable refs for callbacks used in memoized extensions
|
|
47
|
+
const onEditorStateChangeRef = useRef(onEditorStateChange);
|
|
48
|
+
onEditorStateChangeRef.current = onEditorStateChange;
|
|
49
|
+
const onOpenLinkRef = useRef(onOpenLink);
|
|
50
|
+
onOpenLinkRef.current = onOpenLink;
|
|
51
|
+
// Stable basicSetup config to prevent CodeMirror reconfiguration on re-render
|
|
52
|
+
const basicSetupConfig = React.useMemo(() => ({ defaultKeymap: false }), []);
|
|
41
53
|
useImperativeHandle(ref, () => ({
|
|
42
54
|
editor: codeMirror,
|
|
43
55
|
preview: preview,
|
|
44
56
|
}), [codeMirror]);
|
|
57
|
+
// Helper: serialize current fold ranges from EditorState
|
|
58
|
+
const serializeFoldedRanges = useCallback((view) => {
|
|
59
|
+
const ranges = [];
|
|
60
|
+
const folded = foldedRanges(view.state);
|
|
61
|
+
const iter = folded.iter();
|
|
62
|
+
while (iter.value) {
|
|
63
|
+
ranges.push({ from: iter.from, to: iter.to });
|
|
64
|
+
iter.next();
|
|
65
|
+
}
|
|
66
|
+
return ranges;
|
|
67
|
+
}, []);
|
|
68
|
+
// Reset applied flag when initialEditorState changes (new file opened)
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
initialStateApplied.current = false;
|
|
71
|
+
}, [initialEditorState]);
|
|
72
|
+
// Restore editor session state once after mount or file change
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
if (initialStateApplied.current || !initialEditorState)
|
|
75
|
+
return;
|
|
76
|
+
const view = codeMirror.current?.view;
|
|
77
|
+
if (!view)
|
|
78
|
+
return;
|
|
79
|
+
initialStateApplied.current = true;
|
|
80
|
+
// Restore cursor position
|
|
81
|
+
if (initialEditorState.cursorOffset != null) {
|
|
82
|
+
const offset = Math.min(initialEditorState.cursorOffset, view.state.doc.length);
|
|
83
|
+
view.dispatch({ selection: { anchor: offset } });
|
|
84
|
+
}
|
|
85
|
+
// Restore fold ranges
|
|
86
|
+
if (initialEditorState.foldedRanges && initialEditorState.foldedRanges.length > 0) {
|
|
87
|
+
const effects = initialEditorState.foldedRanges
|
|
88
|
+
.filter(r => r.from < view.state.doc.length && r.to <= view.state.doc.length)
|
|
89
|
+
.map(r => foldEffect.of({ from: r.from, to: r.to }));
|
|
90
|
+
if (effects.length > 0) {
|
|
91
|
+
view.dispatch({ effects });
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Restore scroll position (after folds applied, so layout is correct)
|
|
95
|
+
// and focus the editor so the blinking cursor is visible
|
|
96
|
+
requestAnimationFrame(() => {
|
|
97
|
+
if (initialEditorState.scrollTop != null) {
|
|
98
|
+
view.scrollDOM.scrollTop = initialEditorState.scrollTop;
|
|
99
|
+
}
|
|
100
|
+
view.focus();
|
|
101
|
+
});
|
|
102
|
+
}, [initialEditorState, codeMirror.current?.view]);
|
|
103
|
+
// Expose editor state changes via callback
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
if (!onEditorStateChange)
|
|
106
|
+
return;
|
|
107
|
+
const view = codeMirror.current?.view;
|
|
108
|
+
if (!view)
|
|
109
|
+
return;
|
|
110
|
+
const emitState = () => {
|
|
111
|
+
onEditorStateChange({
|
|
112
|
+
cursorOffset: view.state.selection.main.head,
|
|
113
|
+
scrollTop: view.scrollDOM.scrollTop,
|
|
114
|
+
foldedRanges: serializeFoldedRanges(view),
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
// Debounce scroll events
|
|
118
|
+
let scrollTimer = null;
|
|
119
|
+
const handleScroll = () => {
|
|
120
|
+
if (scrollTimer)
|
|
121
|
+
clearTimeout(scrollTimer);
|
|
122
|
+
scrollTimer = setTimeout(emitState, 200);
|
|
123
|
+
};
|
|
124
|
+
view.scrollDOM.addEventListener('scroll', handleScroll);
|
|
125
|
+
return () => {
|
|
126
|
+
view.scrollDOM.removeEventListener('scroll', handleScroll);
|
|
127
|
+
if (scrollTimer)
|
|
128
|
+
clearTimeout(scrollTimer);
|
|
129
|
+
};
|
|
130
|
+
}, [onEditorStateChange, codeMirror.current?.view, serializeFoldedRanges]);
|
|
45
131
|
const height = isFullscreen
|
|
46
132
|
? '100%'
|
|
47
133
|
: typeof codemirrorProps.height === 'number'
|
|
@@ -49,7 +135,9 @@ function PodliteEditorInternal(props, ref) {
|
|
|
49
135
|
: codemirrorProps.height;
|
|
50
136
|
const preValue = props.value;
|
|
51
137
|
useEffect(() => setValue(preValue ?? ''), [preValue]);
|
|
52
|
-
useEffect(() =>
|
|
138
|
+
useEffect(() => {
|
|
139
|
+
pendingTextRef.current = preValue ?? '';
|
|
140
|
+
}, [preValue]);
|
|
53
141
|
const fullRef = useRef(isFullscreen);
|
|
54
142
|
useEffect(() => {
|
|
55
143
|
fullRef.current = isFullscreen;
|
|
@@ -204,8 +292,9 @@ function PodliteEditorInternal(props, ref) {
|
|
|
204
292
|
},
|
|
205
293
|
...defaultKeymap,
|
|
206
294
|
]);
|
|
207
|
-
//
|
|
208
|
-
|
|
295
|
+
// Memoized extensions to prevent CodeMirror reconfiguration on re-render
|
|
296
|
+
// (reconfiguration closes panels like search)
|
|
297
|
+
const modKeyClass = React.useMemo(() => EditorView.domEventHandlers({
|
|
209
298
|
keydown(e, view) {
|
|
210
299
|
if (e.metaKey || e.ctrlKey)
|
|
211
300
|
view.dom.classList.add('cm-mod-pressed');
|
|
@@ -217,12 +306,11 @@ function PodliteEditorInternal(props, ref) {
|
|
|
217
306
|
blur(_, view) {
|
|
218
307
|
view.dom.classList.remove('cm-mod-pressed');
|
|
219
308
|
},
|
|
220
|
-
// defensive: if mouse leaves, clear the class (helps when key is released elsewhere)
|
|
221
309
|
mouseleave(_, view) {
|
|
222
310
|
view.dom.classList.remove('cm-mod-pressed');
|
|
223
311
|
},
|
|
224
|
-
});
|
|
225
|
-
const openStyledLinkOnClick = EditorView.domEventHandlers({
|
|
312
|
+
}), []);
|
|
313
|
+
const openStyledLinkOnClick = React.useMemo(() => EditorView.domEventHandlers({
|
|
226
314
|
click(event, view) {
|
|
227
315
|
const target = event.target;
|
|
228
316
|
if (!target)
|
|
@@ -230,35 +318,42 @@ function PodliteEditorInternal(props, ref) {
|
|
|
230
318
|
const el = target.closest('.cm-clickable-link');
|
|
231
319
|
if (!el)
|
|
232
320
|
return;
|
|
233
|
-
// require Cmd/Ctrl for activation
|
|
234
321
|
const modPressed = event.metaKey || event.ctrlKey;
|
|
235
322
|
if (!modPressed)
|
|
236
323
|
return;
|
|
237
324
|
const from = view.posAtDOM(el, 0);
|
|
238
325
|
const to = view.posAtDOM(el, el.childNodes.length);
|
|
239
326
|
const text = view.state.doc.sliceString(from, to).trim();
|
|
240
|
-
|
|
241
|
-
onOpenLink(text); // i.e window.open(text, '_blank', 'noopener')
|
|
242
|
-
}
|
|
327
|
+
onOpenLinkRef.current?.(text);
|
|
243
328
|
event.preventDefault();
|
|
244
329
|
event.stopPropagation();
|
|
245
330
|
},
|
|
246
|
-
});
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
331
|
+
}), []);
|
|
332
|
+
// Track fold/unfold and cursor changes to emit editor state
|
|
333
|
+
const stateChangeListener = React.useMemo(() => onEditorStateChange
|
|
334
|
+
? EditorView.updateListener.of(update => {
|
|
335
|
+
const hasFoldChange = update.transactions.some(tr => tr.effects.some(e => e.is(foldEffect) || e.is(unfoldEffect)));
|
|
336
|
+
const hasCursorChange = update.selectionSet;
|
|
337
|
+
if (hasFoldChange || hasCursorChange) {
|
|
338
|
+
onEditorStateChangeRef.current?.({
|
|
339
|
+
cursorOffset: update.state.selection.main.head,
|
|
340
|
+
scrollTop: update.view.scrollDOM.scrollTop,
|
|
341
|
+
foldedRanges: serializeFoldedRanges(update.view),
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
})
|
|
345
|
+
: [], [!!onEditorStateChange, serializeFoldedRanges]);
|
|
346
|
+
const linkTheme = React.useMemo(() => EditorView.theme({
|
|
347
|
+
'&.cm-editor.cm-mod-pressed .cm-clickable-link:hover': {
|
|
348
|
+
cursor: 'pointer',
|
|
349
|
+
},
|
|
350
|
+
}), []);
|
|
351
|
+
const makeApply = useCallback((text) => (editor, completion, from, to) => {
|
|
259
352
|
return snippet(text)(editor, completion, from - 1, to);
|
|
260
|
-
};
|
|
261
|
-
|
|
353
|
+
}, []);
|
|
354
|
+
const autocompletionExt = React.useMemo(() => {
|
|
355
|
+
if (!enableAutocompletion)
|
|
356
|
+
return null;
|
|
262
357
|
const langDict = dictionary.filter(({ lang = 'pod6' }) => lang === 'pod6');
|
|
263
358
|
const completions = langDict.map(({ displayText, text }) => {
|
|
264
359
|
function cleanBraces(text) {
|
|
@@ -273,8 +368,6 @@ function PodliteEditorInternal(props, ref) {
|
|
|
273
368
|
});
|
|
274
369
|
function myCompletions(context) {
|
|
275
370
|
let before = context.matchBefore(/^\s*=\w*/);
|
|
276
|
-
// If completion wasn't explicitly started and there
|
|
277
|
-
// is no word before the cursor, don't open completions.
|
|
278
371
|
if (!context.explicit && !before)
|
|
279
372
|
return null;
|
|
280
373
|
return {
|
|
@@ -283,11 +376,50 @@ function PodliteEditorInternal(props, ref) {
|
|
|
283
376
|
validFor: /^=\w*$/,
|
|
284
377
|
};
|
|
285
378
|
}
|
|
286
|
-
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
379
|
+
return autocompletion({ override: [myCompletions] });
|
|
380
|
+
}, [enableAutocompletion, makeApply]);
|
|
381
|
+
const extensionsData = React.useMemo(() => {
|
|
382
|
+
const exts = [
|
|
383
|
+
podliteLang(),
|
|
384
|
+
EditorView.lineWrapping,
|
|
385
|
+
podliteFoldService,
|
|
386
|
+
foldGutter(),
|
|
387
|
+
keymap.of(foldKeymap),
|
|
388
|
+
stateChangeListener,
|
|
389
|
+
itemLevelKeymap,
|
|
390
|
+
listContinuationKeymap,
|
|
391
|
+
preventToggleComment,
|
|
392
|
+
];
|
|
393
|
+
if (onOpenLink) {
|
|
394
|
+
exts.push(modKeyClass, openStyledLinkOnClick, linkTheme);
|
|
395
|
+
}
|
|
396
|
+
if (enableScroll) {
|
|
397
|
+
exts.push(scrollExtensions);
|
|
398
|
+
}
|
|
399
|
+
if (autocompletionExt) {
|
|
400
|
+
exts.push(autocompletionExt);
|
|
401
|
+
}
|
|
402
|
+
return exts;
|
|
403
|
+
}, [
|
|
404
|
+
stateChangeListener,
|
|
405
|
+
modKeyClass,
|
|
406
|
+
openStyledLinkOnClick,
|
|
407
|
+
linkTheme,
|
|
408
|
+
!!onOpenLink,
|
|
409
|
+
enableScroll,
|
|
410
|
+
scrollExtensions,
|
|
411
|
+
preventToggleComment,
|
|
412
|
+
autocompletionExt,
|
|
413
|
+
]);
|
|
414
|
+
// Debounced preview update: check ref every 300ms, update value state only when text changed
|
|
415
|
+
useEffect(() => {
|
|
416
|
+
const interval = setInterval(() => {
|
|
417
|
+
if (pendingTextRef.current !== value) {
|
|
418
|
+
setValue(pendingTextRef.current);
|
|
419
|
+
}
|
|
420
|
+
}, 300);
|
|
421
|
+
return () => clearInterval(interval);
|
|
422
|
+
}, [value]);
|
|
291
423
|
useEffect(() => {
|
|
292
424
|
if (!isBrowser || !container.current)
|
|
293
425
|
return;
|
|
@@ -325,10 +457,14 @@ function PodliteEditorInternal(props, ref) {
|
|
|
325
457
|
}, 100);
|
|
326
458
|
return () => clearTimeout(timer);
|
|
327
459
|
}, [startLinePreview, enablePreview]); // Only run when startLinePreview or enablePreview changes
|
|
328
|
-
const handleChange = (value, viewUpdate) => {
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
460
|
+
const handleChange = useCallback((value, viewUpdate) => {
|
|
461
|
+
pendingTextRef.current = value;
|
|
462
|
+
// Defer parent callback to next frame so CodeMirror textupdate handler
|
|
463
|
+
// completes immediately and the typed character appears without delay
|
|
464
|
+
requestAnimationFrame(() => {
|
|
465
|
+
onChange?.(value, viewUpdate);
|
|
466
|
+
});
|
|
467
|
+
}, [onChange]);
|
|
332
468
|
useEffect(() => {
|
|
333
469
|
if (preview.current) {
|
|
334
470
|
const $preview = preview.current;
|
|
@@ -479,7 +615,7 @@ function PodliteEditorInternal(props, ref) {
|
|
|
479
615
|
};
|
|
480
616
|
const conentView = (React.createElement("div", { className: `podlite-editor-content`, style: { height: codemirrorProps?.height } },
|
|
481
617
|
React.createElement("div", { className: `podlite-editor-content-editor`, ref: containerEditor },
|
|
482
|
-
React.createElement(CodeMirror, { theme: defaultTheme,
|
|
618
|
+
React.createElement(CodeMirror, { theme: defaultTheme, indentWithTab: false, autoFocus: true, ...codemirrorProps, basicSetup: basicSetupConfig, className: `podlite-editor-inner`, extensions: extensionsData, height: height, ref: codeMirror, onChange: handleChange })),
|
|
483
619
|
enablePreview && (React.createElement("div", { className: clsPreview, style: { overflow: full_preview ? 'visible' : 'hidden' }, ref: preview }, previewContent()))));
|
|
484
620
|
return (React.createElement("div", null,
|
|
485
621
|
React.createElement("div", { className: cls, ref: container }, conentView),
|
package/esm/Editor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Editor.js","sourceRoot":"","sources":["../src/Editor.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Editor.js","sourceRoot":"","sources":["../src/Editor.tsx"],"names":[],"mappings":"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"}
|
package/esm/Wrapper.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare
|
|
3
|
-
children:
|
|
2
|
+
declare type WindowWrapperProps = {
|
|
3
|
+
children: React.ReactNode;
|
|
4
4
|
title?: string;
|
|
5
|
-
|
|
5
|
+
enableCopyPng?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare const WindowWrapper: ({ children, title, enableCopyPng }: WindowWrapperProps) => React.JSX.Element;
|
|
6
8
|
export default WindowWrapper;
|
package/esm/Wrapper.js
CHANGED
|
@@ -1,90 +1,48 @@
|
|
|
1
|
-
import React, { useRef } from 'react';
|
|
2
|
-
const WindowWrapper = ({ children, title = '' }) => {
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
|
|
1
|
+
import React, { useRef, useState } from 'react';
|
|
2
|
+
const WindowWrapper = ({ children, title = '', enableCopyPng = false }) => {
|
|
3
|
+
const windowRef = useRef(null);
|
|
4
|
+
const copyBtnRef = useRef(null);
|
|
5
|
+
const [isCopied, setIsCopied] = useState(false);
|
|
6
|
+
const handleCopyPng = async () => {
|
|
7
|
+
if (!windowRef.current)
|
|
6
8
|
return;
|
|
7
|
-
const html = wrapperRef.current.outerHTML;
|
|
8
9
|
try {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
<foreignObject width="100%" height="100%">
|
|
12
|
-
<div xmlns="http://www.w3.org/1999/xhtml">
|
|
13
|
-
${html}
|
|
14
|
-
</div>
|
|
15
|
-
</foreignObject>
|
|
16
|
-
</svg>
|
|
17
|
-
`.trim();
|
|
18
|
-
const dataURL = `data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(svg)))}`;
|
|
19
|
-
await navigator.clipboard.writeText(dataURL);
|
|
20
|
-
}
|
|
21
|
-
catch (err) {
|
|
22
|
-
console.error('Copy failed:', err);
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
const copyElementToClipboard = async () => {
|
|
26
|
-
if (!wrapperRef.current)
|
|
27
|
-
return;
|
|
28
|
-
try {
|
|
29
|
-
// setIsLoading(true);
|
|
30
|
-
const canvas = document.createElement('canvas');
|
|
31
|
-
const context = canvas.getContext('2d');
|
|
32
|
-
const element = wrapperRef.current;
|
|
33
|
-
const rect = element.getBoundingClientRect();
|
|
34
|
-
canvas.width = rect.width * 2;
|
|
35
|
-
canvas.height = rect.height * 2;
|
|
36
|
-
const svgData = `
|
|
37
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${rect.width}" height="${rect.height}">
|
|
38
|
-
<foreignObject width="100%" height="100%">
|
|
39
|
-
<div xmlns="http://www.w3.org/1999/xhtml">
|
|
40
|
-
${element.outerHTML}
|
|
41
|
-
</div>
|
|
42
|
-
</foreignObject>
|
|
43
|
-
</svg>
|
|
44
|
-
`;
|
|
45
|
-
console.log('1');
|
|
46
|
-
const base64Data = btoa(unescape(encodeURIComponent(svgData)));
|
|
47
|
-
// const base64Data = btoa(encodeURIComponent(svgData));
|
|
48
|
-
const dataUrl = `data:image/svg+xml;base64,${base64Data}`;
|
|
49
|
-
console.log(dataUrl);
|
|
50
|
-
const image = new Image();
|
|
51
|
-
image.crossOrigin = 'anonymous';
|
|
52
|
-
console.log('2');
|
|
53
|
-
await new Promise((resolve, reject) => {
|
|
54
|
-
image.onload = resolve;
|
|
55
|
-
image.onerror = e => {
|
|
56
|
-
console.error('Image load error:', e);
|
|
57
|
-
reject(e);
|
|
58
|
-
};
|
|
59
|
-
image.src = dataUrl;
|
|
60
|
-
});
|
|
61
|
-
console.log('3');
|
|
62
|
-
if (context) {
|
|
63
|
-
context.scale(2, 2);
|
|
64
|
-
context.drawImage(image, 0, 0);
|
|
10
|
+
if (copyBtnRef.current) {
|
|
11
|
+
copyBtnRef.current.style.display = 'none';
|
|
65
12
|
}
|
|
66
|
-
|
|
67
|
-
const
|
|
68
|
-
if (
|
|
69
|
-
|
|
13
|
+
const domtoimage = (await import('dom-to-image-more')).default;
|
|
14
|
+
const blob = await domtoimage.toBlob(windowRef.current, { quality: 1.0 });
|
|
15
|
+
if (copyBtnRef.current) {
|
|
16
|
+
copyBtnRef.current.style.display = '';
|
|
70
17
|
}
|
|
18
|
+
await navigator.clipboard.write([new ClipboardItem({ 'image/png': blob })]);
|
|
19
|
+
setIsCopied(true);
|
|
20
|
+
setTimeout(() => setIsCopied(false), 2000);
|
|
71
21
|
}
|
|
72
22
|
catch (err) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
23
|
+
if (copyBtnRef.current) {
|
|
24
|
+
copyBtnRef.current.style.display = '';
|
|
25
|
+
}
|
|
26
|
+
console.error('Copy PNG failed:', err);
|
|
77
27
|
}
|
|
78
28
|
};
|
|
79
|
-
return (React.createElement("div", { className: "window", ref:
|
|
80
|
-
React.createElement("div", { className: "
|
|
81
|
-
React.createElement("div", { className: "
|
|
82
|
-
|
|
83
|
-
|
|
29
|
+
return (React.createElement("div", { className: "window-capture", ref: windowRef },
|
|
30
|
+
React.createElement("div", { className: "window" },
|
|
31
|
+
React.createElement("div", { className: "titlebar" },
|
|
32
|
+
React.createElement("div", { className: "buttons" }),
|
|
33
|
+
title && React.createElement("span", { className: "title" }, title),
|
|
34
|
+
React.createElement("div", { className: "titlebar-spacer" }),
|
|
35
|
+
enableCopyPng && (React.createElement("button", { ref: copyBtnRef, className: "copy-png-btn", onClick: handleCopyPng, title: "Copy as PNG" }, isCopied ? '\u2713' : '\u2398'))),
|
|
36
|
+
React.createElement("div", { className: "content" }, children)),
|
|
84
37
|
React.createElement("style", null, `
|
|
38
|
+
.window-capture {
|
|
39
|
+
padding: 1.5rem;
|
|
40
|
+
display: inline-block;
|
|
41
|
+
margin: 0.5rem;
|
|
42
|
+
}
|
|
43
|
+
|
|
85
44
|
.window {
|
|
86
45
|
position: relative;
|
|
87
|
-
margin: 2rem;
|
|
88
46
|
border-radius: 6px;
|
|
89
47
|
background: white;
|
|
90
48
|
box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.2);
|
|
@@ -101,6 +59,10 @@ const WindowWrapper = ({ children, title = '' }) => {
|
|
|
101
59
|
align-items: center;
|
|
102
60
|
}
|
|
103
61
|
|
|
62
|
+
.titlebar-spacer {
|
|
63
|
+
flex: 1;
|
|
64
|
+
}
|
|
65
|
+
|
|
104
66
|
.buttons {
|
|
105
67
|
display: flex;
|
|
106
68
|
gap: 6px;
|
|
@@ -140,6 +102,23 @@ const WindowWrapper = ({ children, title = '' }) => {
|
|
|
140
102
|
.content {
|
|
141
103
|
padding: 16px;
|
|
142
104
|
}
|
|
105
|
+
|
|
106
|
+
.copy-png-btn {
|
|
107
|
+
background: none;
|
|
108
|
+
border: 1px solid #ccc;
|
|
109
|
+
border-radius: 4px;
|
|
110
|
+
padding: 2px 8px;
|
|
111
|
+
cursor: pointer;
|
|
112
|
+
font-size: 14px;
|
|
113
|
+
color: #666;
|
|
114
|
+
line-height: 1;
|
|
115
|
+
transition: background 0.15s, color 0.15s;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.copy-png-btn:hover {
|
|
119
|
+
background: #e0e0e0;
|
|
120
|
+
color: #333;
|
|
121
|
+
}
|
|
143
122
|
`)));
|
|
144
123
|
};
|
|
145
124
|
export default WindowWrapper;
|
package/esm/Wrapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wrapper.js","sourceRoot":"","sources":["../src/Wrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Wrapper.js","sourceRoot":"","sources":["../src/Wrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAQ/C,MAAM,aAAa,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,EAAE,EAAE,aAAa,GAAG,KAAK,EAAsB,EAAE,EAAE;IAC5F,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC9C,MAAM,UAAU,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IAClD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE/C,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE,OAAM;QAC9B,IAAI;YACF,IAAI,UAAU,CAAC,OAAO,EAAE;gBACtB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;aAC1C;YACD,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAA;YAC9D,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;YACzE,IAAI,UAAU,CAAC,OAAO,EAAE;gBACtB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;aACtC;YACD,MAAM,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAC3E,WAAW,CAAC,IAAI,CAAC,CAAA;YACjB,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;SAC3C;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,UAAU,CAAC,OAAO,EAAE;gBACtB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;aACtC;YACD,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAA;SACvC;IACH,CAAC,CAAA;IAED,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB,EAAC,GAAG,EAAE,SAAS;QAC5C,6BAAK,SAAS,EAAC,QAAQ;YACrB,6BAAK,SAAS,EAAC,UAAU;gBACvB,6BAAK,SAAS,EAAC,SAAS,GAAO;gBAC9B,KAAK,IAAI,8BAAM,SAAS,EAAC,OAAO,IAAE,KAAK,CAAQ;gBAChD,6BAAK,SAAS,EAAC,iBAAiB,GAAO;gBACtC,aAAa,IAAI,CAChB,gCAAQ,GAAG,EAAE,UAAU,EAAE,SAAS,EAAC,cAAc,EAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAC,aAAa,IAC1F,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CACxB,CACV,CACG;YACN,6BAAK,SAAS,EAAC,SAAS,IAAE,QAAQ,CAAO,CACrC;QACN,mCAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqFP,CAAS,CACN,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,aAAa,CAAA"}
|