@blocklet/editor 2.4.71 → 2.4.73

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/lib/config.d.ts CHANGED
@@ -26,6 +26,7 @@ export interface EditorConfig {
26
26
  minimalMode?: boolean;
27
27
  openLinkInNewTab?: boolean;
28
28
  characterLimitConfig?: CharacterLimitConfig;
29
+ simpleImageComponent?: boolean;
29
30
  }
30
31
  export declare function EditorConfigProvider({ children, value }: {
31
32
  children: React.ReactNode;
@@ -9,7 +9,7 @@ import { LexicalEditor, NodeKey } from 'lexical';
9
9
  import { type JSX } from 'react';
10
10
  import './ImageNode.css';
11
11
  import type { ImageSizeMode } from '../../types';
12
- export default function ImageComponent({ file, src, altText, nodeKey, width, height, maxWidth, resizable, showCaption, caption, captionsEnabled, markerState, frame, sizeMode, }: {
12
+ export default function ImageComponentWrapper({ file, src, altText, nodeKey, width, height, maxWidth, resizable, showCaption, caption, captionsEnabled, markerState, frame, sizeMode, }: {
13
13
  file?: File;
14
14
  altText: string;
15
15
  caption: LexicalEditor;
@@ -61,7 +61,7 @@ function LazyImage({ altText, className, imageRef, src, width, height, }) {
61
61
  };
62
62
  return (_jsx("img", { className: className || undefined, src: src, alt: altText, ref: imageRef, draggable: "false", crossOrigin: "anonymous", ...imgProps }));
63
63
  }
64
- export default function ImageComponent({ file, src, altText, nodeKey, width, height, maxWidth, resizable, showCaption, caption, captionsEnabled, markerState, frame, sizeMode, }) {
64
+ function ImageComponent({ file, src, altText, nodeKey, width, height, maxWidth, resizable, showCaption, caption, captionsEnabled, markerState, frame, sizeMode, }) {
65
65
  const imageFrameRef = useRef(null);
66
66
  const imageRef = useRef(null);
67
67
  const buttonRef = useRef(null);
@@ -245,8 +245,7 @@ export default function ImageComponent({ file, src, altText, nodeKey, width, hei
245
245
  uploadImage();
246
246
  }
247
247
  }, [src, file, confirmText]);
248
- const skeleton = sizeMode === 'original' ? null : (_jsx(Skeleton, { variant: "rectangular", animation: "wave", sx: { width: 300, height: 200, borderRadius: 1 } }));
249
- const placeholder = objectUrl ? (_jsx(ImageContainer, { draggable: draggable, success: !!src, loading: loading, error: error, confirmText: confirmText, uploadImage: uploadImage, placeholder: objectUrl, placeholderProps: { style: { width, height, maxWidth } }, showBorder: !frame })) : (skeleton);
248
+ const placeholder = objectUrl ? (_jsx(ImageContainer, { draggable: draggable, success: !!src, loading: loading, error: error, confirmText: confirmText, uploadImage: uploadImage, placeholder: objectUrl, placeholderProps: { style: { width, height, maxWidth } }, showBorder: !frame })) : (_jsx(Skeleton, { variant: "rectangular", animation: "wave", sx: { width: 300, height: 200, borderRadius: 1 } }));
250
249
  const imageDisplayWidth = useImageDisplayWidth({ src: src || objectUrl, sizeMode, width });
251
250
  const { zoomOpened, openedImageRef } = useMediumZoom(imageRef, { enabled: !frame });
252
251
  const renderImageAnnotationView = () => {
@@ -357,3 +356,25 @@ function formatFileSize(size) {
357
356
  const [factor, symbol] = size >= GB ? [GB, 'GB'] : size >= MB ? [MB, 'MB'] : size >= KB ? [KB, 'KB'] : [1, 'B'];
358
357
  return `${Number((size / factor).toFixed(2))}${symbol}`;
359
358
  }
359
+ function SimpleImageComponent({ src, altText = '', width, height, }) {
360
+ const [loaded, setLoaded] = useState(false);
361
+ const imageRef = useRef(null);
362
+ useMediumZoom(imageRef);
363
+ return (_jsxs(_Fragment, { children: [!loaded && _jsx(Skeleton, { variant: "rectangular", animation: "wave", sx: { width: 300, height: 200, borderRadius: 1 } }), _jsx(Box, { sx: {
364
+ p: 1,
365
+ border: 1,
366
+ borderColor: 'divider',
367
+ borderRadius: 2,
368
+ visibility: loaded ? 'visible' : 'hidden',
369
+ }, children: _jsx(Box, { component: "img", src: src, alt: altText || '', onLoad: () => {
370
+ setLoaded(true);
371
+ }, sx: { width, height }, ref: imageRef }) })] }));
372
+ }
373
+ export default function ImageComponentWrapper({ file, src, altText, nodeKey, width, height, maxWidth, resizable, showCaption, caption, captionsEnabled, markerState, frame, sizeMode, }) {
374
+ const [editor] = useLexicalComposerContext();
375
+ const config = useEditorConfig();
376
+ if (!editor.isEditable() && config.simpleImageComponent && src) {
377
+ return _jsx(SimpleImageComponent, { src: src, altText: altText, width: width, height: height });
378
+ }
379
+ return (_jsx(ImageComponent, { file: file, src: src, altText: altText, nodeKey: nodeKey, width: width, height: height, maxWidth: maxWidth, resizable: resizable, showCaption: showCaption, caption: caption, captionsEnabled: captionsEnabled, markerState: markerState, frame: frame, sizeMode: sizeMode }));
380
+ }
@@ -154,8 +154,8 @@ const StyledEditorWrapper = styled(Box) `
154
154
  margin: 0;
155
155
  }
156
156
 
157
- /* list item 内 code block 对齐问题 */
158
- .be-editable li > code {
157
+ /* list item 内 code block 对齐问题, 注意别影响内联 code block */
158
+ .be-editable li > code[data-language] {
159
159
  margin-left: -20px;
160
160
  }
161
161
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocklet/editor",
3
- "version": "2.4.71",
3
+ "version": "2.4.73",
4
4
  "main": "lib/index.js",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -70,7 +70,7 @@
70
70
  "ufo": "^1.5.4",
71
71
  "url-join": "^4.0.1",
72
72
  "zustand": "^4.5.5",
73
- "@blocklet/pdf": "2.4.71"
73
+ "@blocklet/pdf": "2.4.73"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@babel/core": "^7.25.2",