Skip to content

Commit df38fb0

Browse files
committed
fix(ImgSize): support enableNewImageSizeCalculation in ImageWidget (#641)
1 parent 757b6d9 commit df38fb0

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

src/extensions/yfm/ImgSize/ImageWidget/index.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const addImageWidgetAction = 'addImageWidget';
88

99
export type ImageWidgetOptions = Pick<
1010
ImageWidgetDescriptorOpts,
11-
'needToSetDimensionsForUploadedImages'
11+
'needToSetDimensionsForUploadedImages' | 'enableNewImageSizeCalculation'
1212
> & {
1313
imageUploadHandler?: FileUploadHandler;
1414
};
@@ -18,6 +18,7 @@ export const ImageWidget: ExtensionAuto<ImageWidgetOptions> = (builder, opts) =>
1818
addImageWidget(deps, {
1919
uploadImages: opts.imageUploadHandler,
2020
needToSetDimensionsForUploadedImages: opts.needToSetDimensionsForUploadedImages,
21+
enableNewImageSizeCalculation: opts.enableNewImageSizeCalculation,
2122
}),
2223
);
2324
};

src/extensions/yfm/ImgSize/ImageWidget/widget.tsx

+9
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,15 @@ export const removeWidget = removeDecoration;
2727
export type ImageWidgetDescriptorOpts = {
2828
needToSetDimensionsForUploadedImages: boolean;
2929
uploadImages?: FileUploadHandler;
30+
enableNewImageSizeCalculation?: boolean;
3031
};
3132

3233
class ImageWidgetDescriptor extends ReactWidgetDescriptor {
3334
private readonly domElem;
3435
private readonly deps;
3536
private readonly uploadImages;
3637
private readonly needToSetDimensionsForUploadedImages: boolean;
38+
private readonly enableNewImageSizeCalculation?: boolean;
3739

3840
private widgetHandler: ImageWidgetHandler | null = null;
3941

@@ -43,6 +45,7 @@ class ImageWidgetDescriptor extends ReactWidgetDescriptor {
4345
this.deps = deps;
4446
this.uploadImages = opts.uploadImages;
4547
this.needToSetDimensionsForUploadedImages = opts.needToSetDimensionsForUploadedImages;
48+
this.enableNewImageSizeCalculation = opts.enableNewImageSizeCalculation;
4649
}
4750

4851
getWidgetHandler(view: EditorView, getPos: () => number): ImageWidgetHandler {
@@ -54,6 +57,7 @@ class ImageWidgetDescriptor extends ReactWidgetDescriptor {
5457
decoId: this.id,
5558
uploadImages: this.uploadImages,
5659
needToSetDimensionsForUploadedImages: this.needToSetDimensionsForUploadedImages,
60+
enableNewImageSizeCalculation: this.enableNewImageSizeCalculation,
5761
},
5862
this.deps,
5963
);
@@ -82,6 +86,7 @@ type ImageWidgetHandlerProps = {
8286
getPos: () => number;
8387
uploadImages?: FileUploadHandler;
8488
needToSetDimensionsForUploadedImages: boolean;
89+
enableNewImageSizeCalculation?: boolean;
8590
};
8691

8792
class ImageWidgetHandler {
@@ -92,6 +97,7 @@ class ImageWidgetHandler {
9297
private readonly uploadImages;
9398
private readonly normalizeUrl;
9499
private readonly needToSetDimensionsForUploadedImages: boolean;
100+
private readonly enableNewImageSizeCalculation?: boolean;
95101

96102
private cancelled = false;
97103

@@ -102,6 +108,7 @@ class ImageWidgetHandler {
102108
getPos,
103109
uploadImages,
104110
needToSetDimensionsForUploadedImages,
111+
enableNewImageSizeCalculation,
105112
}: ImageWidgetHandlerProps,
106113
deps: ExtensionDeps,
107114
) {
@@ -111,6 +118,7 @@ class ImageWidgetHandler {
111118
this.uploadImages = uploadImages;
112119
this.normalizeUrl = normalizeUrlFactory(deps);
113120
this.needToSetDimensionsForUploadedImages = needToSetDimensionsForUploadedImages;
121+
this.enableNewImageSizeCalculation = enableNewImageSizeCalculation;
114122
}
115123

116124
destruct() {
@@ -159,6 +167,7 @@ class ImageWidgetHandler {
159167
const {view} = this;
160168
new ImagesUploadProcess(view, files, this.uploadImages, this.getPos(), {
161169
needDimensions: this.needToSetDimensionsForUploadedImages,
170+
enableNewImageSizeCalculation: this.enableNewImageSizeCalculation,
162171
}).run();
163172
view.dispatch(removeWidget(view.state.tr, this.decoId));
164173
view.focus();

src/extensions/yfm/ImgSize/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export const ImgSize: ExtensionAuto<ImgSizeOptions> = (builder, opts) => {
2525
builder.use(ImageWidget, {
2626
imageUploadHandler: opts.imageUploadHandler,
2727
needToSetDimensionsForUploadedImages: Boolean(opts.needToSetDimensionsForUploadedImages),
28+
enableNewImageSizeCalculation: Boolean(opts.enableNewImageSizeCalculation),
2829
});
2930

3031
if (opts.imageUploadHandler || opts.parseInsertedUrlAsImage) {

0 commit comments

Comments
 (0)