Skip to content

Commit fffa207

Browse files
committed
fix: Restore resizeMode logic after New Arch update
1 parent 4f7ec34 commit fffa207

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

ios/RNCImageEditor.mm

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,14 @@ - (void) cropImage:(NSString *)uri
5050
CGSize size = [RCTConvert CGSize:@{ @"width": @(data.size().width()), @"height": @(data.size().height()) }];
5151
CGPoint offset = [RCTConvert CGPoint:@{ @"x": @(data.offset().x()), @"y": @(data.offset().y()) }];
5252
CGSize targetSize = size;
53-
if (data.displaySize().has_value()) {
54-
JS::NativeRNCImageEditor::SpecCropImageCropDataDisplaySize displaySize = *data.displaySize(); // Extract the value from the optional
53+
CGSize displaySize = CGSizeZero;
54+
BOOL hasDisplaySizeValue = data.displaySize().has_value();
55+
if (hasDisplaySizeValue) {
56+
JS::NativeRNCImageEditor::SpecCropImageCropDataDisplaySize rawDisplaySize = *data.displaySize(); // Extract the value from the optional
5557
// in pixels
56-
targetSize = [RCTConvert CGSize:@{ @"width": @(displaySize.width()), @"height": @(displaySize.height()) }];
58+
displaySize = [RCTConvert CGSize:@{ @"width": @(rawDisplaySize.width()), @"height": @(rawDisplaySize.height()) }];
5759
}
58-
NSString *displaySize = data.resizeMode();
60+
RCTResizeMode resizeMode = [RCTConvert RCTResizeMode:data.resizeMode() ?: @"contain"];
5961
NSURLRequest *imageRequest = [NSURLRequest requestWithURL:[NSURL URLWithString: uri]];
6062
CGFloat compressionQuality = 1;
6163
if (data.quality().has_value()) {
@@ -70,10 +72,11 @@ - (void) cropImage:(NSString *)uri
7072
NSString *format = cropData[@"format"];
7173
CGSize size = [RCTConvert CGSize:cropData[@"size"]];
7274
CGPoint offset = [RCTConvert CGPoint:cropData[@"offset"]];
73-
CGSize targetSize = size;
74-
NSString *displaySize = cropData[@"resizeMode"];
75-
if(displaySize){
76-
targetSize = [RCTConvert CGSize:cropData[@"displaySize"]];
75+
RCTResizeMode resizeMode = [RCTConvert RCTResizeMode:cropData[@"resizeMode"] ?: @"contain"];
76+
CGSize displaySize = CGSizeZero;
77+
BOOL hasDisplaySizeValue = cropData[@"displaySize"];
78+
if(hasDisplaySizeValue){
79+
displaySize = [RCTConvert CGSize:cropData[@"displaySize"]];
7780
}
7881
CGFloat compressionQuality = 1;
7982
if(cropData[@"quality"]){
@@ -99,13 +102,14 @@ - (void) cropImage:(NSString *)uri
99102
}
100103

101104
// Crop image
105+
CGSize targetSize = rect.size;
102106
CGRect targetRect = {{-rect.origin.x, -rect.origin.y}, image.size};
103107
CGAffineTransform transform = RCTTransformFromTargetRect(image.size, targetRect);
104108
UIImage *croppedImage = RCTTransformImage(image, targetSize, image.scale, transform);
105109

106110
// Scale image
107-
if (displaySize) {
108-
RCTResizeMode resizeMode = [RCTConvert RCTResizeMode:displaySize ?: @"contain"];
111+
if (hasDisplaySizeValue) {
112+
targetSize = displaySize;
109113
targetRect = RCTTargetRect(croppedImage.size, targetSize, 1, resizeMode);
110114
transform = RCTTransformFromTargetRect(croppedImage.size, targetRect);
111115
croppedImage = RCTTransformImage(croppedImage, targetSize, image.scale, transform);

0 commit comments

Comments
 (0)